75 lines
3.0 KiB
YAML
75 lines
3.0 KiB
YAML
version: "3.9"
|
|
|
|
services:
|
|
onlyoffice-docs:
|
|
image: onlyoffice/documentserver:8.2
|
|
container_name: onlyoffice-docs
|
|
restart: unless-stopped
|
|
ports:
|
|
- "${APP_PORT}:80"
|
|
environment:
|
|
# JWT Configuration
|
|
- JWT_ENABLED=${ONLYOFFICE_JWT_ENABLED:-true}
|
|
- JWT_SECRET=${ONLYOFFICE_JWT_SECRET}
|
|
- JWT_HEADER=${ONLYOFFICE_JWT_HEADER:-Authorization}
|
|
- JWT_IN_BODY=${ONLYOFFICE_JWT_IN_BODY:-false}
|
|
# Storage Configuration
|
|
- USE_UNAUTHORIZED_STORAGE=${ONLYOFFICE_USE_UNAUTHORIZED_STORAGE:-false}
|
|
# WOPI Configuration
|
|
- WOPI_ENABLED=${ONLYOFFICE_WOPI_ENABLED:-false}
|
|
# Performance tuning
|
|
- NGINX_WORKER_PROCESSES=auto
|
|
- NGINX_WORKER_CONNECTIONS=4096
|
|
# Font generation
|
|
- GENERATE_FONTS=true
|
|
volumes:
|
|
# Logs
|
|
- ${APP_DATA_DIR}/data/logs:/var/log/onlyoffice
|
|
# Certificates and data
|
|
- ${APP_DATA_DIR}/data/data:/var/www/onlyoffice/Data
|
|
# File cache
|
|
- ${APP_DATA_DIR}/data/lib:/var/lib/onlyoffice
|
|
# Internal PostgreSQL database
|
|
- ${APP_DATA_DIR}/data/db:/var/lib/postgresql
|
|
# Font cache
|
|
- ${APP_DATA_DIR}/data/fonts:/usr/share/fonts/truetype/custom
|
|
networks:
|
|
- tipi_main_network
|
|
labels:
|
|
# Main
|
|
traefik.enable: true
|
|
traefik.http.middlewares.onlyoffice-docs-web-redirect.redirectscheme.scheme: https
|
|
traefik.http.services.onlyoffice-docs.loadbalancer.server.port: 80
|
|
# Web
|
|
traefik.http.routers.onlyoffice-docs-insecure.rule: Host(`${APP_DOMAIN}`)
|
|
traefik.http.routers.onlyoffice-docs-insecure.entrypoints: web
|
|
traefik.http.routers.onlyoffice-docs-insecure.service: onlyoffice-docs
|
|
traefik.http.routers.onlyoffice-docs-insecure.middlewares: onlyoffice-docs-web-redirect
|
|
# Websecure
|
|
traefik.http.routers.onlyoffice-docs.rule: Host(`${APP_DOMAIN}`)
|
|
traefik.http.routers.onlyoffice-docs.entrypoints: websecure
|
|
traefik.http.routers.onlyoffice-docs.service: onlyoffice-docs
|
|
traefik.http.routers.onlyoffice-docs.tls.certresolver: myresolver
|
|
# Local domain
|
|
traefik.http.routers.onlyoffice-docs-local-insecure.rule: Host(`onlyoffice-docs.${LOCAL_DOMAIN}`)
|
|
traefik.http.routers.onlyoffice-docs-local-insecure.entrypoints: web
|
|
traefik.http.routers.onlyoffice-docs-local-insecure.service: onlyoffice-docs
|
|
traefik.http.routers.onlyoffice-docs-local-insecure.middlewares: onlyoffice-docs-web-redirect
|
|
# Local domain secure
|
|
traefik.http.routers.onlyoffice-docs-local.rule: Host(`onlyoffice-docs.${LOCAL_DOMAIN}`)
|
|
traefik.http.routers.onlyoffice-docs-local.entrypoints: websecure
|
|
traefik.http.routers.onlyoffice-docs-local.service: onlyoffice-docs
|
|
traefik.http.routers.onlyoffice-docs-local.tls: true
|
|
# Runtipi managed
|
|
runtipi.managed: true
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost/healthcheck"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 60s
|
|
|
|
networks:
|
|
tipi_main_network:
|
|
external: true
|