chore(git): liste blanche .gitignore + sortir openclaw.json du suivi

Le depot suivait openclaw.json en clair, qui contient gateway.auth.token,
gateway.remote.token et models.providers.*.apiKey. Ces valeurs sont deja
presentes dans l'historique pousse (2 occurrences du jeton de gateway
actuel) : la rotation du jeton reste a faire cote gateway.

Sans .gitignore, un "git add -A" balayait 505 Mo, dont l'appairage WhatsApp
(32 Mo de cles de session), la base SQLite active, credentials/, secrets/,
devices/ et les medias recus.

Strategie retenue : liste blanche. Tout est ignore par defaut, seules la
documentation et la configuration sont reintegrees explicitement.
openclaw.json est remplace par openclaw.json.example, caviarde.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NuEBkGBjkpZGgqJnX1DCrm
This commit is contained in:
Tallagrand Thierry
2026-09-02 02:57:36 +02:00
parent 5363f99b76
commit 1317d94e8c
2 changed files with 244 additions and 59 deletions

84
.gitignore vendored Normal file
View File

@@ -0,0 +1,84 @@
# .gitignore — dépôt OPENCLAW_ARCHIVE3_17
#
# STRATÉGIE : liste blanche. Tout est ignoré par défaut, on ne réintègre
# explicitement que la configuration et la documentation.
#
# Raison : ce répertoire est le volume de données vivant du gateway. Il contient
# 505 Mo dont l'appairage WhatsApp (32 Mo de clés de session), la base SQLite
# active, les identifiants OAuth, les jetons de device et les médias reçus.
# Un « git add -A » sans garde-fou publierait tout cela.
# --- tout ignorer par défaut ---
/*
# --- réintégrations : racine ---
!/.gitignore
!/README.md
!/openclaw.json.example
# --- réintégrations : documentation de passation ---
!/handoffs/
# --- réintégrations : workspace (doc + config de l'agent) ---
!/workspace/
workspace/*
!workspace/*.md
!workspace/bourse-config.json
!workspace/cron/
workspace/cron/*
!workspace/cron/*.md
# --- exclusions explicites à l'intérieur du workspace ---
# (redondant avec la liste blanche, mais explicite = plus sûr à la relecture)
workspace/_archive-*/
workspace/charts/
workspace/invoices/
workspace/media-inbound/
workspace/.clawhub/
workspace/*.json
!workspace/bourse-config.json
workspace/*.png
workspace/*.svg
workspace/*.html
# --- JAMAIS versionner : secrets et état runtime ---
# openclaw.json contient gateway.auth.token, gateway.remote.token et
# models.providers.*.apiKey en clair. Utiliser openclaw.json.example à la place.
openclaw.json
openclaw.json.*
!openclaw.json.example
credentials/
secrets/
identity/
whatsapp/
devices/
gogcli/
config-journal-fingerprint.key
exec-approvals.json*
*.key
# --- état runtime, volumineux ou reconstructible ---
state/
npm/
media/
cache/
logs/
tasks/
flows/
agents/
plugins/
plugin-state/
plugin-skills/
extensions/
completions/
delivery-queue/
skill-workshop/
memory/
backups/
tools/
*.sqlite
*.sqlite-*
*.tgz
*.bak
*.bak-*
*.migrated

View File

@@ -4,7 +4,7 @@
"bind": "lan",
"auth": {
"mode": "token",
"token": "119bca22-377a-4b69-a484-9b08cc79a782",
"token": "<REDACTED — voir openclaw.json reel sur le NAS>",
"rateLimit": {
"maxAttempts": 10,
"windowMs": 60000,
@@ -13,7 +13,7 @@
},
"remote": {
"url": "ws://127.0.0.1:18789",
"token": "119bca22-377a-4b69-a484-9b08cc79a782"
"token": "<REDACTED — voir openclaw.json reel sur le NAS>"
},
"controlUi": {
"allowedOrigins": [
@@ -76,7 +76,7 @@
"enabled": false
},
"gog": {
"enabled": true
"enabled": false
},
"goplaces": {
"enabled": false
@@ -164,31 +164,53 @@
},
"whatsapp": {
"enabled": true
},
"node-connect": {
"enabled": false
},
"node-inspect-debugger": {
"enabled": false
},
"notion": {
"enabled": false
},
"meme-maker": {
"enabled": false
},
"python-debugpy": {
"enabled": false
},
"skill-creator": {
"enabled": false
},
"spike": {
"enabled": false
},
"healthcheck": {
"enabled": false
}
}
},
"meta": {
"lastTouchedVersion": "2026.6.9",
"lastTouchedAt": "2026-06-23T00:31:04.678Z"
"lastTouchedVersion": "2026.8.1",
"migrations": {
"modelPolicyAllowlist": true
}
},
"wizard": {
"lastRunAt": "2026-05-28T19:12:05.393Z",
"lastRunVersion": "2026.5.27",
"lastRunAt": "2026-09-01T20:41:27.054Z",
"lastRunVersion": "2026.8.1",
"lastRunCommand": "doctor",
"lastRunMode": "local"
},
"agents": {
"defaults": {
"thinkingDefault": "off",
"model": {
"primary": "vllm/qwen3-vl"
"primary": "spark/qwen3-coder"
},
"compaction": {
"reserveTokensFloor": 20000,
"mode": "safeguard",
"reserveTokens": 8192
},
"models": {
"vllm/qwen3-vl": {}
"mode": "safeguard"
},
"sandbox": {
"mode": "off"
@@ -197,24 +219,27 @@
"timeoutSeconds": 600,
"every": "0"
},
"memorySearch": {
"enabled": false
}
"bootstrapMaxChars": 30000,
"bootstrapTotalMaxChars": 60000,
"contextInjection": "continuation-skip"
},
"entries": {
"main": {}
}
},
"models": {
"mode": "merge",
"mode": "replace",
"providers": {
"vllm": {
"spark": {
"baseUrl": "http://10.10.10.8:8000/v1",
"api": "openai-completions",
"apiKey": "vllm-local",
"apiKey": "<REDACTED — voir openclaw.json reel sur le NAS>",
"timeoutSeconds": 300,
"models": [
{
"id": "qwen3-vl",
"name": "Qwen3-VL 30B FP8 Thinking DGX Vision",
"reasoning": true,
"id": "qwen3-coder",
"name": "Qwen3.8-27B Coder+Vision (DGX Spark)",
"reasoning": false,
"input": [
"text",
"image"
@@ -230,23 +255,24 @@
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 65536,
"maxTokens": 16384
"contextWindow": 98304,
"maxTokens": 4096
}
]
}
}
},
"auth": {
"profiles": {
"vllm:default": {
"provider": "vllm",
"mode": "api_key"
}
}
"profiles": {}
},
"messages": {
"ackReactionScope": "group-mentions"
"ackReactionScope": "group-mentions",
"inbound": {
"byChannel": {
"whatsapp": 0
}
},
"ackReaction": "👀"
},
"session": {
"dmScope": "per-channel-peer"
@@ -256,11 +282,98 @@
"whatsapp": {
"enabled": true
},
"vllm": {
"enabled": true
},
"memory-core": {
"config": {}
},
"browser": {
"enabled": true
},
"alibaba": {
"enabled": false
},
"anthropic": {
"enabled": false
},
"clawrouter": {
"enabled": false
},
"copilot-proxy": {
"enabled": false
},
"github-copilot": {
"enabled": false
},
"google": {
"enabled": false
},
"huggingface": {
"enabled": false
},
"litellm": {
"enabled": false
},
"lmstudio": {
"enabled": false
},
"microsoft": {
"enabled": false
},
"microsoft-foundry": {
"enabled": false
},
"nvidia": {
"enabled": false
},
"ollama": {
"enabled": false
},
"openrouter": {
"enabled": false
},
"sglang": {
"enabled": false
},
"together": {
"enabled": false
},
"xai": {
"enabled": false
},
"azure-speech": {
"enabled": false
},
"deepgram": {
"enabled": false
},
"elevenlabs": {
"enabled": false
},
"fal": {
"enabled": false
},
"minimax": {
"enabled": false
},
"runway": {
"enabled": false
},
"senseaudio": {
"enabled": false
},
"talk-voice": {
"enabled": false
},
"tts-local-cli": {
"enabled": false
},
"canvas": {
"enabled": false
},
"cua-computer": {
"enabled": false
},
"geolocation": {
"enabled": false
}
}
},
@@ -270,7 +383,6 @@
"configWrites": true,
"sendReadReceipts": true,
"selfChatMode": true,
"debounceMs": 0,
"mediaMaxMb": 50,
"accounts": {
"custom-1": {
@@ -287,11 +399,6 @@
"groupAllowFrom": [
"+33607148216"
],
"ackReaction": {
"direct": true,
"group": "mentions"
},
"debounceMs": 0,
"authDir": "/home/node/.openclaw/whatsapp/custom-1"
}
},
@@ -301,32 +408,26 @@
}
},
"actions": {
"reactions": true,
"reactions": false,
"sendMessage": true,
"polls": true
"polls": false
}
}
},
"tools": {
"media": {
"image": {
"enabled": true
"enabled": false
}
}
},
"mcp": {
"servers": {
"n8n-mcp": {
"command": "npx",
"args": [
"-y",
"n8n-mcp"
],
"env": {
"N8N_API_URL": "https://n8n.airtria.pro/api/v1",
"N8N_API_KEY": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI4YjllOTU1Mi1jZDc0LTQ4NjMtODJhMy0xNzRiM2IzYmVmYTIiLCJpc3MiOiJuOG4iLCJhdWQiOiJwdWJsaWMtYXBpIiwianRpIjoiMGYzZmU4NDAtNGY5Yi00ZDgwLWIzNzctMDRjZmU4ZmE5OWM5IiwiaWF0IjoxNzc4NjMzMzY0fQ.BPypJ7xR_bzVpptZQvD1ZvV9_-CIjKrj5s7r7lt-qGw"
}
}
}
}
"servers": {}
},
"commands": {
"ownerAllowFrom": [
"whatsapp:0607148216"
]
},
"_comment_example": "Gabarit de configuration. Les secrets sont caviardes : le fichier reel (openclaw.json) n'est PAS versionne, il vit uniquement dans /volume1/docker/openclaw-data sur le NAS."
}