commit 2ab84ce4122537d9dbe20b9374c73f8156345d55 Author: Gemini Date: Sun Sep 6 21:58:46 2026 +0100 feat(perso): initialisation propre de la stack autonome OpenClaw Perso (Ticket perso-2026-09-022) diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1c2fea0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,14 @@ +# Secrets and environment +.env* + +# Runtime data & configuration (contains secrets: openclaw.json, sqlite DBs, tokens) +data/ + +# Logs & temporary files +*.log +*.tmp + +# Synology & OS metadata +@eaDir/ +.DS_Store +Thumbs.db diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..11931f9 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,27 @@ +FROM node:26-slim + +# Install system utilities +RUN apt-get update && apt-get install -y --no-install-recommends \ + curl \ + jq \ + ca-certificates \ + && rm -rf /var/lib/apt/lists/* + +# Install OpenClaw globally +RUN npm install -g openclaw@2026.9.2 + +# Setup user matching Synology NAS convention (UID 1026, GID 100) +RUN useradd -u 1026 -g 100 -m -s /bin/bash openclaw || true + +RUN mkdir -p /home/openclaw/.openclaw /home/openclaw/.openclaw/workspace \ + && chown -R 1026:100 /home/openclaw + +ENV HOME=/home/openclaw +ENV OPENCLAW_GATEWAY_BIND=lan +WORKDIR /home/openclaw + +USER 1026:100 + +EXPOSE 18789 + +CMD ["openclaw", "gateway", "run", "--port", "18789", "--bind", "lan"] diff --git a/README.md b/README.md new file mode 100644 index 0000000..d4914c9 --- /dev/null +++ b/README.md @@ -0,0 +1,15 @@ +# OpenClaw Perso — Agent Autonome Personnel + +Stack Docker de test pour l'agent autonome OpenClaw v2 (`openclaw@2026.9.2`) sur Synology NAS DS920+, déployé selon le ticket Baserow `perso-2026-09-022`. + +## Architecture et Composants + +- **Conteneur** : `openclaw-perso` +- **Image** : `openclaw-perso:latest` (base `node:26-slim`) +- **Port** : `8910` (mappé sur `18789` interne) +- **Réseau** : `n8n` +- **UID / GID** : `1026:100` (`Best0f:users`) +- **Modèles LLM** : Inférence via passerelle `bifrost-proxy` avec clé virtuelle dédiée `vk-openclaw-perso` (`google/gemini-2.5-flash` et `opencode/mimo-v2.5`). +- **MCP Context-Hub** : Connecteur Streamable HTTP vers `http://context-hub:8000/mcp/` (scopes: `infra`, `llm`, `nyora`, `perso`). +- **MCP NyoraNotes** : Connecteur Streamable HTTP vers `http://nyora-notes-mcp:8000/mcp/` avec coffre mémoire isolé `openclaw-perso/`. +- **Personas** : `data/workspace/SOUL.md` et `data/workspace/USER.md` (reprise de l'identité Hermes Perso avec 100% des accents français préservés). diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..c98c37c --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,30 @@ +version: '3.8' + +services: + openclaw-perso: + build: . + image: openclaw-perso:latest + container_name: openclaw-perso + restart: unless-stopped + ports: + - "127.0.0.1:8910:18789" + env_file: + - ./.env + volumes: + - ./data:/home/openclaw/.openclaw + environment: + - NODE_ENV=production + - OPENCLAW_GATEWAY_BIND=loopback + - OPENCLAW_CONFIG_PATH=/home/openclaw/.openclaw/openclaw.json + networks: + - n8n + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:18789/"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 20s + +networks: + n8n: + external: true