version: '3.8' services: skrift-backend: build: . container_name: skrift-backend restart: unless-stopped ports: - "4000:4000" environment: - NODE_ENV=${NODE_ENV:-production} - PORT=4000 - SCRIPTALIZER_LICENSE_KEY=${SCRIPTALIZER_LICENSE_KEY} - SCRIPTALIZER_ERR_FREQUENCY=${SCRIPTALIZER_ERR_FREQUENCY:-10} - BATCH_SIZE=${BATCH_SIZE:-30} - CACHE_LIFETIME_HOURS=${CACHE_LIFETIME_HOURS:-2} - RATE_LIMIT_PER_MINUTE=${RATE_LIMIT_PER_MINUTE:-2} volumes: - ./fonts:/app/fonts:ro # SVG Fonts (read-only) - skrift-cache:/app/cache # Preview cache (temporary) - /var/skrift-output:/app/output # Output files for N8N networks: - skrift-network healthcheck: test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:4000/health"] interval: 30s timeout: 3s retries: 3 start_period: 5s volumes: skrift-cache: driver: local networks: skrift-network: driver: bridge