services:

  # See sample https://github.com/outline/outline/blob/main/.env.sample

  outline_app:
    image: outlinewiki/outline:0.83.0
    container_name: outline_app
    restart: unless-stopped
    ports:
      - "127.0.0.1:{{ outline_port }}:3000"
    depends_on:
      - outline_postgres
      - outline_redis
    environment:
      NODE_ENV: 'production'
      URL: 'https://outline.vakhrushev.me'
      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 }}'
      PGSSLMODE: 'disable'
      REDIS_URL: 'redis://outline_redis:6379'      

      FILE_STORAGE: 's3'
      FILE_STORAGE_UPLOAD_MAX_SIZE: '262144000'
      AWS_ACCESS_KEY_ID: '{{ outline_s3_access_key }}'
      AWS_SECRET_ACCESS_KEY: '{{ outline_s3_secret_key }}'
      AWS_REGION: '{{ outline_s3_region }}'
      AWS_S3_ACCELERATE_URL: ''
      AWS_S3_UPLOAD_BUCKET_URL: '{{ outline_s3_url }}'
      AWS_S3_UPLOAD_BUCKET_NAME: '{{ outline_s3_bucket }}'
      AWS_S3_FORCE_PATH_STYLE: 'true'
      AWS_S3_ACL: 'private'
      
      OIDC_CLIENT_ID: '{{ outline_oidc_client_id }}'
      OIDC_CLIENT_SECRET: '{{ outline_oidc_client_secret }}'
      OIDC_AUTH_URI: 'https://kk.vakhrushev.me/realms/outline/protocol/openid-connect/auth'
      OIDC_TOKEN_URI: 'https://kk.vakhrushev.me/realms/outline/protocol/openid-connect/token'
      OIDC_USERINFO_URI: 'https://kk.vakhrushev.me/realms/outline/protocol/openid-connect/userinfo'
      OIDC_LOGOUT_URI: 'https://kk.vakhrushev.me/realms/outline/protocol/openid-connect/logout'
      OIDC_USERNAME_CLAIM: 'email'
      OIDC_DISPLAY_NAME: 'KK'

      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:8.1.1-alpine
    container_name: outline_redis
    restart: unless-stopped

  outline_postgres:
    image: postgres:16.3-bookworm
    container_name: outline_postgres
    restart: unless-stopped
    volumes:
      - {{ postgres_data_dir }}:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: '{{ outline_postgres_user }}'
      POSTGRES_PASSWORD: '{{ outline_postgres_password }}'
      POSTGRES_DB: '{{ outline_postgres_database }}'