services: nginx: image: nginx:alpine container_name: outline-nginx restart: unless-stopped depends_on: - outline volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro - ./theme:/opt/ghost-guild-wiki-theme:ro networks: - default - dokploy-network outline: image: docker.getoutline.com/outlinewiki/outline:latest container_name: outline restart: unless-stopped env_file: ./outline.env depends_on: postgres: condition: service_healthy redis: condition: service_healthy volumes: - outline-storage:/var/lib/outline/data postgres: image: postgres:16-alpine container_name: outline-postgres restart: unless-stopped environment: POSTGRES_USER: outline POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: outline volumes: - postgres-data:/var/lib/postgresql/data command: - "postgres" - "-c" - "shared_buffers=128MB" - "-c" - "max_connections=20" - "-c" - "work_mem=4MB" - "-c" - "maintenance_work_mem=64MB" healthcheck: test: ["CMD-SHELL", "pg_isready -U outline"] interval: 10s timeout: 5s retries: 5 redis: image: redis:7-alpine container_name: outline-redis restart: unless-stopped command: > redis-server --maxmemory 64mb --maxmemory-policy allkeys-lru volumes: - redis-data:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5 networks: dokploy-network: external: true volumes: outline-storage: postgres-data: redis-data: