{ "$schema": "https://schemas.runtipi.io/dynamic-compose.json", "services": [ { "name": "onlyoffice-docs", "image": "onlyoffice/documentserver:8.2", "isMain": true, "internalPort": 80, "dependsOn": { "onlyoffice-docs-db": { "condition": "service_healthy" }, "onlyoffice-docs-redis": { "condition": "service_healthy" }, "onlyoffice-docs-rabbitmq": { "condition": "service_healthy" } }, "environment": [ { "key": "JWT_ENABLED", "value": "${ONLYOFFICE_JWT_ENABLED:-true}" }, { "key": "JWT_SECRET", "value": "${ONLYOFFICE_JWT_SECRET}" }, { "key": "JWT_HEADER", "value": "${ONLYOFFICE_JWT_HEADER:-Authorization}" }, { "key": "JWT_IN_BODY", "value": "${ONLYOFFICE_JWT_IN_BODY:-false}" }, { "key": "USE_UNAUTHORIZED_STORAGE", "value": "${ONLYOFFICE_USE_UNAUTHORIZED_STORAGE:-false}" }, { "key": "WOPI_ENABLED", "value": "${ONLYOFFICE_WOPI_ENABLED:-false}" }, { "key": "NGINX_WORKER_PROCESSES", "value": "auto" }, { "key": "NGINX_WORKER_CONNECTIONS", "value": "4096" }, { "key": "GENERATE_FONTS", "value": "true" }, { "key": "DB_TYPE", "value": "postgres" }, { "key": "DB_HOST", "value": "onlyoffice-docs-db" }, { "key": "DB_PORT", "value": "5432" }, { "key": "DB_NAME", "value": "onlyoffice" }, { "key": "DB_USER", "value": "onlyoffice" }, { "key": "DB_PWD", "value": "${ONLYOFFICE_DB_PASSWORD}" }, { "key": "REDIS_SERVER_HOST", "value": "onlyoffice-docs-redis" }, { "key": "REDIS_SERVER_PORT", "value": "6379" }, { "key": "AMQP_URI", "value": "amqp://${ONLYOFFICE_RABBITMQ_USER:-onlyoffice}:${ONLYOFFICE_RABBITMQ_PASSWORD}@onlyoffice-docs-rabbitmq:5672/" }, { "key": "AMQP_TYPE", "value": "rabbitmq" } ], "volumes": [ { "hostPath": "${APP_DATA_DIR}/data/logs", "containerPath": "/var/log/onlyoffice" }, { "hostPath": "${APP_DATA_DIR}/data/data", "containerPath": "/var/www/onlyoffice/Data" }, { "hostPath": "${APP_DATA_DIR}/data/lib", "containerPath": "/var/lib/onlyoffice" }, { "hostPath": "${APP_DATA_DIR}/data/fonts", "containerPath": "/usr/share/fonts/truetype/custom" } ], "healthCheck": { "test": "curl -f http://localhost/healthcheck", "interval": "30s", "timeout": "10s", "retries": 3, "startPeriod": "60s" } }, { "name": "onlyoffice-docs-db", "image": "postgres:15-alpine", "isMain": false, "environment": [ { "key": "POSTGRES_DB", "value": "onlyoffice" }, { "key": "POSTGRES_USER", "value": "onlyoffice" }, { "key": "POSTGRES_PASSWORD", "value": "${ONLYOFFICE_DB_PASSWORD}" } ], "volumes": [ { "hostPath": "${APP_DATA_DIR}/data/postgresql", "containerPath": "/var/lib/postgresql/data" } ], "healthCheck": { "test": "pg_isready -U onlyoffice -d onlyoffice", "interval": "10s", "timeout": "5s", "retries": 5, "startPeriod": "10s" } }, { "name": "onlyoffice-docs-redis", "image": "redis:7-alpine", "isMain": false, "volumes": [ { "hostPath": "${APP_DATA_DIR}/data/redis", "containerPath": "/data" } ], "healthCheck": { "test": "redis-cli ping", "interval": "10s", "timeout": "5s", "retries": 5, "startPeriod": "10s" } }, { "name": "onlyoffice-docs-rabbitmq", "image": "rabbitmq:3-alpine", "isMain": false, "environment": [ { "key": "RABBITMQ_DEFAULT_USER", "value": "${ONLYOFFICE_RABBITMQ_USER:-onlyoffice}" }, { "key": "RABBITMQ_DEFAULT_PASS", "value": "${ONLYOFFICE_RABBITMQ_PASSWORD}" } ], "volumes": [ { "hostPath": "${APP_DATA_DIR}/data/rabbitmq", "containerPath": "/var/lib/rabbitmq" } ], "healthCheck": { "test": "rabbitmq-diagnostics -q ping", "interval": "10s", "timeout": "5s", "retries": 5, "startPeriod": "30s" } } ] }