LXC 110 (moltbot) a picat dupa un OOM local containerului urmat de reboot: tailscaled a ramas delogat, iar containerul mostenea resolv.conf-ul Tailscale de la host-ul pve1 (doar MagicDNS 100.100.100.100) -> rezolutie DNS zero desi L3 era functional -> echo-core in crash-loop pe telegram.error.TimedOut. Fixuri aplicate: - pct set 110 --nameserver '10.0.20.1 1.1.1.1' (elimina dependenta de Tailscale) - zram-tools pe pve1 (8G zstd, prio 100) - `swap: 4096` din config era fictiv, host-ul nu avea niciun swap; root pe ZFS deci zram, nu swapfile - MemoryHigh/MemoryMax pe pocket-tts + supertonic-tts - toate serviciile user rulau cu limite `infinity`, de unde OOM-uri recurente (Apr 25, May 28 x4) cu victime aleatorii alese dupa oom_score_adj Documentatie: - nou post-mortem in cluster/incidents/, adaugat in indexuri - README lxc110: host corectat pveelite -> pve1 (+ RAM/CPU/storage reale), comenzile pct redirectionate spre nodul corect - README lxc171: tabel cu starea swap pe cele 3 noduri (pveelite are zvol, nu zram - nu necesita acelasi fix) Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
LXC 110 - MoltBot (AI Chatbot)
Director: proxmox/lxc110-moltbot/
VMID: 110
IP: 10.0.20.173 (intern) | 100.120.119.70 (Tailscale)
Host Proxmox: pve1 (10.0.20.200)
Rol: Bot AI pentru Telegram și WhatsApp cu Claude Opus 4.5
Informații Container
| Parametru | Valoare |
|---|---|
| VMID | 110 |
| Hostname | moltbot |
| IP intern | 10.0.20.173 |
| IP Tailscale | 100.120.119.70 |
| Host Proxmox | pve1 (10.0.20.200) |
| User serviciu | moltbot |
| Parola user | Moltbot2026! |
| Storage | local-zfs (50GB) |
| RAM | 8GB (+ 4GB swap) |
| CPU | 6 cores |
| DNS | 10.0.20.1 1.1.1.1 (explicit, vezi mai jos) |
| OS | Ubuntu 24.04 LTS |
Componente Instalate
- Ubuntu 24.04 LTS
- OpenClaw v2026.2.9 (upgraded from MoltBot/clawdbot)
- Node.js v22.22.0 (user-space)
- Bun v1.3.7
- Tailscale (pentru SSH, fără funnel)
- UFW Firewall
- Fail2ban
Canale Configurate
| Canal | Status | Detalii |
|---|---|---|
| Telegram | ✅ ON | Bot token configurat |
| ✅ ON | Linked la +40723197939 |
Model AI
- Provider: Anthropic
- Model: claude-opus-4-5
- Context: 200k tokens
Securitate
| Măsură | Status |
|---|---|
| User dedicat (non-root) | moltbot |
| SSH key-only auth | Activat |
| UFW Firewall | Activat |
| Fail2ban SSH | Activat |
| Tailscale SSH | Activat |
| Sudo limitat | Doar systemctl |
| Linger enabled | Da (serviciu persistent) |
Reguli Firewall UFW
22/tcp ALLOW IN Anywhere
18789 ALLOW IN 10.0.20.0/24 (MoltBot Dashboard)
Anywhere ALLOW IN 10.0.20.0/24 (rețea locală)
Anywhere ALLOW IN 100.64.0.0/10 (Tailscale)
Configurare Sudo
User moltbot are sudo passwordless doar pentru:
systemctl status *systemctl start *systemctl stop *systemctl restart *
Conectare
SSH (rețea internă)
ssh moltbot@10.0.20.173
SSH (Tailscale - de oriunde)
ssh moltbot@100.120.119.70
Acces root (pentru administrare)
ssh root@10.0.20.173
MoltBot - Comenzi
Terminal UI (TUI)
# Conectare și TUI într-o singură comandă
ssh -t moltbot@10.0.20.173 "clawdbot tui"
# Sau conectare separată
ssh moltbot@10.0.20.173
clawdbot tui
Web Dashboard (via SSH Tunnel)
# Pe calculatorul local, deschide tunnel
ssh -L 18789:127.0.0.1:18789 -N moltbot@10.0.20.173 &
# Apoi accesează în browser
# http://localhost:18789
Comenzi utile
# Status complet
clawdbot status
# Status detaliat
clawdbot status --deep
# Verificare versiune
clawdbot --version
# Restart gateway
clawdbot gateway restart
# Vezi loguri live
clawdbot logs --follow
# Verificare canale
clawdbot status --deep
# Gestionare dispozitive (pairing)
clawdbot devices list
clawdbot devices approve <request-id>
Configurare Gateway
| Parametru | Valoare |
|---|---|
| Port | 18789 |
| Bind | loopback (doar local) |
| Auth | token + password |
| Tailscale mode | off |
Fișiere configurare
| Fișier | Descriere |
|---|---|
~/.clawdbot/clawdbot.json |
Configurare principală |
~/.clawdbot/logs/gateway.log |
Loguri gateway |
~/.clawdbot/agents/main/sessions/ |
Sesiuni agent |
~/.clawdbot/credentials/ |
Credențiale (chmod 700) |
Structura Directoare
/home/moltbot/
├── .ssh/
│ └── authorized_keys # Chei SSH pentru acces
├── .bun/ # Bun runtime
├── .local/
│ └── share/moltbot/
│ └── node/ # Node.js user-space
├── .clawdbot/
│ ├── clawdbot.json # Config MoltBot
│ ├── credentials/ # Credențiale (chmod 700)
│ ├── agents/
│ │ └── main/
│ │ └── sessions/ # Sesiuni chat
│ └── logs/
│ └── gateway.log # Loguri
├── clawd/ # Workspace pentru agent
└── .bashrc # PATH pentru node/bun
Servicii Systemd
Gateway Service
# Status
systemctl --user status clawdbot-gateway
# Restart
systemctl --user restart clawdbot-gateway
# Logs
journalctl --user -u clawdbot-gateway -f
Administrare via Proxmox
De pe pve1 (sau alt nod cluster)
# Status container
ssh root@10.0.20.200 "pct status 110"
# Exec comandă
ssh root@10.0.20.200 "pct exec 110 -- <comandă>"
# Stop/Start
ssh root@10.0.20.200 "pct stop 110"
ssh root@10.0.20.200 "pct start 110"
# Console
ssh root@10.0.20.200 "pct enter 110"
DNS & Swap (incident 2026-07-31)
DNS — nu depinde de Tailscale
Containerul nu avea nameserver în pct config, deci moștenea /etc/resolv.conf de
la host-ul pve1 — unde fișierul e scris de Tailscale și conținea doar MagicDNS
(100.100.100.100). Când tailscaled din container s-a delogat, DNS-ul a murit complet
(deși L3 era OK: ping 8.8.8.8 funcționa) → echo-core în crash-loop pe
telegram.error.TimedOut.
Fix aplicat — nameserver explicit:
ssh root@10.0.20.200 "pct set 110 --nameserver '10.0.20.1 1.1.1.1'"
Regula de diagnostic: la „nu mai ajunge la internet", verifică întâi
getent hosts api.telegram.orgșicat /etc/resolv.conf, nu ping-ul. Ping-ul poate merge perfect cu DNS-ul complet mort.
Swap — necesită zram pe host
swap: 4096 din pct config e doar o limită cgroup (memory.swap.max), nu un backing
store. Cât timp pve1 nu avea swap deloc, în container free -h arăta Swap: 0B.
Rezolvat prin zram pe pve1 (root-ul e pe ZFS → swapfile exclus):
# pe pve1 (host)
apt install -y zram-tools
cat > /etc/default/zramswap <<'EOF'
ALGO=zstd
SIZE=8192
PRIORITY=100
EOF
systemctl restart zramswap.service
swapon --show # /dev/zram0 8G prio 100
Verificare în container: free -h → Swap: 4.0Gi.
Limite de memorie pe TTS
Serviciile user systemd rulau toate cu MemoryMax=infinity / MemoryHigh=infinity, deci
oricare putea consuma singur cei 8 GB → OOM-uri recurente (Apr 25, May 28 ×4, Jul 31), cu
victime aparent aleatorii (dbus-daemon, sd-pam) alese după oom_score_adj.
Aplicat pe stiva TTS — MemoryHigh face throttle + reclaim în loc de kill:
| Serviciu | RSS repaus | MemoryHigh | MemoryMax |
|---|---|---|---|
pocket-tts |
~945 MB | 1536M | 2G |
supertonic-tts |
~500 MB | 1024M | 1536M |
Drop-in-uri: ~/.config/systemd/user/<serviciu>.service.d/limits.conf
su - moltbot
export XDG_RUNTIME_DIR=/run/user/1000
systemctl --user show pocket-tts -p MemoryHigh,MemoryMax,MemoryCurrent
Post-mortem complet: ../cluster/incidents/2026-07-31-lxc110-dns-tailscale-oom.md
Troubleshooting
OpenClaw gateway se restartează continuu (OOM kill)
# Verifică dacă este omorât de OOM killer
journalctl --user -u openclaw-gateway | grep -i oom
# Verifică consumul de memorie
free -h
systemctl --user status openclaw-gateway
# Verifică dacă OOM-ul e local containerului sau al host-ului
# ssh root@10.0.20.200 "cat /sys/fs/cgroup/lxc/110/memory.events" # oom_kill > 0 => local
# ssh root@10.0.20.200 "free -h; swapon --show" # zram0 8G activ?
# Soluție: Crește RAM-ul containerului pe Proxmox (actual: 8192)
# ssh root@10.0.20.200
# pct stop 110
# pct set 110 --memory 12288
# pct start 110
# Curăță sesiunile vechi pentru a reduce consumul
openclaw sessions clean --older-than 7d
MoltBot gateway nu pornește
# Verifică logs
clawdbot logs --follow
# Verifică status
clawdbot status
# Restart
clawdbot gateway restart
# Rulare manuală pentru debug
/usr/bin/node /usr/lib/node_modules/clawdbot/dist/entry.js gateway --port 18789
Gateway unreachable
# Verifică dacă portul e ocupat
ss -tlnp | grep 18789
# Verifică serviciul systemd
systemctl --user status clawdbot-gateway
# Restart complet
systemctl --user restart clawdbot-gateway
Eroare "gateway not connected" în TUI
# Gateway-ul probabil s-a oprit, restartează-l
clawdbot gateway restart
Telegram/WhatsApp nu răspunde
# Verifică starea canalelor
clawdbot status --deep
# Pentru Telegram, verifică token-ul
grep botToken ~/.clawdbot/clawdbot.json
# Pentru WhatsApp, verifică link-ul
clawdbot status | grep WhatsApp
Probleme de permisiuni
# Setează permisiunile corecte
chmod 700 ~/.clawdbot
chmod 700 ~/.clawdbot/credentials
chmod 600 ~/.clawdbot/clawdbot.json
Tailscale nu funcționează
sudo systemctl status tailscaled
sudo tailscale status
tailscale ip
Backup
Backup configurare MoltBot
# De pe mașina locală
scp -r moltbot@10.0.20.173:~/.clawdbot ./backup-moltbot-$(date +%Y%m%d)/
Backup complet LXC (via Proxmox)
ssh root@10.0.20.200 "vzdump 110 --storage local --compress zstd"
Provider AI - Anthropic
MoltBot folosește Anthropic Claude prin API key configurat în:
- Config:
~/.clawdbot/clawdbot.json→auth.profiles.anthropic:default - Credențiale:
~/.clawdbot/credentials/
Monitorizare costuri
- Dashboard Anthropic: https://console.anthropic.com/settings/usage
- Sesiune curentă: ~132k/200k tokens (66%)
Reconfigurare (dacă e necesar)
Rulare wizard onboarding
clawdbot onboard
Resetare completă
# Oprește gateway
clawdbot gateway stop
# Backup config vechi
mv ~/.clawdbot ~/.clawdbot.backup
# Rulează onboarding fresh
clawdbot onboard
Legături Utile
- Proxmox Index:
../README.md - Documentație MoltBot: https://docs.molt.bot
- MoltBot oficial: https://molt.bot
- Ghid deployment: https://merox.dev/blog/moltbot-proxmox-deployment/
Data setup: 2026-01-29 Ultima actualizare: 2026-07-31 (host pve1, DNS explicit, zram — incident DNS/OOM) Autor: Claude Code