Appearance
Инструкция по установке расширения Onlyoffice с использованием Docker
Конфигурация NextBox, установленного с помощью Docker Compose
Если NextBox установлен по основной инструкции Docker Compose, добавьте два сервиса в существующую конфигурацию:
- onlyoffice
- onlyoffice docs server
Оба сервиса используют POSTGRES_PASSWORD, SERVICE_TOKEN, JWT_SIGN_KEY и ONLYOFFICE_JWT_SECRET из файла .env основной установки. Добавьте следующие блоки внутрь существующей секции services::
Если .env был создан по старой версии инструкции и отдельного ключа OnlyOffice в нём нет, добавьте его, не изменяя остальные секреты:
bash
if ! grep -q '^ONLYOFFICE_JWT_SECRET=' .env; then
printf 'ONLYOFFICE_JWT_SECRET=%s\n' "$(openssl rand -hex 32)" >>.env
fi
chmod 600 .envyaml
onlyoffice_server:
image: onlyoffice/documentserver:8.2
restart: always
depends_on:
postgresql:
condition: "service_healthy"
rabbitmq:
condition: "service_healthy"
onlyoffice:
condition: "service_healthy"
environment:
- DB_TYPE=postgres
- DB_HOST=postgresql
- DB_PORT=5432
- DB_NAME=onlyoffice
- DB_USER=nextbox
- DB_PWD=${POSTGRES_PASSWORD}
- AMQP_URI=amqp://guest:guest@rabbitmq/
- JWT_ENABLED=true
- JWT_SECRET=${ONLYOFFICE_JWT_SECRET}
- JWT_HEADER=Authorization
networks:
- nextbox
healthcheck:
test: ["CMD-SHELL", "wget -q -O /dev/null http://127.0.0.1/healthcheck"]
interval: 10s
timeout: 5s
retries: 10
start_period: 30s
onlyoffice:
image: nextbox-docker.ptnl.moscow/nextbox/onlyoffice:oak-1.11.0
restart: always
depends_on:
postgresql:
condition: "service_healthy"
rabbitmq:
condition: "service_healthy"
networks:
- nextbox
environment:
- POTENTIAL_ONLYOFFICE_DISCOVERY_URL=http://discovery:6011
- POTENTIAL_ONLYOFFICE_DISCOVERY_ONLYOFFICE_SERVER_URL=http://onlyoffice_server
- POTENTIAL_ONLYOFFICE_DISCOVERY_GATEWAY_URL=http://nginx
- POTENTIAL_ONLYOFFICE_SERVICE_BACK_URL=http://onlyoffice:6004
- POTENTIAL_ONLYOFFICE_SERVICE_TOKEN=${SERVICE_TOKEN}
- POTENTIAL_ONLYOFFICE_TOKENS_SIGN_KEY=${JWT_SIGN_KEY}
- POTENTIAL_ONLYOFFICE_TOKENS_SERVER_KEY=${ONLYOFFICE_JWT_SECRET}
- POTENTIAL_ONLYOFFICE_DATABASE_DSN=postgres://nextbox:${POSTGRES_PASSWORD}@postgresql:5432/onlyoffice
- POTENTIAL_ONLYOFFICE_DATABASE_ADMIN_DSN=postgres://nextbox:${POSTGRES_PASSWORD}@postgresql:5432/postgres
- POTENTIAL_ONLYOFFICE_RABBIT_MQ_HOST=rabbitmq
- POTENTIAL_ONLYOFFICE_RABBIT_MQ_USER=guest
- POTENTIAL_ONLYOFFICE_RABBIT_MQ_PASSWORD=guest
- POTENTIAL_ONLYOFFICE_RABBIT_MQ_VHOST=
healthcheck:
test:
- CMD-SHELL
- >-
wget -q -O /dev/null
--header="Authorization: Service $$POTENTIAL_ONLYOFFICE_SERVICE_TOKEN"
http://127.0.0.1:6004/api/health-check
interval: 10s
timeout: 5s
retries: 10
start_period: 30sВ существующий сервис nginx добавьте зависимость от готовности Document Server. Иначе при полном запуске Compose nginx может стартовать раньше, чем имя onlyoffice_server появится во внутренней сети:
yaml
nginx:
depends_on:
onlyoffice_server:
condition: service_healthyJWT_SECRET Document Server должен совпадать с POTENTIAL_ONLYOFFICE_TOKENS_SERVER_KEY сервиса интеграции. Не используйте для этого JWT_SIGN_KEY: он предназначен для пользовательских токенов NextBox и передаётся отдельно как POTENTIAL_ONLYOFFICE_TOKENS_SIGN_KEY.
В default.conf добавьте проксирование для OnlyOffice:
nginx
server {
# Настройки nextbox
# из предыдей инструкции
# ...
#новые настройки, которые необходимо добавить
location /onlyoffice/ {
proxy_pass http://onlyoffice_server/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $proxy_connection;
proxy_set_header X-Forwarded-Host $the_host/onlyoffice;
proxy_set_header X-Forwarded-Proto $the_scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}Проверьте и запустите конфигурацию:
bash
docker compose config --quiet
docker compose up -d --wait onlyoffice onlyoffice_server nginx