LAUNCH-SUB
LAUNCH-CLAWS
LAUNCH-SUB
LAUNCH-CLAWS
OpenClaw-Konfigurationsreferenz
Was openclaw.json macht
Die openclaw.json-Datei ist die Hauptkonfigurationsdatei deiner OpenClaw-Instanz. Sie steuert, wie das Gateway Nutzer authentifiziert, welchen LLM-Anbieter du nutzt und welche Messenger-Kanäle aktiv sind.
ClawHosters generiert diese Datei automatisch basierend auf deinen Dashboard-Einstellungen. Wenn du deinen LLM-Anbieter änderst, einen Telegram-Bot hinzufügst oder andere Einstellungen aktualisierst, erstellt ClawHosters die Konfiguration neu und deployt sie auf deine Instanz.
Du musst diese Datei nicht manuell bearbeiten, es sei denn, du verbindest dich per SSH für erweiterte Konfiguration.
Dateispeicherort
Auf deiner Instanz ist die Konfigurationsdatei gespeichert unter:
/root/.openclaw/openclaw.json
Das ist ein Bind-Mount von /opt/openclaw/dotopenclaw/openclaw.json auf dem Host-System. Änderungen an einem der beiden Pfade betreffen dieselbe Datei.
Konfigurationsstruktur
Die Datei ist ein JSON-Objekt mit vier übergeordneten Abschnitten. Nicht alle Abschnitte sind auf jeder Instanz vorhanden — sie werden nur eingefügt, wenn sie relevant sind.
{
"gateway": { ... },
"env": { ... },
"agents": { ... },
"channels": { ... }
}
gateway (Immer vorhanden)
Steuert, wie das OpenClaw-Gateway läuft und Anfragen authentifiziert.
{
"gateway": {
"mode": "local",
"trustedProxies": [
"172.16.0.0/12",
"10.0.0.0/8",
"127.0.0.1"
],
"auth": {
"mode": "token",
"token": "sha256-gehashter-token"
},
"controlUi": {
"allowInsecureAuth": true
}
}
}
| Feld | Typ | Beschreibung |
|---|---|---|
mode |
string | Immer "local" für ClawHosters-Instanzen |
trustedProxies |
array | IP-Bereiche, die Anfragen weiterleiten dürfen (für nginx) |
auth.mode |
string | Authentifizierungsmethode — immer "token" |
auth.token |
string | SHA256-gehashter Gateway-Token für Web-UI-Zugriff |
controlUi.allowInsecureAuth |
boolean | Erlaubt Token-basierte Auth ohne Geräte-Pairing |
Der Gateway-Abschnitt wird immer generiert, auch auf Instanzen ohne konfiguriertes LLM oder Messenger.
env (Bedingt)
Enthält API-Schlüssel für den gewählten LLM-Anbieter. Dieser Abschnitt ist nur vorhanden, wenn du ein LLM konfiguriert hast.
{
"env": {
"ANTHROPIC_API_KEY": "sk-ant-..."
}
}
Nur der relevante Schlüssel für deinen Anbieter wird eingefügt:
| Anbieter | Umgebungsvariable |
|---|---|
| Anthropic | ANTHROPIC_API_KEY |
| OpenAI | OPENAI_API_KEY |
| OpenRouter | OPENROUTER_API_KEY |
GEMINI_API_KEY |
|
| DeepSeek | DEEPSEEK_API_KEY |
Wenn kein LLM konfiguriert ist (Instanz im "Kein LLM"-Modus), wird dieser Abschnitt komplett weggelassen.
agents (Bedingt)
Gibt das Standard-LLM-Modell für die Instanz an. Nur vorhanden, wenn ein LLM konfiguriert ist.
{
"agents": {
"defaults": {
"model": {
"primary": "anthropic/claude-3-haiku"
}
}
}
}
| Feld | Typ | Beschreibung |
|---|---|---|
agents.defaults.model.primary |
string | Das Standardmodell im provider/model-Format |
Das Format des Model-Strings variiert je nach Anbieter:
| Anbieter | Beispiel |
|---|---|
| Anthropic | claude-3-haiku (kein Provider-Präfix) |
| OpenAI | openai/gpt-4o |
| OpenRouter | openrouter/anthropic/claude-3-opus |
google/gemini-pro |
|
| DeepSeek | deepseek/deepseek-chat |
Anthropic-Modelle sind ein Sonderfall — sie haben keinen Provider-Präfix im Model-String.
channels (Bedingt)
Konfiguriert Messenger-Integrationen. Jeder Kanal wird nur einbezogen, wenn er in deinem Dashboard eingerichtet wurde.
Telegram
{
"channels": {
"telegram": {
"enabled": true,
"botToken": "123456789:ABCdefGHIjklMNOpqrsTUVwxyz",
"dmPolicy": "owner_only",
"allowFrom": ["*"]
}
}
}
| Feld | Typ | Beschreibung |
|---|---|---|
enabled |
boolean | Ob Telegram aktiv ist |
botToken |
string | Dein Telegram-Bot-Token vom BotFather |
dmPolicy |
string | "owner_only" oder "open" — wer den Bot anschreiben darf |
allowFrom |
array | Erlaubte Nutzer-IDs bei dmPolicy "open" |
Discord
{
"channels": {
"discord": {
"enabled": true,
"token": "bot-token-hier",
"dm": {
"enabled": true,
"policy": "pairing",
"allowFrom": ["*"]
}
}
}
}
| Feld | Typ | Beschreibung |
|---|---|---|
enabled |
boolean | Ob Discord aktiv ist |
token |
string | Discord-Bot-Token |
dm.enabled |
boolean | Ob Direktnachrichten erlaubt sind |
dm.policy |
string | "pairing" erfordert zuerst Geräte-Pairing |
dm.allowFrom |
array | Erlaubte Nutzer-IDs für DMs |
Slack
{
"channels": {
"slack": {
"enabled": true,
"botToken": "xoxb-...",
"appToken": "xapp-..."
}
}
}
| Feld | Typ | Beschreibung |
|---|---|---|
enabled |
boolean | Ob Slack aktiv ist |
botToken |
string | Slack-Bot-Token (beginnt mit xoxb-) |
appToken |
string | Slack-App-Level-Token (beginnt mit xapp-) |
{
"channels": {
"whatsapp": {
"enabled": true,
"dmPolicy": "owner_only"
}
}
}
| Feld | Typ | Beschreibung |
|---|---|---|
enabled |
boolean | Ob WhatsApp aktiv ist |
dmPolicy |
string | "owner_only" oder "open" |
allowFrom |
array | Erlaubte Nutzer-IDs bei Policy "open" |
Minimal- vs Voll-Beispiel
Eine frisch erstellte Instanz ohne LLM oder Messenger hat nur den Gateway-Abschnitt:
{
"gateway": {
"mode": "local",
"trustedProxies": ["172.16.0.0/12", "10.0.0.0/8", "127.0.0.1"],
"auth": {
"mode": "token",
"token": "a1b2c3d4..."
},
"controlUi": {
"allowInsecureAuth": true
}
}
}
Eine voll konfigurierte Instanz mit Anthropic-LLM und Telegram:
{
"gateway": {
"mode": "local",
"trustedProxies": ["172.16.0.0/12", "10.0.0.0/8", "127.0.0.1"],
"auth": {
"mode": "token",
"token": "a1b2c3d4..."
},
"controlUi": {
"allowInsecureAuth": true
}
},
"env": {
"ANTHROPIC_API_KEY": "sk-ant-api03-..."
},
"agents": {
"defaults": {
"model": {
"primary": "claude-3-haiku"
}
}
},
"channels": {
"telegram": {
"enabled": true,
"botToken": "123456789:ABCdef...",
"dmPolicy": "owner_only",
"allowFrom": ["*"]
}
}
}
Wie Konfigurationsänderungen angewendet werden
Wenn du Einstellungen in deinem Dashboard aktualisierst:
- ClawHosters generiert
openclaw.jsonmit deinen neuen Einstellungen neu - Die Datei wird per SCP auf deine Instanz hochgeladen
- Der
doctor --fix-Befehl läuft, um Plugin-Änderungen anzuwenden - Deine Instanz übernimmt die neue Konfiguration
Dieser Vorgang dauert einige Sekunden. Während des Updates läuft deine Instanz weiter — es gibt keine Ausfallzeit für Konfigurationsänderungen.
Manuelle Bearbeitung per SSH
Wenn du dich per SSH mit deiner Instanz verbindest, kannst du die Konfiguration unter /root/.openclaw/openclaw.json einsehen. Du kannst sie manuell bearbeiten, aber beachte:
- Änderungen über das Dashboard überschreiben deine manuellen Bearbeitungen
- Ungültiges JSON verhindert den Start des Gateways
- Ein fehlender
gateway-Abschnitt bricht die Authentifizierung
Wenn du die Konfiguration kaputt machst, nutze den "Redeployment"-Button in deinem Dashboard, um sie aus deinen gespeicherten Einstellungen neu zu generieren.
Verwandte Dokumentation
- SSH-Zugang — Verbindung zu deiner Instanz
- Telegram verbinden — Telegram einrichten
- LLM-Add-on — LLM-Anbieter konfigurieren
- Instanz neu aufsetzen — Factory-Reset bei kaputter Konfiguration
Verwandte Dokumentation
Was ist OpenClaw?
Ein Open-Source KI-Assistent zum Selbsthosten OpenClaw ist ein Open-Source-Framework, mit dem du...
Umgebungsvariablen-Referenz
Überblick Umgebungsvariablen steuern, wie deine OpenClaw-Instanz sich mit Diensten verbindet und...
Instanz-Einstellungen und Konfiguration
Übersicht Nach dem Erstellen einer Instanz kannst du ihr KI-Modell, Messaging-Kanäle, Web-Zugang...