version: '3.8' services: backend: build: ./backend environment: - JWT_SECRET=${JWT_SECRET} - PORT=${PORT:-3000} - DB_PATH=/app/data/kvitt.db - PASSKEY_RP_ID=${PASSKEY_RP_ID:-localhost} - PASSKEY_RP_NAME=${PASSKEY_RP_NAME:-Kvitt} - PASSKEY_ORIGIN=${PASSKEY_ORIGIN:-http://localhost:8080} - VAPID_PUBLIC_KEY=${VAPID_PUBLIC_KEY:-} - VAPID_PRIVATE_KEY=${VAPID_PRIVATE_KEY:-} - VAPID_CONTACT_EMAIL=${VAPID_CONTACT_EMAIL:-admin@example.com} volumes: - kvitt_data:/app/data restart: unless-stopped healthcheck: test: ["CMD", "wget", "-qO-", "http://localhost:3000/healthz"] interval: 30s timeout: 10s retries: 3 frontend: build: ./frontend environment: - KVITT_LANGUAGE=${KVITT_LANGUAGE:-sv-se} - KVITT_GITHUB_ISSUES_URL=${KVITT_GITHUB_ISSUES_URL:-https://github.com/rikardronnkvist/kvitt/issues/new} ports: - "${FRONTEND_PORT:-8080}:80" depends_on: - backend restart: unless-stopped volumes: kvitt_data: driver: local