services: postgres: image: postgres:16-alpine container_name: snehith_travels_postgres restart: always environment: POSTGRES_USER: ${POSTGRES_USER:-postgres} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgrespassword} POSTGRES_DB: ${POSTGRES_DB:-snehith_travels} volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 5s timeout: 5s retries: 5 backend: build: context: ./backend dockerfile: Dockerfile container_name: snehith_travels_backend restart: always environment: - DATABASE_URL=postgresql+psycopg2://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgrespassword}@postgres:5432/${POSTGRES_DB:-snehith_travels} - SECRET_KEY=${SECRET_KEY:-snehith_super_secret_hackathon_jwt_key_2026_change_in_production} - ENVIRONMENT=production - CORS_ORIGINS=${CORS_ORIGINS:-*} - RAZORPAY_KEY_ID=${RAZORPAY_KEY_ID:-rzp_test_placeholder} - RAZORPAY_KEY_SECRET=${RAZORPAY_KEY_SECRET:-placeholder_secret} - RAZORPAY_WEBHOOK_SECRET=${RAZORPAY_WEBHOOK_SECRET:-placeholder_webhook_secret} - FRONTEND_URL=${FRONTEND_URL:-http://localhost} - WHATSAPP_API_TOKEN=${WHATSAPP_API_TOKEN:-} - WHATSAPP_PHONE_NUMBER_ID=${WHATSAPP_PHONE_NUMBER_ID:-} - WHATSAPP_API_VERSION=${WHATSAPP_API_VERSION:-v22.0} - WHATSAPP_PAYMENT_TEMPLATE_NAME=${WHATSAPP_PAYMENT_TEMPLATE_NAME:-snehith_travels_payment_link} - WHATSAPP_PAYMENT_TEMPLATE_LANG=${WHATSAPP_PAYMENT_TEMPLATE_LANG:-en} depends_on: postgres: condition: service_healthy frontend: build: context: ./frontend dockerfile: Dockerfile args: - NEXT_PUBLIC_API_URL=${NEXT_PUBLIC_API_URL:-} - NEXT_PUBLIC_RAZORPAY_KEY_ID=${NEXT_PUBLIC_RAZORPAY_KEY_ID:-rzp_test_Tcz7Z70RAqZvXw} container_name: snehith_travels_frontend restart: always environment: - NODE_ENV=production - NEXT_PUBLIC_API_URL=${NEXT_PUBLIC_API_URL:-} - NEXT_PUBLIC_RAZORPAY_KEY_ID=${NEXT_PUBLIC_RAZORPAY_KEY_ID:-rzp_test_Tcz7Z70RAqZvXw} depends_on: - backend nginx: image: nginx:alpine container_name: snehith_travels_nginx restart: always ports: - "80:80" volumes: - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro depends_on: - frontend - backend volumes: postgres_data: