networks: default: proxy: external: true volumes: data: postgres: services: outline: image: docker.getoutline.com/outlinewiki/outline:latest env_file: .env volumes: - data:/var/lib/outline/data networks: - default - proxy labels: traefik.enable: true traefik.http.routers.outline.rule: Host(`outline.4d6178.work`) traefik.http.services.outline.loadbalancer.server.port: 3000 traefik.http.routers.outline.entrypoints: websecure traefik.http.routers.outline.tls: true traefik.http.routers.outline.tls.certresolver: le depends_on: postgres: condition: service_healthy redis: condition: service_healthy restart: unless-stopped redis: image: redis env_file: .env volumes: - /opt/outline/redis.conf:/redis.conf command: ["redis-server", "/redis.conf"] networks: - default healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 30s retries: 3 restart: unless-stopped postgres: image: postgres env_file: .env volumes: - postgres:/var/lib/postgresql/data healthcheck: test: ["CMD", "pg_isready", "-d", "outline", "-U", "outline"] interval: 30s timeout: 20s retries: 3 networks: - default environment: POSTGRES_USER: 'outline' POSTGRES_PASSWORD: 'outline' POSTGRES_DB: 'outline' restart: unless-stopped