services: # See sample https://github.com/outline/outline/blob/main/.env.sample outline_app: image: outlinewiki/outline:1.1.0 container_name: outline_app user: "{{ user_create_result.uid }}:{{ user_create_result.group }}" restart: unless-stopped depends_on: - outline_postgres - outline_redis networks: - "outline_network" - "web_proxy_network" volumes: - "{{ media_dir }}:/var/lib/outline/data" environment: NODE_ENV: 'production' URL: 'https://outline.vakhrushev.me' FORCE_HTTPS: 'true' SECRET_KEY: '{{ outline_secret_key }}' UTILS_SECRET: '{{ outline_utils_secret }}' DATABASE_URL: 'postgres://{{ outline_postgres_user }}:{{ outline_postgres_password }}@outline_postgres:5432/{{ outline_postgres_database }}' # yamllint disable-line rule:line-length PGSSLMODE: 'disable' REDIS_URL: 'redis://outline_redis:6379' FILE_STORAGE: 'local' FILE_STORAGE_UPLOAD_MAX_SIZE: '262144000' # 250 MB OIDC_CLIENT_ID: '{{ outline_oidc_client_id | replace("$", "$$") }}' OIDC_CLIENT_SECRET: '{{ outline_oidc_client_secret | replace("$", "$$") }}' OIDC_AUTH_URI: 'https://auth.vakhrushev.me/api/oidc/authorization' OIDC_TOKEN_URI: 'https://auth.vakhrushev.me/api/oidc/token' OIDC_USERINFO_URI: 'https://auth.vakhrushev.me/api/oidc/userinfo' OIDC_LOGOUT_URI: 'https://auth.vakhrushev.me/logout' OIDC_USERNAME_CLAIM: 'email' OIDC_SCOPES: 'openid profile email' OIDC_DISPLAY_NAME: 'Authelia' SMTP_HOST: '{{ postbox_host }}' SMTP_PORT: '{{ postbox_port }}' SMTP_USERNAME: '{{ postbox_user }}' SMTP_PASSWORD: '{{ postbox_pass }}' SMTP_FROM_EMAIL: 'outline@vakhrushev.me' SMTP_TLS_CIPHERS: 'TLSv1.2' SMTP_SECURE: 'false' outline_redis: image: valkey/valkey:9.0-alpine container_name: outline_redis restart: unless-stopped networks: - "outline_network" - "monitoring_network" outline_postgres: image: postgres:16.3-bookworm container_name: outline_postgres user: "{{ user_create_result.uid }}:{{ user_create_result.group }}" restart: unless-stopped volumes: - "/etc/passwd:/etc/passwd:ro" - "{{ postgres_data_dir }}:/var/lib/postgresql/data" environment: POSTGRES_USER: '{{ outline_postgres_user }}' POSTGRES_PASSWORD: '{{ outline_postgres_password }}' POSTGRES_DB: '{{ outline_postgres_database }}' networks: - "outline_network" - "monitoring_network" healthcheck: test: ["CMD", "pg_isready", "--username={{ outline_postgres_user }}", "--dbname={{ outline_postgres_database }}"] interval: 10s start_period: 30s networks: outline_network: driver: bridge web_proxy_network: external: true monitoring_network: external: true