version: '3.8'

# Override file for local development
# This file is automatically loaded by docker-compose up
# Simplified development setup with just the Astro app

services:
  # Astro app for local development
  bct-app:
    build:
      context: .
      dockerfile: Dockerfile
      target: production
    container_name: bct-astro-dev
    ports:
      - "3000:3000"
    labels:
      - "com.blackcanyon.role=astro-app"
      - "com.blackcanyon.env=development"
      - "maintainer=tyler@crispygoat.com"
    env_file:
      - .env
    environment:
      - NODE_ENV=development
      - HOST=0.0.0.0
      - PORT=3000
      # Supabase (your existing hosted database)
      - PUBLIC_SUPABASE_URL=${PUBLIC_SUPABASE_URL}
      - PUBLIC_SUPABASE_ANON_KEY=${PUBLIC_SUPABASE_ANON_KEY}
      - SUPABASE_SERVICE_ROLE_KEY=${SUPABASE_SERVICE_ROLE_KEY}
      # Stripe
      - STRIPE_PUBLISHABLE_KEY=${STRIPE_PUBLISHABLE_KEY}
      - STRIPE_SECRET_KEY=${STRIPE_SECRET_KEY}
      - STRIPE_WEBHOOK_SECRET=${STRIPE_WEBHOOK_SECRET}
      # Email
      - RESEND_API_KEY=${RESEND_API_KEY}
      # Monitoring
      - SENTRY_DSN=${SENTRY_DSN}
      - SENTRY_RELEASE=development
    volumes:
      - ./logs:/app/logs
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "node", "-e", "const http=require('http');const options={hostname:'localhost',port:3000,path:'/api/health',timeout:2000};const req=http.request(options,(res)=>{process.exit(res.statusCode===200?0:1)});req.on('error',()=>{process.exit(1)});req.end();"]
      interval: 30s
      timeout: 5s
      retries: 5
      start_period: 40s
    networks:
      - bct-network

networks:
  bct-network:
    driver: bridge