services: backend: build: ./backend security_opt: - apparmor=unconfined environment: DATABASE_URL: ${DATABASE_URL} CENTRAL_AUTH_SECRET: ${CENTRAL_AUTH_SECRET} SETTINGS_URL: ${SETTINGS_URL} SETTINGS_SECRET: ${SETTINGS_SECRET} APP_SLUG: twin-optimiser OFFICE_IP_CHECK: ${OFFICE_IP_CHECK:-disabled} healthcheck: test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:3001/health || exit 1"] interval: 10s retries: 5 start_period: 20s restart: unless-stopped frontend: build: context: ./frontend args: VITE_HOTEL_NAME: ${VITE_HOTEL_NAME} security_opt: - apparmor=unconfined ports: - "${FRONTEND_PORT:-3080}:80" depends_on: backend: condition: service_healthy restart: unless-stopped networks: default: driver: bridge