Add external database docker-compose variant
This commit is contained in:
144
docker-compose.external-db.yml
Normal file
144
docker-compose.external-db.yml
Normal file
@@ -0,0 +1,144 @@
|
||||
version: "3.9"
|
||||
|
||||
# Alternative configuration with external PostgreSQL and Redis
|
||||
# Use this for production deployments with higher performance requirements
|
||||
|
||||
services:
|
||||
onlyoffice-docs:
|
||||
image: onlyoffice/documentserver:8.2
|
||||
container_name: onlyoffice-docs
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
onlyoffice-db:
|
||||
condition: service_healthy
|
||||
onlyoffice-redis:
|
||||
condition: service_healthy
|
||||
onlyoffice-rabbitmq:
|
||||
condition: service_healthy
|
||||
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}
|
||||
# Database Configuration
|
||||
- DB_TYPE=postgres
|
||||
- DB_HOST=onlyoffice-db
|
||||
- DB_PORT=5432
|
||||
- DB_NAME=onlyoffice
|
||||
- DB_USER=onlyoffice
|
||||
- DB_PWD=${ONLYOFFICE_DB_PASSWORD:-onlyoffice}
|
||||
# Redis Configuration
|
||||
- REDIS_SERVER_HOST=onlyoffice-redis
|
||||
- REDIS_SERVER_PORT=6379
|
||||
# RabbitMQ Configuration
|
||||
- AMQP_URI=amqp://guest:guest@onlyoffice-rabbitmq:5672/
|
||||
- AMQP_TYPE=rabbitmq
|
||||
# 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
|
||||
# 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
|
||||
|
||||
onlyoffice-db:
|
||||
image: postgres:15-alpine
|
||||
container_name: onlyoffice-db
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- POSTGRES_DB=onlyoffice
|
||||
- POSTGRES_USER=onlyoffice
|
||||
- POSTGRES_PASSWORD=${ONLYOFFICE_DB_PASSWORD:-onlyoffice}
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data/postgresql:/var/lib/postgresql/data
|
||||
networks:
|
||||
- tipi_main_network
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U onlyoffice -d onlyoffice"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
start_period: 10s
|
||||
|
||||
onlyoffice-redis:
|
||||
image: redis:7-alpine
|
||||
container_name: onlyoffice-redis
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data/redis:/data
|
||||
networks:
|
||||
- tipi_main_network
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli", "ping"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
start_period: 10s
|
||||
|
||||
onlyoffice-rabbitmq:
|
||||
image: rabbitmq:3-alpine
|
||||
container_name: onlyoffice-rabbitmq
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data/rabbitmq:/var/lib/rabbitmq
|
||||
networks:
|
||||
- tipi_main_network
|
||||
healthcheck:
|
||||
test: ["CMD", "rabbitmq-diagnostics", "-q", "ping"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
start_period: 30s
|
||||
|
||||
networks:
|
||||
tipi_main_network:
|
||||
external: true
|
||||
Reference in New Issue
Block a user