AnythingMCP auf Google Cloud Run bereitstellen
Stellen Sie AnythingMCP als serverlosen Container auf Google Cloud Run mit Cloud SQL für PostgreSQL bereit. Skalierbares, nutzungsbasiertes MCP-Gateway.
Warum Google Cloud Run?
Cloud Run ermöglicht es Ihnen, Container ohne Serververwaltung auszuführen. In Kombination mit Cloud SQL für PostgreSQL bietet es eine skalierbare, nutzungsbasierte Bereitstellung. HTTPS wird automatisch gehandhabt — kein Reverse-Proxy erforderlich.
Dies ist fortgeschrittener als VM-basierte Bereitstellungen. Sie können setup.sh auf Cloud Run nicht ausführen, daher müssen Sie das Image erstellen, pushen und Umgebungsvariablen manuell konfigurieren.
Voraussetzungen
- Ein GCP-Konto mit aktivierter Abrechnung
- gcloud CLI installiert und authentifiziert
- Docker lokal installiert
gcloud config set project YOUR_PROJECT_ID
gcloud config set run/region europe-west1
gcloud services enable \
run.googleapis.com \
sqladmin.googleapis.com \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com
Cloud SQL einrichten
gcloud sql instances create anythingmcp-db \
--database-version=POSTGRES_16 \
--tier=db-f1-micro \
--region=europe-west1
gcloud sql databases create anythingmcp --instance=anythingmcp-db
gcloud sql users create amcp \
--instance=anythingmcp-db \
--password=YOUR_DB_PASSWORD
Notieren Sie sich den Instanz-Verbindungsnamen (z.B. project-id:europe-west1:anythingmcp-db).
Image erstellen und pushen
git clone https://github.com/HelpCode-ai/anythingmcp.git
cd anythingmcp
# Option A: Lokal erstellen
docker build -t europe-west1-docker.pkg.dev/YOUR_PROJECT_ID/anythingmcp/app:latest .
docker push europe-west1-docker.pkg.dev/YOUR_PROJECT_ID/anythingmcp/app:latest
# Option B: Mit Cloud Build erstellen
gcloud builds submit --tag europe-west1-docker.pkg.dev/YOUR_PROJECT_ID/anythingmcp/app:latest
Geheimnisse generieren
Da setup.sh auf Cloud Run nicht ausgeführt werden kann, generieren Sie Geheimnisse manuell:
JWT_SECRET=$(openssl rand -hex 32)
ENCRYPTION_KEY=$(openssl rand -hex 16)
NEXTAUTH_SECRET=$(openssl rand -hex 32)
Auf Cloud Run bereitstellen
gcloud run deploy anythingmcp \
--image=europe-west1-docker.pkg.dev/YOUR_PROJECT_ID/anythingmcp/app:latest \
--allow-unauthenticated \
--port=4000 \
--min-instances=1 \
--max-instances=5 \
--memory=512Mi \
--cpu=1 \
--set-env-vars="NODE_ENV=production" \
--set-env-vars="DATABASE_URL=postgresql://amcp:YOUR_DB_PASSWORD@localhost:5432/anythingmcp" \
--set-env-vars="JWT_SECRET=$JWT_SECRET" \
--set-env-vars="ENCRYPTION_KEY=$ENCRYPTION_KEY" \
--set-env-vars="NEXTAUTH_SECRET=$NEXTAUTH_SECRET" \
--set-env-vars="MCP_AUTH_MODE=oauth2" \
--add-cloudsql-instances=YOUR_PROJECT_ID:europe-west1:anythingmcp-db
--min-instances=1 vermeidet Kaltstarts. Der Cloud-SQL-Proxy verwendet einen Unix-Socket, daher funktioniert localhost in der DATABASE_URL.
Benutzerdefinierte Domain (Optional)
gcloud run domain-mappings create \
--service=anythingmcp \
--domain=mcp.example.com \
--region=europe-west1
Folgen Sie den DNS-Anweisungen in der Ausgabe. SSL wird automatisch bereitgestellt.
Einschränkungen
- Zustandslos — Cloud-Run-Instanzen sind flüchtig. Alle Daten müssen in Cloud SQL gespeichert werden.
- Kaltstarts — Verwenden Sie
--min-instances=1zur Abmilderung (geringe Kosten). - Kein setup.sh — Alle Konfiguration erfolgt über Umgebungsvariablen bei der Bereitstellung.
- Kosten — Cloud Run berechnet pro Anfrage + vCPU-Zeit. Cloud SQL hat monatliche Fixkosten.
Aktualisierung
git pull
docker build -t europe-west1-docker.pkg.dev/YOUR_PROJECT_ID/anythingmcp/app:latest .
docker push europe-west1-docker.pkg.dev/YOUR_PROJECT_ID/anythingmcp/app:latest
gcloud run deploy anythingmcp \
--image=europe-west1-docker.pkg.dev/YOUR_PROJECT_ID/anythingmcp/app:latest \
--region=europe-west1
Bestehende Umgebungsvariablen und Cloud-SQL-Verbindungen bleiben bei erneuten Bereitstellungen erhalten.