Files
openclaw/docs/host-service-status-2026-02-23.md
Clawd Bot ca9b510922 chore: align with upstream openclaw/openclaw and overlay local additions
- Reset master to upstream/main (16,697 commits)
- Overlay 2,271 local-only files (skills, tools, workspace, configs, apps)
- Restore IDENTITY.md and USER.md templates
- Build verified, gateway running, Discord working

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 07:40:46 +01:00

11 KiB

Host Service Documentation — 2026-02-23

Snapshot: 2026-02-23T07:44Z Host: ubu-server-laptop (Tailscale: 100.101.151.46) Uptime: 14 days (since Feb 9) Kernel: Linux 6.17.0-14-generic Disk: 144G / 468G used (33%) on /dev/nvme0n1p2 Memory: 6.3G / 15G used (9.1G available) — Swap: 594M / 4G Load: 1.26, 0.61, 0.52

Runtimes

Runtime Version
Node.js v22.22.0
pnpm 10.23.0
Bun 1.3.9
Python 3.12.3
nginx 1.24.0
MariaDB 10.11.14
PostgreSQL 16.11

1. OpenClaw Services

1.1 openclaw.service — Main Gateway

Field Value
Status active (running) since 08:40 today
Enabled yes
Port 18789 (LAN bind)
User alex
Working dir /home/alex
ExecStart /usr/bin/openclaw gateway --port 18789 --bind lan
Restart always
Memory ~1.7 GB
Version 2026.2.21-2
Channels Discord (@James-Assistant) — enabled, configured, running

Primary gateway instance. Binds to LAN so it's reachable from Tailscale peers. Runs as user alex with the globally installed openclaw binary.

Manage:

sudo systemctl restart openclaw
journalctl -u openclaw -f

1.2 openclaw-gateway.service — Secondary Gateway (openclaw2)

Field Value
Status active (running) since 21:16 yesterday
Enabled yes
User openclaw2
Working dir /home/openclaw2/openclaw2
ExecStart /home/openclaw2/openclaw2/scripts/gateway-entrypoint.sh
Restart on-failure (5s)
Memory ~557 MB
LimitNOFILE 65536

Secondary gateway running from the openclaw2 user's repo checkout via a custom entrypoint script.

Manage:

sudo systemctl restart openclaw-gateway
journalctl -u openclaw-gateway -f

1.3 openclaw2-gateway.service — Mike's Gateway (disabled/failed)

Field Value
Status failed
Enabled yes (but failing)
User alex
Config OPENCLAW_STATE_DIR=/home/alex/openclaw2/.openclaw
ExecStart /usr/bin/openclaw gateway run
Restart on-failure (5s)

Configured for Mike's separate OpenClaw state dir. Currently failing — likely port conflict with openclaw.service (both target 18789).

1.4 openclaw-backup.service — Backup Gateway

Field Value
Status inactive
Enabled yes
Port 18790 (force)
User openclaw2
ExecStart /usr/bin/openclaw gateway run --port 18790 --force
Restart on-failure (5s)

Standby backup gateway on port 18790. Not currently running.

1.5 openclaw-dashboard.service — Usage Dashboard

Field Value
Status active (running) since Feb 20 (3 days)
Enabled yes
Port 8888
User alex
Working dir /opt/openclaw-dashboard
ExecStart /usr/bin/node /opt/openclaw-dashboard/server.js
Restart on-failure (5s)
Memory ~29 MB
Disk 312K
Security NoNewPrivileges, PrivateTmp

Web dashboard for monitoring OpenClaw usage metrics. Plain Node.js server, production mode.

Manage:

sudo systemctl restart openclaw-dashboard
journalctl -u openclaw-dashboard -f

2. Voice Surface

2.1 voice-surface.service

Field Value
Status active (running) since 08:11 today
Enabled yes
Port 3030 (0.0.0.0, TLS)
User alex
Working dir tools/voice-surface (in clawd repo)
ExecStartPre pnpm install --frozen-lockfile
ExecStart pnpm start
Restart on-failure (10s)
Memory ~136 MB
TLS cert/key from ~/.openclaw/credentials/voice-surface-tls/

Browser-based voice interface for OpenClaw. Runs with TLS enabled. Installs deps on each start to stay current.

Manage:

sudo systemctl restart voice-surface
journalctl -u voice-surface -f

3. Kanban Board

3.1 kanban-board.service

Field Value
Status active (running) since 16:47 yesterday
Enabled yes
Port 5003
User alex
Working dir /home/alex/kanban-board
ExecStart python3 /home/alex/kanban-board/kanban_mariadb.py
Restart always (5s)
Memory ~26 MB
Database MariaDB (see section 7.1)

Python web app serving a task/kanban board backed by MariaDB.

Manage:

sudo systemctl restart kanban-board
journalctl -u kanban-board -f

4. Cold Case — Mordmysterium

4.1 coldcase.service

Field Value
Status active (running) since 23:50 yesterday
Enabled yes
Port 3099 (backend API)
User alex
Working dir /opt/coldcase/backend
ExecStart node with tsx loader → src/index.ts
Restart always (3s)
Memory ~57 MB
Disk 76 MB
Depends on mariadb.service
Database MariaDB coldcase
AI provider NVIDIA (configurable: OpenAI, Gemini)

Murder mystery web game. Backend is TypeScript (tsx), frontend is static files served by nginx.

4.2 Nginx config (/etc/nginx/sites-enabled/coldcase)

  • :8080 — frontend + API reverse proxy
  • /api/* → proxied to 127.0.0.1:3099 (SSE streaming enabled, 300s timeout)
  • / → static files from /opt/coldcase/frontend
  • Gzip enabled

Manage:

sudo systemctl restart coldcase
journalctl -u coldcase -f
# Frontend: edit /opt/coldcase/frontend/*
# Nginx: sudo nginx -t && sudo systemctl reload nginx

5. Kamoer Plant Watering System

5.1 kamoer-daemon.service — Bluetooth Daemon

Field Value
Status active (running) since 16:48 yesterday
Enabled yes
Port 18788 (127.0.0.1)
User alex
Working dir /home/alex/kamoer-web
ExecStart python3 pump_daemon.py
Restart always (10s)
Memory ~13 MB
Depends on bluetooth.target

Low-level Bluetooth daemon that communicates with the Kamoer dosing pump hardware.

5.2 kamoer-pump.service — Web Control Interface

Field Value
Status active (running) since 16:48 yesterday
Enabled yes
Ports 5000 (kamoer_improved.py) + 5001 (start_kamoer.sh)
User alex
Working dir /home/alex/kamoer-web
ExecStart start_kamoer.sh
Restart always (10s)
Memory ~27 MB
Logs /home/alex/kamoer-web/kamoer.log
Security NoNewPrivileges, PrivateTmp

Web UI for scheduling and controlling plant watering pumps.

Manage:

sudo systemctl restart kamoer-daemon kamoer-pump
journalctl -u kamoer-pump -f
# Or: tail -f /home/alex/kamoer-web/kamoer.log

6. Nginx

6.1 nginx.service

Field Value
Status active (running)
Enabled yes
Version 1.24.0
Memory ~13 MB
Restart no (manual)

Sites enabled:

  • coldcase:8080 reverse proxy + static frontend

Ports:

  • 8080 → Cold Case
  • 18790 → OpenClaw backup proxy (upstream)

Manage:

sudo nginx -t && sudo systemctl reload nginx
ls /etc/nginx/sites-enabled/

7. Databases

7.1 MariaDB (mariadb.service)

Field Value
Status active
Version 10.11.14
Port 3306 (127.0.0.1 only)
Memory ~43 MB
Restart on-abnormal

Databases:

Database Used by
coldcase Cold Case game
kamoer_plants Kamoer watering system
test Testing

7.2 PostgreSQL (postgresql@16-main.service)

Field Value
Status active
Version 16.11
Port 5432 (127.0.0.1 only)
Memory ~19 MB

Databases:

Database Notes
llm_council LLM council/evaluation data
postgres Default

7.3 Redis (redis-server.service)

Field Value
Status active
Port 6379 (localhost only)
Memory ~3 MB
Restart always
Auth Required (password protected)

8. AI / LLM

8.1 Ollama (ollama.service)

Field Value
Status active
Port 11434 (127.0.0.1 only)
Memory ~522 MB
Restart on-failure

Loaded models:

Model Size
qwen2.5:0.5b 397 MB

9. Docker

9.1 docker.service

Field Value
Status active
Memory ~92 MB
Restart always

Running containers:

Container Image Status
portainer_agent portainer/agent:2.20.3 Up 3 days

Stopped containers (2+ weeks):

  • ai-agent_tools-1, ai-open_webui-1, ai-code_server-1, ai-frontend-1, ai-backend-1, ai-ollama-1 — AI stack (all stopped)
  • james-redis — Created but never started
  • Old portainer agent replicas (exited)

10. Networking & Security

10.1 Tailscale (tailscaled.service)

Field Value
Status active
Memory ~82 MB
This host ubu-server-laptop (100.101.151.46)

Peers:

Name IP OS Status
ubu-server-laptop 100.101.151.46 linux online (self)
pixel-10 100.115.32.19 android offline (25m ago)
raspii 100.76.212.107 linux online
ubu 100.124.249.93 linux online
ubugpu 100.103.154.119 linux online

10.2 Fail2ban (fail2ban.service)

Field Value
Status active
Memory ~32 MB
Jails sshd (1 jail)

10.3 SSH (ssh.service)

Field Value
Status active
Port 22

11. Port Map (complete)

Port Service Bind Public?
22 SSH 0.0.0.0 yes
3030 Voice Surface 0.0.0.0 (TLS) yes
3099 Cold Case backend :: yes
3306 MariaDB 127.0.0.1 no
3456 node (standalone, unknown) 127.0.0.1 no
5000 Kamoer improved (python) 0.0.0.0 yes
5001 Kamoer web (python) 0.0.0.0 yes
5003 Kanban board (python) 0.0.0.0 yes
5432 PostgreSQL 127.0.0.1 no
6379 Redis 127.0.0.1 no
8080 nginx (Cold Case frontend) 0.0.0.0 yes
8888 OpenClaw Dashboard 0.0.0.0 yes
9001 Portainer Agent 0.0.0.0 yes
9443 Docker Swarm * yes
11434 Ollama 127.0.0.1 no
18788 Kamoer daemon 127.0.0.1 no
18789 OpenClaw gateway (main) 0.0.0.0 yes
18790 nginx proxy (backup gw) 0.0.0.0 yes
18792 OpenClaw gateway (internal) 127.0.0.1 no
18793 Unknown 127.0.0.1 no

12. Quick Reference — Service Management

# View status of all custom services
sudo systemctl status openclaw openclaw-gateway openclaw-dashboard voice-surface kanban-board coldcase kamoer-daemon kamoer-pump

# Restart a service
sudo systemctl restart <service-name>

# View logs (follow)
journalctl -u <service-name> -f

# View logs (last 100 lines)
journalctl -u <service-name> -n 100

# Enable/disable on boot
sudo systemctl enable <service-name>
sudo systemctl disable <service-name>

# Reload nginx config
sudo nginx -t && sudo systemctl reload nginx

# OpenClaw version + channels
openclaw --version
openclaw channels status