# Directus Infrastructure Environment Variables # Copy this file to .env.infrastructure.local on your server and fill in the values # ===================================== # REQUIRED: Security Keys & Database # ===================================== # Generate these with: openssl rand -hex 32 DIRECTUS_KEY=your-directus-key-here-32-chars-minimum-abcdef1234567890 DIRECTUS_SECRET=your-directus-secret-here-32-chars-minimum-abcdef1234567890 # Strong database password DIRECTUS_DB_PASSWORD=your-secure-database-password-here # ===================================== # REQUIRED: Admin Account Setup # ===================================== # Admin account created on first run only DIRECTUS_ADMIN_EMAIL=admin@blackcanyontickets.com DIRECTUS_ADMIN_PASSWORD=your-secure-admin-password-here # ===================================== # REQUIRED: CORS Configuration # ===================================== # Production domain(s) - REQUIRED, no fallbacks DIRECTUS_CORS_ORIGIN=https://portal.blackcanyontickets.com # ===================================== # REQUIRED: Email Configuration # ===================================== # All email variables are REQUIRED - configure for production DIRECTUS_EMAIL_FROM=cms@blackcanyontickets.com DIRECTUS_EMAIL_TRANSPORT=smtp DIRECTUS_SMTP_HOST=smtp.resend.com DIRECTUS_SMTP_PORT=587 DIRECTUS_SMTP_USER=resend DIRECTUS_SMTP_PASSWORD=your-resend-api-key-here # ===================================== # SETUP INSTRUCTIONS # ===================================== # 1. Copy this file: cp .env.infrastructure .env.infrastructure.local # 2. Generate random keys: openssl rand -hex 32 # 3. Set strong passwords for database and admin # 4. Update CORS origins to match your domain(s) # 5. Configure email settings if needed # 6. Load environment: export $(cat .env.infrastructure.local | xargs) # 7. Start infrastructure: npm run docker:infrastructure:up # ===================================== # DATABASE INITIALIZATION # ===================================== # Directus will automatically: # - Create database tables on first run # - Set up admin user with DIRECTUS_ADMIN_EMAIL/PASSWORD # - Initialize storage and extensions directories # - Apply database migrations # Check logs if initialization fails: # docker logs bct-directus # ===================================== # DATABASE SAFETY PROTECTIONS # ===================================== # 🚨 IMPORTANT DATABASE SAFETY NOTES: # 1. Named volumes prevent accidental data loss: # - postgres_data: PostgreSQL database files # - directus_uploads: User uploaded files # - directus_extensions: Custom extensions # 2. Admin user only created if no users exist # - Safe to restart containers without overwriting users # - Set DIRECTUS_ALLOW_ADMIN_CREATION=false after first setup # 3. To completely reset database (⚠️ DATA LOSS): # docker-compose -f docker-compose.infrastructure.yml down # docker volume rm bct-whitelabel_postgres_data # docker volume rm bct-whitelabel_directus_uploads # docker volume rm bct-whitelabel_directus_extensions # 4. To backup before major changes: # docker exec bct-postgres pg_dump -U directus directus > backup.sql