Updated the to reflect the definitive conclusion that Moltbot (requiring Node.js v22+) cannot be installed on Synology NAS systems (due to Docker/kernel incompatibility with modern Node.js images, and Moltbot's hard requirement). - Added a prominent warning about the unresolvable "Catch-22" at the beginning of the guide. - Documented the and that represented the final, most advanced attempt to bypass the issues, including using Node.js v20, named Docker volumes, and aggressive patching attempts. - Updated the troubleshooting section to clearly explain the unresolvable conflict and its implications, offering alternative solutions outside of Synology.
103 lines
4.5 KiB
Markdown
103 lines
4.5 KiB
Markdown
# Moltbot auf Synology NAS installieren (Erweiterte Anleitung)
|
|
|
|
***
|
|
|
|
**WICHTIGER HINWEIS (Stand: Jan 2026): Aktuell NICHT MÖGLICH**
|
|
|
|
**Aufgrund eines unlösbaren technischen Konflikts ist die Installation von Moltbot (Versionen, die Node.js v22+ erfordern) auf den meisten Synology NAS-Systemen derzeit nicht erfolgreich durchführbar.**
|
|
|
|
Diese Anleitung dokumentiert den detaillierten Versuch und die dabei gewonnenen Erkenntnisse. Sie ist für fortgeschrittene Benutzer gedacht, die das Problem verstehen oder für zukünftige Versionen anpassen möchten.
|
|
|
|
**Das Kernproblem (Catch-22):**
|
|
1. **Host-Inkompatibilität:** Der Docker-Dienst auf Synology ist oft nicht mit dem modernen `node:22`-Basis-Image kompatibel, das Moltbot benötigt. Dies führt zu "stillen Abstürzen", bei denen der Container ohne Log-Ausgabe fehlschlägt.
|
|
2. **Anwendungs-Anforderung:** Um das Host-Problem zu umgehen, kann ein `node:20`-Image gebaut werden. Die Moltbot-Anwendung selbst hat jedoch eine harte, nicht patchbare Anforderung an `node:22` zur Laufzeit und verweigert den Start.
|
|
|
|
Da der Host `node:20` benötigt, die Anwendung aber `node:22` verlangt, steckt die Installation in einer Sackgasse.
|
|
|
|
***
|
|
|
|
## Voraussetzungen
|
|
|
|
1. **Container Manager:** Das `Container Manager`-Paket (früher `Docker`) muss installiert sein.
|
|
2. **SSH-Zugang:** Sie benötigen SSH-Zugang zu Ihrer Synology NAS, um die Befehle auszuführen.
|
|
|
|
## Schritt 1: Konfigurationsdateien erstellen
|
|
|
|
Die folgenden Dateien repräsentieren den am weitesten fortgeschrittenen Versuch, das Kompatibilitätsproblem zu lösen.
|
|
|
|
**1. `docker-compose.yml`**
|
|
Verwendet ein "Named Volume", was auf Synology-Systemen zuverlässiger ist.
|
|
|
|
```yaml
|
|
version: '3.8'
|
|
|
|
services:
|
|
moltbot:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.moltbot
|
|
container_name: moltbot
|
|
restart: unless-stopped
|
|
ports:
|
|
- "18789:18789"
|
|
command: gateway --port 18789
|
|
volumes:
|
|
- moltbot_data:/home/node/.clawd
|
|
|
|
volumes:
|
|
moltbot_data: {}
|
|
```
|
|
|
|
**2. `Dockerfile.moltbot`**
|
|
Zwingt den Bau zur Verwendung von `Node.js v20` und versucht, die Versionsprüfung im Quellcode zu entfernen (was sich als unwirksam erwiesen hat).
|
|
|
|
```dockerfile
|
|
# Use Node.js v20 as the base image for better compatibility
|
|
FROM node:20-slim
|
|
|
|
# Install necessary tools as root
|
|
USER root
|
|
RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/*
|
|
|
|
# Switch to the non-privileged node user
|
|
USER node
|
|
WORKDIR /app
|
|
|
|
# Clone the repository
|
|
RUN git clone https://github.com/moltbot/moltbot.git .
|
|
|
|
# HACK: Attempt to patch the Node.js version check (INEFFECTIVE)
|
|
RUN find . -type f -exec sed -i 's/.*requires Node >=.*/\/\/ Version check disabled by Gemini/' {} +
|
|
|
|
# Install dependencies locally to avoid global permission issues
|
|
RUN npm install pnpm
|
|
RUN npx pnpm install
|
|
RUN npx pnpm build
|
|
|
|
# Expose port and define entrypoint
|
|
EXPOSE 18789
|
|
ENTRYPOINT ["/app/packages/clawdbot/node_modules/.bin/clawdbot"]
|
|
CMD ["--help"]
|
|
```
|
|
|
|
## Schritt 2: Build & Onboarding (führt zum Fehler)
|
|
|
|
1. **Build:** `docker-compose build moltbot`
|
|
2. **Onboarding:** `docker-compose run --rm --user node moltbot onboard`
|
|
|
|
Dieser `onboard`-Befehl wird mit der Fehlermeldung `moltbot requires Node >=22.0.0` fehlschlagen und beweist damit das unlösbare Problem.
|
|
|
|
## Fehlerbehebung & Finale Diagnose
|
|
|
|
- **Problem: Container startet nicht, keine Logs (stiller Absturz).**
|
|
- **Ursache:** Inkompatibilität zwischen dem Standard-`node:22+`-Image und der Docker-Umgebung der Synology.
|
|
- **Lösung:** Downgrade auf `node:20-slim` im Dockerfile. Dies löst das Startproblem, führt aber zum nächsten Fehler.
|
|
|
|
- **FINALER FEHLER: `moltbot requires Node >=22.0.0` zur Laufzeit.**
|
|
- **Ursache:** Die Moltbot-Anwendung hat eine harte Anforderung an die Node.js-Version, die auch nach dem Kompilieren des Codes bestehen bleibt und sich durch einfache Skripte während des Builds nicht entfernen lässt.
|
|
- **Status:** **UNLÖSBAR.** Solange die Synology-Umgebung keine neueren Node.js-Images unterstützt ODER die Moltbot-Entwickler die Mindestanforderung nicht senken, kann die Anwendung nicht installiert werden.
|
|
|
|
- **Erkenntnis zu Docker-Volumes auf Synology:**
|
|
- **Problem:** Host-Verzeichnisse (z.B. `./moltbot_data`) verursachen stille Schreibfehler aufgrund von Berechtigungskonflikten.
|
|
- **Lösung:** Immer von Docker verwaltete "Named Volumes" verwenden (`moltbot_data:`), da diese Methode robust funktioniert. Der Befehl `docker-compose run` muss zudem mit `--user node` ausgeführt werden, um mit den korrekten Berechtigungen in das Volume zu schreiben.
|