Fly.io Deployment: Dein OpenClaw Gateway in der Cloud
Ich weiß noch, wie ich früher versucht habe, meine Bots auf alten Laptops oder billigen VPS zu hosten. Ständige Verbindungsabbrüche, mühsame SSL-Zertifikate und wenn der Strom weg war, war auch der Bot offline. Fly.io löst diese Probleme ziemlich elegant. Du bekommst eine stabile Umgebung, ohne dich um die zugrunde liegende Infrastruktur kümmern zu müssen.
In diesem Guide zeige ich dir, wie du dein OpenClaw Gateway auf Fly.io installierst. Wir setzen auf persistenten Speicher, damit deine Daten Neustarts überleben, und kümmern uns um die richtige Konfiguration für Discord und Co.
Was du brauchst
Abschnitt betitelt „Was du brauchst“- flyctl CLI installiert
- Einen Fly.io Account (der Free Tier reicht oft aus)
- Model-Keys: Anthropic API Key (oder andere Provider)
- Channel-Daten: Discord Bot Token, Telegram Token, etc.
Schnellstart für Eilige
Abschnitt betitelt „Schnellstart für Eilige“- Repo klonen und
fly.tomlanpassen. - App und Volume erstellen, danach Secrets setzen.
- Mit
fly deployausrollen. - Per SSH die Konfiguration erstellen oder das Control UI nutzen.
1) Fly App erstellen
Abschnitt betitelt „1) Fly App erstellen“Zuerst holst du dir den Code und bereitest die Umgebung vor.
# Repo klonengit clone https://github.com/openclaw/openclaw.gitcd openclaw
# Neue Fly App erstellen (wähle einen eigenen Namen)fly apps create mein-openclaw
# Ein Volume für Daten erstellen (1GB reicht meistens)fly volumes create openclaw_data --size 1 --region iadTipp: Wähle eine Region in deiner Nähe. Gute Optionen sind ams (Amsterdam) oder fra (Frankfurt).
2) fly.toml konfigurieren
Abschnitt betitelt „2) fly.toml konfigurieren“Bearbeite die fly.toml, damit sie zu deinem App-Namen passt. Standardmäßig ist die App öffentlich erreichbar. Wenn du das nicht willst, schau dir den Abschnitt zur privaten Deployment-Variante an.
app = "mein-openclaw"primary_region = "fra"
[build] dockerfile = "Dockerfile"
[env] NODE_ENV = "production" OPENCLAW_PREFER_PNPM = "1" OPENCLAW_STATE_DIR = "/data" NODE_OPTIONS = "--max-old-space-size=1536"
[processes] app = "node dist/index.js gateway --allow-unconfigured --port 3000 --bind lan"
[http_service] internal_port = 3000 force_https = true auto_stop_machines = false auto_start_machines = true min_machines_running = 1 processes = ["app"]
[[vm]] size = "shared-cpu-2x" memory = "2048mb"
[mounts] source = "openclaw_data" destination = "/data"Wichtige Einstellungen:
| Einstellung | Grund |
|---|---|
--bind lan | Bindet an 0.0.0.0, damit der Fly-Proxy das Gateway erreicht. |
--allow-unconfigured | Startet ohne fertige Config-Datei (die erstellen wir später). |
internal_port = 3000 | Muss mit --port 3000 für die Health Checks übereinstimmen. |
memory = "2048mb" | 512MB sind zu wenig; 2GB sorgen für einen stabilen Betrieb. |
3) Secrets setzen
Abschnitt betitelt „3) Secrets setzen“Sicherheit geht vor. Nutze Secrets für alle empfindlichen Daten, statt sie in Dateien zu schreiben.
# Gateway Token (wichtig für die Sicherheit)fly secrets set OPENCLAW_GATEWAY_TOKEN=$(openssl rand -hex 32)
# API Keys für Modelsfly secrets set ANTHROPIC_API_KEY=sk-ant-...fly secrets set OPENAI_API_KEY=sk-...
# Channel Tokensfly secrets set DISCORD_BOT_TOKEN=MTQ...Nutze Umgebungsvariablen für alle API Keys. So verhinderst du, dass Secrets versehentlich in der openclaw.json landen oder in Logs auftauchen.
4) Deploy
Abschnitt betitelt „4) Deploy“Jetzt bringst du alles live:
fly deployDer erste Build des Docker Images dauert etwa 2-3 Minuten. Danach geht es schneller. Prüfe den Status mit:
fly statusfly logsWenn du [gateway] listening on ws://0.0.0.0:3000 siehst, läuft alles.
5) Konfigurationsdatei erstellen
Abschnitt betitelt „5) Konfigurationsdatei erstellen“Verbinde dich per SSH mit der Machine, um die openclaw.json anzulegen:
fly ssh consoleErstelle das Verzeichnis und die Datei:
mkdir -p /datacat > /data/openclaw.json << 'EOF'{ "agents": { "defaults": { "model": { "primary": "anthropic/claude-3-5-sonnet-latest", "fallbacks": ["openai/gpt-4o"] }, "maxConcurrent": 4 }, "list": [ { "id": "main", "default": true } ] }, "auth": { "profiles": { "anthropic:default": { "mode": "token", "provider": "anthropic" }, "openai:default": { "mode": "token", "provider": "openai" } } }, "channels": { "discord": { "enabled": true, "groupPolicy": "allowlist", "guilds": { "DEINE_GUILD_ID": { "channels": { "general": { "allow": true } }, "requireMention": false } } } }, "gateway": { "mode": "local", "bind": "auto" }}EOFStarte die Machine neu, um die Änderungen zu übernehmen:
exitfly machine restart <machine-id>6) Zugriff auf das Gateway
Abschnitt betitelt „6) Zugriff auf das Gateway“Control UI
Abschnitt betitelt „Control UI“Öffne die App im Browser: fly open oder besuche https://dein-app-name.fly.dev/. Nutze dein OPENCLAW_GATEWAY_TOKEN zum Einloggen.
Logs & Konsole
Abschnitt betitelt „Logs & Konsole“fly logs: Live-Ansicht der Server-Logs.fly ssh console: Direkter Zugriff auf das Dateisystem.
Fehlersuche
Abschnitt betitelt „Fehlersuche“App ist nicht erreichbar
Abschnitt betitelt „App ist nicht erreichbar“Wahrscheinlich bindet das Gateway an 127.0.0.1 statt 0.0.0.0. Prüfe, ob --bind lan in deiner fly.toml unter [processes] steht.
Health Checks schlagen fehl
Abschnitt betitelt „Health Checks schlagen fehl“Stelle sicher, dass internal_port in der fly.toml exakt mit dem Port im Startbefehl (z.B. --port 3000) übereinstimmt.
Out of Memory (OOM)
Abschnitt betitelt „Out of Memory (OOM)“Wenn die Machine ständig neu startet oder SIGABRT zeigt, reicht der RAM nicht. Erhöhe ihn mit:
fly machine update <machine-id> --vm-memory 2048 -y.
Gateway Lock Issues
Abschnitt betitelt „Gateway Lock Issues“Falls das Gateway meldet, dass es bereits läuft, lösche die Lock-Datei:
fly ssh console --command "rm -f /data/gateway.*.lock".
Private Deployment (Abgesichert)
Abschnitt betitelt „Private Deployment (Abgesichert)“Standardmäßig ist dein Gateway über das Internet erreichbar. Für maximale Sicherheit kannst du die öffentliche IP entfernen und nur über VPN oder Proxy zugreifen.
- Nutze eine
fly.private.tomlohne[http_service]. - Entferne öffentliche IPs:
fly ips release <ip>. - Zugriff via Proxy:
fly proxy 3000:3000.
Das schützt dich vor Scannern und direkten Angriffen aus dem Netz.
Hast du Fragen zum Setup oder hängst an einem Schritt fest? Der AI Setup Assistant hilft dir direkt weiter.
Was kommt als Nächstes?
OpenClaw Expert
Noch festgefahren?
Wenn diese Seite nicht hilft, frage OpenClaw Expert nach Schritt-fuer-Schritt-Loesungen.