services: outline: image: outlinewiki/outline:1.6.1 container_name: outline-outline-1 restart: unless-stopped env_file: - /opt/homelab/config/outline/.env ports: - "3000:3000" volumes: - outline_storage:/var/lib/outline/data depends_on: - postgres - redis networks: - outline_internal healthcheck: test: ["CMD", "wget", "-qO-", "http://localhost:3000/_health"] interval: 30s timeout: 10s retries: 3 start_period: 30s postgres: image: postgres:16-alpine container_name: outline-postgres-1 restart: unless-stopped env_file: - /opt/homelab/config/outline/.env volumes: - postgres_data:/var/lib/postgresql/data networks: - outline_internal healthcheck: test: ["CMD-SHELL", "pg_isready -U outline -d outline"] interval: 10s timeout: 5s retries: 5 redis: image: redis:7-alpine container_name: outline-redis-1 restart: unless-stopped volumes: - redis_data:/data networks: - outline_internal healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 3 volumes: outline_storage: external: true name: outline_outline_storage postgres_data: external: true name: outline_postgres_data redis_data: external: true name: outline_redis_data networks: outline_internal: driver: bridge name: outline_outline_internal