services: backend: build: ./backend security_opt: - apparmor=unconfined shm_size: '256m' environment: - DATABASE_URL=${DATABASE_URL} - CENTRAL_AUTH_SECRET=${CENTRAL_AUTH_SECRET} - APP_SLUG=rates - SETTINGS_URL=${SETTINGS_URL:-} - SETTINGS_SECRET=${SETTINGS_SECRET:-} # Residential proxy for the Booking.com scraper (empty = direct connection). - BOOKING_PROXY_HOST=${BOOKING_PROXY_HOST:-} - BOOKING_PROXY_PORT=${BOOKING_PROXY_PORT:-823} - BOOKING_PROXY_USERNAME=${BOOKING_PROXY_USERNAME:-} - BOOKING_PROXY_PASSWORD=${BOOKING_PROXY_PASSWORD:-} - BOOKING_PROXY_COUNTRY=${BOOKING_PROXY_COUNTRY:-gb} healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/health"] interval: 15s timeout: 10s retries: 10 start_period: 60s restart: unless-stopped frontend: build: context: ./frontend args: VITE_HOTEL_NAME: ${VITE_HOTEL_NAME:-Hotel} security_opt: - apparmor=unconfined ports: - "${FRONTEND_PORT:-3080}:80" depends_on: backend: condition: service_healthy restart: unless-stopped networks: default: driver: bridge