Ниже описан пример ручной установки и предварительной Cubisio для РедОС в многопользовательском режиме с доступом по HTTP. При условии, что сервер развернут в закрытом локальном контуре, исключая MITM.
Установка пакета OpenJDK 11 из стандартного репозитория:
sudo dnf install -y java-11-openjdk
cd /opt/cubisio && \
wget https://github.com/keycloak/keycloak/releases/download/15.0.1/keycloak-15.0.1.tar.gz && \
tar zxf keycloak-15.0.1.tar.gz && \
sudo chown -R cubisio:cubisio *
cd /opt/cubisio/keycloak-15.0.1/themes/
wget https://cdn.cubisio.ru/keycloak/theme.tar.gz
tar xzf theme.tar.gz
rm theme.tar.gz
sudo nano /lib/systemd/system/keycloak.service
[Unit]
Description=Keycloak
After=network.target
[Service]
Type=idle
User=cubisio
Group=keycloak
ExecStart=/opt/cubisio/keycloak-15.0.1/bin/standalone.sh -b 0.0.0.0
TimeoutStartSec=600
TimeoutStopSec=600
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable keycloak
sudo systemctl start keycloak
Далее необходимо задать пароль администратора (его далее потребуется ввести в конфиг cubisio), для этого необходимо пробросить порт 8080 наружу, например, на локальную машину, выполнив ssh -o ServerAliveInterval=60 USER@SERVER.ADDR -L 8080:127.0.0.1:8080
.
Далее открыть в браузере URL http://localhost:8080/auth/
и задать пароль для пользователя admin
.
7.1. Далее перейти в раздел Administration Console
и выполнить настройку:
7.2. Во вкладке Realm settings
7.2.1. Во вкладке General
задать поля Display name
и HTML Display name
7.2.2. Во вкладке Login
установить none
для поля Require SSL
(только если далее не будет настроен HTTPS)
7.3. Во вкладке Clients
нажать Create
и создать клиента cubisio:
7.4. Далее требуется открыть вкладку Credentials
созданного клиента и сохранить Secret
, далее он понадобится при настройке Cubisio.
7.5. Для включения темы, в разделе Themes
выбрать тему cubisio.
proxy-address-forwarding="true"
в /, чтобы не было ошибки подмены протокола.sed -i -e 's/<http-listener /<http-listener proxy-address-forwarding="true" /' /opt/cubisio/keycloak-15.0.1/standalone/configuration/standalone.xml
sudo systemctl restart keycloak
cubisio_user=cubisio
cubisio_home=/opt/cubisio
cubisio_dir=${cubisio_home}/cubisio
tmp_dir="$(mktemp -d -t "cubisio_update.XXXXXXX")"
sudo mkdir -p "$cubisio_dir"
sudo chown $cubisio_user:$cubisio_user -R "$cubisio_home"
cd "$cubisio_home" && \
wget --user=YOUR_LOGIN --password=YOUR_PASSWORD https://cdn.cubisio.ru/releases/YOUR_URL/cubisio-enterprise.tar.gz && \
tar xzf cubisio-enterprise.tar.gz -C "$tmp_dir" > /dev/null && \
sudo rsync -Irav "$tmp_dir/jsb-application/" "$cubisio_dir" && \
rm -fR "$tmp_dir" && \
chmod +x $cubisio_dir/*.sh
Обратите внимание на параметры запуска сервиса
ExecStart
, опции-Xms4086m -Xmx12288m
задают начальный и максимальный размер доступной памяти. Указанное значение в-Xmx
не должно превышать досступный объем оперативной памяти.
sudo nano /lib/systemd/system/cubisio.service
Description=Application service cubisio
Documentation=https://cubisio.ru
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
WorkingDirectory=/opt/cubisio/cubisio
User=cubisio
ExecStart=/opt/cubisio/cubisio/start_release.sh -Xms8086m -Xmx28g
PIDFile=/var/run/cubisio/cubisio.pid
#Restart=on-failure
#RestartSec=10
## file size
#LimitFSIZE=infinity
## cpu time
#LimitCPU=infinity
## virtual memory size
#LimitAS=infinity
## open files
#LimitNOFILE=64000
## processes/threads
#LimitNPROC=64000
## locked memory
#LimitMEMLOCK=infinity
## total threads (user+kernel)
#TasksMax=infinity
#TasksAccounting=false
[Install]
WantedBy=multi-user.target
nano /opt/cubisio/cubisio/config/SERVER.conf
kernel.security.enabled = true
web.http.port=8888
web.config.path = "/WEB-INF/keycloak.web.xml"
workspace.userManager.addUsersFromWorkspaces = false
workspace.userManager.addUsersFromAuthServer = true
keycloak.cubisioClient.user = "admin"
keycloak.cubisioClient.password = "ПАРОЛЬ_АДМИНИСТРАТОРА"
nano /opt/cubisio/cubisio/web/WEB-INF/keycloak.json
Далее необходимо указать полученный выше секретный ключ для работы клиента keycloak, для этого укажите его в поле secret, а в поле auth-server-url URL сервера авторизации, например, http://SERVER.ADDR:8080/auth
. При использовании HTTP в поле sslRequired
требуется прописать none
.
sudo systemctl daemon-reload
sudo systemctl enable cubisio
sudo systemctl start cubisio
tail -f -n 100 /opt/cubisio/cubisio/logs/jsbeans.log
Должно быть собщение, содержащее "Workspace controller initialization done".
sudo dnf install -y nginx
sudo nano /etc/nginx/conf.d/cubisio.conf
server {
listen 80 default_server;
server_name _;
client_max_body_size 100g;
location /auth/ {
proxy_pass http://127.0.0.1:8080/auth/;
proxy_buffering off;
proxy_redirect off;
proxy_set_header Referer $http_referer;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header Host $http_host;
}
location = / {
return 301 $scheme://$host/cubisio.jsb$query_string;
}
location / {
proxy_pass http://localhost:8888/;
proxy_redirect off;
proxy_buffering off;
proxy_read_timeout 300;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
sudo dnf install -y postgresql13-server
sudo postgresql-13-setup initdb
sudo systemctl enable postgresql-13.service
sudo systemctl start postgresql-13.service
sudo systemctl status postgresql-13.service
sudo -u postgres psql
Далее в консоли psql выполнить (заменить SET_PASSWORD):
ALTER USER postgres WITH PASSWORD 'SET_PASSWORD'
Также выполнить команду и ввести дважды тот же пароль:
\password
Выход:
\q
sudo nano $(dirname $(sudo -u postgres psql -U postgres -c 'SHOW config_file'|grep postgresql))/postgresql.conf
Добавить (Ctrl+X выход):
listen_addresses = '*'
Настроить разрешения для соединения для пользователей под внешнему адресу
sudo nano $(dirname $(sudo -u postgres psql -U postgres -c 'SHOW config_file'|grep postgresql))/pg_hba.conf
Добавить перед остальными записями (Ctrl+X выход):
host all all all scram-sha-256
Далее перезапустить сервис
sudo systemctl restart postgresql-13.service