version: '3.8' services: attestation: build: context: . args: - DOMAIN=${DOMAIN:-attestation.app} container_name: attestation-server restart: unless-stopped volumes: # Persist SQLite databases (attestation.db and samples.db) - ./data:/data # Share static files with caddy (attestation copies, caddy serves) - static-files:/srv/static networks: - internal expose: - "8080" caddy: image: caddy:2-alpine container_name: attestation-caddy restart: unless-stopped ports: - "80:80" - "443:443" - "443:443/udp" environment: - DOMAIN=${DOMAIN:-attestation.app} volumes: - ./Caddyfile:/etc/caddy/Caddyfile:ro - ./certs:/etc/caddy/certs:ro - caddy-data:/data - caddy-config:/config # Mount static files from shared volume - static-files:/srv/static:ro depends_on: - attestation networks: - internal volumes: caddy-data: caddy-config: static-files: networks: internal: