Files
Bentlybro 2718ae5797 Add GCP deployment configuration files
Introduces Dockerfile, Cloud Build YAML, .gitignore, and README for deploying AutoModerate to Google Cloud Platform. These files support Cloud Run deployment, CI/CD automation, and secure environment variable management.
2025-09-25 12:28:53 +01:00

2.1 KiB

AutoModerate GCP Deployment

This folder contains GCP-specific deployment configurations for AutoModerate.

Files

  • Dockerfile - Cloud Run optimized Docker image (no PostgreSQL)
  • cloudbuild.yaml - Cloud Build configuration for CI/CD
  • .gitignore - Prevents accidental commit of environment files

Setup

1. Cloud SQL Setup

Create PostgreSQL instance in Cloud SQL and note the connection string:

postgresql://user:pass@/automoderate?host=/cloudsql/PROJECT:REGION:INSTANCE

2. Environment Variables (Public Repo Safe)

DO NOT create environment files in a public repository. Instead, use one of these secure methods:

Option A: Cloud Build Substitution Variables (Recommended) Set environment variables directly in Cloud Build trigger configuration:

  • _DATABASE_URL: Your Cloud SQL connection string
  • _OPENAI_API_KEY: Your OpenAI API key
  • _SECRET_KEY: Secure random string for Flask sessions
  • _ADMIN_EMAIL: Admin user email
  • _ADMIN_PASSWORD: Admin user password

Option B: Secret Manager (Most Secure) Store sensitive values in GCP Secret Manager and reference in cloudbuild.yaml:

availableSecrets:
  secretManager:
  - versionName: projects/PROJECT_ID/secrets/openai-api-key/versions/latest
    env: 'OPENAI_API_KEY'

Option C: Cloud Run Environment Variables Set environment variables directly in Cloud Run service configuration.

3. Cloud Build Triggers

Create separate triggers for dev and prod branches:

Dev Trigger (dev branch):

  • Branch: dev
  • Build config: deploy/cloudbuild.yaml
  • Substitution variables:
    • _ENV=dev
    • _FLASK_CONFIG=development
    • _DATABASE_URL=your-dev-cloud-sql-connection
    • _OPENAI_API_KEY=your-dev-api-key
    • _SECRET_KEY=your-dev-secret-key

Prod Trigger (main branch):

  • Branch: main
  • Build config: deploy/cloudbuild.yaml
  • Substitution variables:
    • _ENV=prod
    • _FLASK_CONFIG=production
    • _DATABASE_URL=your-prod-cloud-sql-connection
    • _OPENAI_API_KEY=your-prod-api-key
    • _SECRET_KEY=your-prod-secret-key

Services

  • Dev: automoderate-dev → automod-dev.agpt.co
  • Prod: automoderate-prod → automod.agpt.co