Files
Gondulf/docker-compose.yml
Phil Skentelbery 01dcaba86b feat(deploy): merge Phase 5a deployment configuration
Complete containerized deployment system with Docker/Podman support.

Key features:
- Multi-stage Dockerfile with Python 3.11-slim base
- Docker Compose configurations for production and development
- Nginx reverse proxy with security headers and rate limiting
- Systemd service units for Docker, Podman, and docker-compose
- Backup/restore scripts with integrity verification
- Podman compatibility (ADR-009)

All tests pass including Podman verification testing.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-21 19:16:54 -07:00

54 lines
1.2 KiB
YAML

version: '3.8'
# Gondulf IndieAuth Server - Base Compose Configuration
# Compatible with both podman-compose and docker-compose
services:
gondulf:
build:
context: .
dockerfile: Dockerfile
image: gondulf:latest
container_name: gondulf
restart: unless-stopped
# Volume mounts
volumes:
- gondulf_data:/data
# Optional: Bind mount for backups (add :Z for SELinux with Podman)
# - ./backups:/data/backups:Z
# Environment variables (from .env file)
env_file:
- .env
# Port mapping (development/direct access)
# In production with nginx, remove this and use nginx reverse proxy
ports:
- "8000:8000"
# Health check (inherited from Dockerfile)
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8000/health"]
interval: 30s
timeout: 5s
retries: 3
start_period: 10s
# Network
networks:
- gondulf_network
volumes:
gondulf_data:
driver: local
# Optional: specify mount point on host with bind mount
# driver_opts:
# type: none
# device: /var/lib/gondulf/data
# o: bind
networks:
gondulf_network:
driver: bridge