wiki_ghostguild/docker-compose.yml
Jennie Robinson Faber 8e7424ed05 Add cron container for daily backups and content export
- Add cron service to docker-compose with backup (3 AM) and export (4 AM) schedules
- Remove redundant content/articles/ and content/curriculum/ (now in Outline, exported to content/wiki/)
- Fix env var mismatch: support both OUTLINE_API_KEY and OUTLINE_API_TOKEN
- Drop updatedAt from export frontmatter to reduce noisy commits
- Add backups/ to gitignore
2026-03-24 09:14:16 +00:00

102 lines
2.2 KiB
YAML

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:
- .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
cron:
build:
context: .
dockerfile: cron/Dockerfile
container_name: outline-cron
restart: unless-stopped
depends_on:
- postgres
volumes:
- ./scripts:/app/scripts:ro
- ./content:/app/content
- ./.git:/app/.git
- /var/run/docker.sock:/var/run/docker.sock:ro
- ~/.ssh:/root/.ssh:ro
- ./backups:/backups/outline
env_file:
- .env
networks:
dokploy-network:
external: true
volumes:
outline-storage:
name: code_outline-storage
external: true
postgres-data:
name: code_postgres-data
external: true
redis-data:
name: code_redis-data
external: true