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