
Установка onlyoffice в jail и подключение к nextcloud
ч1. Установка onlyoffice.
В этой статье мы установим onlyoffice и подключим его к ранее установленному nextcloud чтоб можно было редактировать документы онлайн. Нужен доступ по домену. Буду использовать доменное имя keenetic-а.
Заходим в трунас, создаем jail, запускаем его и входим терминалом (запускаем putty).
pkg update
pkg install nginx
pkg install onlyoffice-documentserver
дожидаемся установки и внимательно читаем послеустановочный вывод терминала. Там будет инструкция что надо сделать дальше. Для удобства выделяем весь текст в терминале (в putty выделенный текст автоматически сохраняется в буфер обмена, поэтому не надо нажимать правую кнопку мыши для копирования), создаем текстовый файл и вставляем текст:
продолжаем в терминале согласно инструкции:
sysrc nginx_enable="YES"
sysrc rabbitmq_enable="YES"
sysrc supervisord_enable="YES"
Теперь нам надо определить нужную версию БД для установки. Можно прокрутить терминал колесом мыши и посмотреть какой версии клиент установлен:
или ввести в терминале:
psql --version
устанавливаем 17 версию postgres:
pkg install postgresql17-server
После установки двигаемся дальше по инструкции, нас интересует всё что касается postgersql, mysql пропускаем:
sysrc postgresql_enable=yes
service postgresql initdb
chmod -R 777 /tmp
service postgresql start
psql -U postgres -c "CREATE DATABASE onlyoffice;"
psql -U postgres -c "CREATE USER onlyoffice WITH password 'onlyoffice';"
psql -U postgres -c "GRANT ALL privileges ON DATABASE onlyoffice TO onlyoffice;"
psql -U postgres -c "ALTER DATABASE onlyoffice OWNER to onlyoffice;"
psql -hlocalhost -Uonlyoffice -d onlyoffice -f /usr/local/www/onlyoffice/documentserver/server/schema/postgresql/createdb.sql
service rabbitmq start
rabbitmqctl --erlang-cookie `cat /var/db/rabbitmq/.erlang.cookie` add_user onlyoffice придумай_пароль
rabbitmqctl --erlang-cookie `cat /var/db/rabbitmq/.erlang.cookie` set_user_tags onlyoffice administrator
rabbitmqctl --erlang-cookie `cat /var/db/rabbitmq/.erlang.cookie` set_permissions -p / onlyoffice ".*" ".*" ".*"
Теперь идем по пути /usr/local/etc/onlyoffice/documentserver и в файле local.json в самом низу строчку amqp://guest:guest@localhost приводим к виду amqp://onlyoffice:придумай_пароль@localhost , где "придумай_пароль" это пароль придуманный выше.
Пункт 4 инструкции:
Открываем файл /usr/local/etc/supervisord.conf и в самом конце добавляем:
[include]
files = /usr/local/etc/onlyoffice/documentserver/supervisor/*.conf
и стартуем сервис (в терминале уже):
service supervisord start
Пункт 5, настраиваем nginx. Открываем файл nginx.conf из папки /usr/local/etc/nginx/ и перед боком "server" вставляем:
include /usr/local/etc/onlyoffice/documentserver/nginx/ds.conf;
Не забываем про точку с запятой на конце и проверять синтаксис командой:
nginx -t
documentserver-update-securelink.sh #надо чтоб создался ключ AutorizationJWT в файле /usr/local/etc/onlyoffice/documentserver/nginx/ds.conf. Открыв его, найдите строчку "set $secure_link_secret" там будет ключ, скопируйте его.
service nginx start
Теперь в браузере вбиваем IP адрес, который получил наш jail с офисом и должны увидеть приветствие:
ч2. Соединение с nextcloud.
Открываем WinSCP, идем по адресу (мы всё еще в джейле с офисом) /usr/local/etc/onlyoffice/documentserver/ и открываем файл local.json. Нам надо его отредактировать. Три "false" заменить на "true" (внимательнее с запятыми, где-то есть, где-то нет), к "Authorization" добавить "JWT", чтоб получилось "AuthorizationJWT" в обеих строчках, ну и три слова "secret" заменить на сам ключ, который скопировали выше из ds.conf. Этот же ключ прописан в последней строчке.
Ну и на последок перезапускаем доксервер:
supervisorctl restart all
Открываем наш Nextcloud, идем в приложения и устанавливаем Onlyoffice/
После установки идем в настройки onlyoffice и заполняем:
Адрес onlyoffice (напомню, доменное имя должно быть, и как говорит интернет, можно локальное доменное имя с самоподписным сертификатом, для этого нужно правильно настроить сеть), вписываем ключ (который выше вписывали в local.json), ну и заголовок заполняем "AuthorizationJWT":
P.S. Если делаете через доменное имя кинетика, то придется зайти в cli кинетика и ввести три команды, в противном случае коннекта с офисом не будет (вместо "имя" вводите доменное имя, которое прописали в кинетике:
(config)> ip http proxy имя x-real-ip
(config)> ip http proxy имя preserve-host
(config)> system configuration save
Вот и всё, теперь у нас тоже есть облачный офис свой, и не надо платить яндексу/гуглу/майлу.
Всем удачи !
P.S. Если всё выше написанное помогло вам со своим облаком, тогда можете выписать премию к пенсии )))))