infra-coolify/stacks/lail-apps/outline/docker-compose.yml
2026-04-03 17:37:48 +02:00

108 lines
4.1 KiB
YAML

services:
outline:
image: 'docker.getoutline.com/outlinewiki/outline:latest'
volumes:
- '/data/lail-apps/lail-outline:/var/lib/outline/data'
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
environment:
- SERVICE_URL_OUTLINE_3000
- NODE_ENV=production
- 'SECRET_KEY=${SERVICE_HEX_32_OUTLINE}'
- 'UTILS_SECRET=${SERVICE_PASSWORD_64_OUTLINE}'
- 'DATABASE_URL=postgres://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_64_POSTGRES}@postgres:5432/${POSTGRES_DATABASE:-outline}'
- 'REDIS_URL=redis://:${SERVICE_PASSWORD_64_REDIS}@redis:6379'
- 'URL=${SERVICE_URL_OUTLINE}'
- 'PORT=${OUTLINE_PORT:-3000}'
- 'FILE_STORAGE=${FILE_STORAGE:-local}'
- 'FILE_STORAGE_LOCAL_ROOT_DIR=${FILE_STORAGE_LOCAL_ROOT_DIR:-/var/lib/outline/data}'
- 'FILE_STORAGE_UPLOAD_MAX_SIZE=${FILE_STORAGE_UPLOAD_MAX_SIZE:-2000}'
- 'FILE_STORAGE_IMPORT_MAX_SIZE=${FILE_STORAGE_IMPORT_MAX_SIZE:-100}'
- 'FILE_STORAGE_WORKSPACE_IMPORT_MAX_SIZE=${FILE_STORAGE_WORKSPACE_IMPORT_MAX_SIZE}'
- 'AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}'
- 'AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}'
- 'AWS_REGION=${AWS_REGION}'
- 'AWS_S3_ACCELERATE_URL=${AWS_S3_ACCELERATE_URL}'
- 'AWS_S3_UPLOAD_BUCKET_URL=${AWS_S3_UPLOAD_BUCKET_URL}'
- 'AWS_S3_UPLOAD_BUCKET_NAME=${AWS_S3_UPLOAD_BUCKET_NAME}'
- 'AWS_S3_FORCE_PATH_STYLE=${AWS_S3_FORCE_PATH_STYLE:-true}'
- 'AWS_S3_ACL=${AWS_S3_ACL:-private}'
- 'SLACK_CLIENT_ID=${SLACK_CLIENT_ID}'
- 'SLACK_CLIENT_SECRET=${SLACK_CLIENT_SECRET}'
- 'GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID}'
- 'GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET}'
- 'AZURE_CLIENT_ID=${AZURE_CLIENT_ID}'
- 'AZURE_CLIENT_SECRET=${AZURE_CLIENT_SECRET}'
- 'AZURE_RESOURCE_APP_ID=${AZURE_RESOURCE_APP_ID}'
- 'OIDC_CLIENT_ID=${OIDC_CLIENT_ID}'
- 'OIDC_CLIENT_SECRET=${OIDC_CLIENT_SECRET}'
- 'OIDC_AUTH_URI=${OIDC_AUTH_URI}'
- 'OIDC_TOKEN_URI=${OIDC_TOKEN_URI}'
- 'OIDC_USERINFO_URI=${OIDC_USERINFO_URI}'
- 'OIDC_LOGOUT_URI=${OIDC_LOGOUT_URI}'
- 'OIDC_USERNAME_CLAIM=${OIDC_USERNAME_CLAIM}'
- 'OIDC_DISPLAY_NAME=${OIDC_DISPLAY_NAME}'
- 'OIDC_SCOPES=${OIDC_SCOPES}'
- 'GITHUB_CLIENT_ID=${GITHUB_CLIENT_ID}'
- 'GITHUB_CLIENT_SECRET=${GITHUB_CLIENT_SECRET}'
- 'GITHUB_APP_NAME=${GITHUB_APP_NAME}'
- 'GITHUB_APP_ID=${GITHUB_APP_ID}'
- 'GITHUB_APP_PRIVATE_KEY=${GITHUB_APP_PRIVATE_KEY}'
- 'DISCORD_CLIENT_ID=${DISCORD_CLIENT_ID}'
- 'DISCORD_CLIENT_SECRET=${DISCORD_CLIENT_SECRET}'
- 'DISCORD_SERVER_ID=${DISCORD_SERVER_ID}'
- 'DISCORD_SERVER_ROLES=${DISCORD_SERVER_ROLES}'
- 'PGSSLMODE=${PGSSLMODE:-disable}'
- 'FORCE_HTTPS=${FORCE_HTTPS:-true}'
- 'SMTP_HOST=${SMTP_HOST}'
- 'SMTP_PORT=${SMTP_PORT}'
- 'SMTP_USERNAME=${SMTP_USERNAME}'
- 'SMTP_PASSWORD=${SMTP_PASSWORD}'
- 'SMTP_FROM_EMAIL=${SMTP_FROM_EMAIL}'
- 'SMTP_REPLY_EMAIL=${SMTP_REPLY_EMAIL}'
- 'SMTP_TLS_CIPHERS=${SMTP_TLS_CIPHERS}'
- 'SMTP_SECURE=${SMTP_SECURE}'
- 'SMTP_NAME=${SMTP_NAME}'
healthcheck:
disable: true
redis:
image: 'redis:alpine'
environment:
- 'REDIS_PASSWORD=${SERVICE_PASSWORD_64_REDIS}'
command:
- redis-server
- '--requirepass'
- '${SERVICE_PASSWORD_64_REDIS}'
healthcheck:
test:
- CMD
- redis-cli
- '-a'
- '${SERVICE_PASSWORD_64_REDIS}'
- PING
interval: 10s
timeout: 30s
retries: 3
postgres:
image: 'postgres:12-alpine'
volumes:
- 'database-data:/var/lib/postgresql/data'
environment:
- 'POSTGRES_USER=${SERVICE_USER_POSTGRES}'
- 'POSTGRES_PASSWORD=${SERVICE_PASSWORD_64_POSTGRES}'
- 'POSTGRES_DB=${POSTGRES_DATABASE:-outline}'
healthcheck:
test:
- CMD
- pg_isready
- '-U'
- '${SERVICE_USER_POSTGRES}'
- '-d'
- '${POSTGRES_DATABASE:-outline}'
interval: 30s
timeout: 20s
retries: 3