version: "3" services: outline: image: outlinewiki/outline env_file: ./docker.env ports: - "3000:3000" # volumes: # - type: bind # source: ./private.pem # target: /opt/outline/private.pem # read_only: true # - type: bind # source: ./public.pem # target: /opt/outline/public.pem # read_only: true depends_on: - postgres - redis - storage redis: image: redis env_file: ./docker.env ports: - "6379:6379" volumes: - ./redis.conf:/redis.conf command: ["redis-server", "/redis.conf"] healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 30s retries: 3 postgres: image: postgres env_file: ./docker.env ports: - "5432:5432" volumes: - database-data:/var/lib/postgresql/data healthcheck: test: ["CMD", "pg_isready -U user"] interval: 30s timeout: 20s retries: 3 environment: POSTGRES_USER: 'user' POSTGRES_PASSWORD: 'pass' POSTGRES_DB: 'outline' storage: image: minio/minio env_file: ./docker.env ports: - "9000:9000" - "9001:9001" entrypoint: sh command: -c 'minio server --address ":9000" --console-address ":9001" /data' deploy: restart_policy: condition: on-failure volumes: - storage-data:/data - ./minio:/root/.minio healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] interval: 30s timeout: 20s retries: 3 authelia: image: authelia/authelia container_name: authelia volumes: - ./authelia:/config ports: - "3001:3001" restart: unless-stopped healthcheck: ## In production the healthcheck section should be commented. disable: true environment: - TZ=Asia/Shanghai volumes: https-portal-data: storage-data: database-data: