๐ฐ Commander / Worker Hierarchy
๐ Godji โ COMMANDER
| Role | Primary orchestrator, the "you" instance |
| Server | Old Contabo โ 185.218.125.121 |
| Framework | Hermes Agent (bare metal) |
| Model | DeepSeek V4 Pro (custom provider) |
| Identity | Godji (ใดใใธ) โ Commander |
| Persona | Thai-commander, เธเนเธฐ/เธเธฐเธเธฐ, direct, thorough |
| Platforms | Discord DM (auttapongb), local CLI |
| SSH to workers | /root/.ssh/hermes_key |
๐ค Ginnie โ WORKER
| Role | Discord bot for end-users, general chat |
| Server | New Contabo โ 13.140.145.203 |
| Framework | Hermes Agent (profile: ginnie) |
| Model | DeepSeek Chat |
| Platform | Discord (connected, 5+ channels) |
| PID | 121295 (gateway run --replace) |
| Config | ~/.hermes/profiles/ginnie/ |
๐ Babigon โ RECOVERY WORKER
| Role | Monitors Godji, resurrects him if down, executes delegated tasks |
| Server | New Contabo โ 13.140.145.203 |
| Framework | OpenClaw (TypeScript) โ separate from Hermes for cross-framework resilience |
| Model | DeepSeek V4 Flash |
| Port | 18790 (OpenClaw gateway) |
| SSH | /opt/openclaw-babigon/ssh/hermes_key โ Godji (passwordless) |
| Config | /opt/openclaw-babigon/.openclaw/ |
๐ฎ Mew (TeenOpenclaw) โ WORKER (CORRUPTED)
| Role | Dashboard/analytics bot (OpenClaw framework) |
| Server | Old Contabo โ 185.218.125.121 |
| Status | CORRUPTED โ needs full rebuild from Bible |
| Dashboard | https://dashboard.cfoth.ai (served by dashboard PM2 now) |
๐ฅ Server Inventory
| Server | IP | CPU | RAM | Disk | Role | SSH Key |
| Commander Old Contabo |
185.218.125.121 |
6 cores | 11 GB | 193 GB (67%) |
Godji (Hermes only) |
โ (this machine) |
| Worker New Contabo |
13.140.145.203 |
12 cores | 47 GB | 484 GB (7%) |
ALL services + Ginnie |
/root/.ssh/hermes_key |
| Standby Hostinger |
72.60.43.17 |
Decommissioned โ standby only |
โ |
โ |
๐ SSH Access & Keys
๐ก Old Contabo โ GODJI (Commander)
| Server Info |
| IP | 185.218.125.121 |
| Hostname | vmi3155729.contaboserver.net |
| Role | Commander โ Godji-Hermes agent (this is where "you" run) |
๐ SSH Keys ON this server
| Key File | Fingerprint (SHA256) |
~/.ssh/hermes_key | DFJKw2LfT8SaW4iOoWHsBo0wAXE4ibvGblQChY1ZXRE godji-hermes-contabo-access |
~/.ssh/ginnie-recovery | ZJ1+v7a1UM5pUI0vV/BDz5JC77mHDVi0VEsEP1J31g8 godji-hermes-recovery |
~/.ssh/id_ed25519 | guZw0l2mk9nHE2ooEMHrQDziAjAPVoQSyaUQvAgY2v8 godji-hermes-contabo |
๐ Authorized Keys (who can SSH in)
# Only auttapong's MacBook:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICRgm8VT1FIJFZLp5A5UmiQNutpJ1wA29Iv38iOdeuTZ auttapong@bssadmins-MacBook-Air.local
๐ How to SSH in
ssh root@185.218.125.121
๐ต New Contabo โ ALL SERVICES + GINNIE (Worker)
| Server Info |
| IP | 13.140.145.203 |
| Hostname | vmi3354910.contaboserver.net |
| Role | All public services + Ginnie + Mew dashboard |
๐ SSH Keys ON this server
| Key File | Fingerprint (SHA256) |
~/.ssh/hermes_key | DFJKw2LfT8SaW4iOoWHsBo0wAXE4ibvGblQChY1ZXRE |
~/.ssh/ginnie-recovery | ZJ1+v7a1UM5pUI0vV/BDz5JC77mHDVi0VEsEP1J31g8 |
๐ Authorized Keys (4 keys โ Godji can SSH in)
ssh-ed25519 ... hermes-agent@185.218.125.121 โ Godji's hermes_key
ssh-ed25519 ... babigon-hermes-contabo โ Ginnie recovery #1
ssh-ed25519 ... babigon-hermes-contabo โ Ginnie recovery #2
ssh-ed25519 ... godji-hermes-contabo-access โ Godji access key
๐ How to SSH in
ssh -i ~/.ssh/hermes_key root@13.140.145.203
ssh -i /opt/openclaw-babigon/ssh/hermes_key root@185.218.125.121
ssh -J root@185.218.125.121 root@13.140.145.203
๐ Hostinger โ 72.60.43.17 UNREACHABLE
| Status | SSH ACCESS LOST โ Permission denied (publickey,password) |
| Former Role | Ginnie's original home (Ollama, Freqtrade, Docker, OpenClaw) |
| Migration | All services moved to New Contabo (13.140.145.203) |
| Recovery | Hostinger panel needed to reset access. NOT needed for current ops โ all services on New Contabo. |
๐บ SSH Connection Map
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ auttapong's MacBook โ
โ โ โ
โ โ SSH (authorized key) โ
โ โผ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโ SSH (hermes_key) โโโโโโโโโโโโโโโโโโโโโโโโ
โ โ OLD CONTABO โ โโโโโโโโโโโโโโโโโโโโโโโถ โ NEW CONTABO โ
โ โ 185.218.125.121 โโโ โ โ โ โ โ โ โ โ โ โ โ 13.140.145.203 โ
โ โ GODJI (Commander) โโโโSSH (recovery)โโโโโ โ ALL SERVICES โ
โ โ โ โ + GINNIE (Worker) โ
โ โ Hermes Agent โ โ + MEW (Dashboard) โ
โ โ ~/.ssh/hermes_key โ โ + BABIGON (OpenClaw)โ
โ โ ~/.ssh/hermes_key โ โ โ
โ โ ~/.ssh/ginnie-recov โ โ PM2 ร 10 services โ
โ โโโโโโโโโโโโโโโโโโโโโโโโ โ Nginx ร 15 sites โ
โ โ โ PostgreSQL ร 7 DB โ
โ โ SSH (FAILED) โโโโโโโโโโโโโโโโโโโโโโโโ
โ โผ
โ โโโโโโโโโโโโโโโโโโโโโโโโ
โ โ HOSTINGER โ
โ โ 72.60.43.17 โ
โ โ ๐ UNREACHABLE โ
โ โ Permission denied โ
โ โโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ VPN / Tunnels
| Type | Status | Details |
| WireGuard |
NOT INSTALLED |
No WireGuard config on any server (/etc/wireguard/ empty) |
| OpenVPN |
NOT INSTALLED |
No OpenVPN config on any server (/etc/openvpn/ empty) |
| SSH Tunnel (Ollama) |
Active |
Port 11434 forwarded: ssh -i ~/.ssh/ginnie-recovery -N -L 11434:127.0.0.1:11434 root@<ginnie-host>. Auto-fallback to Gemini embeddings if down. |
โ ๏ธ No VPN layer exists between servers. Communication is direct via public IPs over SSH.
To add VPN: install WireGuard on both Contabo servers, generate keys, create mesh config. Consider for production hardening.
๐ Cross-Framework Resilience
| Agent | Framework | Runtime | Directory | PID |
| Ginnie | Hermes Agent | Python | ~/.hermes/ | 121295 |
| Babigon | OpenClaw | Node.js | /opt/openclaw-babigon/ | 153828 |
rm -rf /root/.hermes/ kills Ginnie โ Babigon survives.
rm -rf /opt/openclaw-babigon/ kills Babigon โ Ginnie survives.
Either can SSH to Godji (Old Contabo) for mutual recovery.
๐ง PM2 Services (New Contabo)
| ID | Name | Port | Path | What It Does |
| 0 | hub-server | 8081 | /data/sasin-cfoth-ai/ | Sasin hub page + live server proxy |
| 1 | upload-server | 8897 | /data/sasin-cfoth-ai/ | File/image upload handler |
| 2 | gemini-vision | 8499 | /data/sasin-cfoth-ai/ | Gemini Vision API for slide analysis |
| 3 | brain-server | 8400 | /var/www/second-brain/ | Second Brain Flask search server |
| 4 | naruto-web-ui | 4790 | Bun runtime | Naruto research web UI |
| 5 | dashboard | 8888 | /data/sasin-cfoth-ai/ | THIS PAGE โ Mew Dashboard / Bible |
| 7 | capture-server | 8896 | /data/sasin-cfoth-ai/capture/ | Lecture capture โ Groq STT + DeepSeek |
| 13 | lgiap-api | 8085 | /data/lgiap/ | LINE webhook receiver |
| 14 | lgiap-worker | โ | /data/lgiap/ | Dramatiq worker โ message processing |
| 15 | paperclip | 3100 | /root/.paperclip/ | Paperclip AI orchestration |
๐ All URLs โ What Should Work
๐ Nginx Routing (New Contabo)
autta.cfoth.ai โ static /var/www/autta-cfoth
brain.cfoth.ai โ http://127.0.0.1:8400 (brain-server PM2)
capture.sasin.cfoth.ai โ http://127.0.0.1:8896 (capture-server PM2)
dashboard.cfoth.ai โ http://127.0.0.1:8888 (dashboard PM2)
langfuse.cfoth.ai โ http://127.0.1.1:3031 (langfuse-web Docker)
learn.sasin.cfoth.ai โ http://127.0.0.1:8001 (deeptutor Docker)
lgiap.sasin.cfoth.ai โ http://127.0.0.1:8085 (lgiap-api PM2)
live.sasin.cfoth.ai โ http://127.0.0.1:8081 (hub-server PM2)
n8n.brain.cfoth.ai โ http://127.0.0.1:5678 (n8n Docker, host network)
n8n.cfoth.ai โ http://127.0.0.1:5678 (n8n Docker, host network)
naruto.cfoth.ai โ http://127.0.0.1:4790 (naruto-web-ui PM2)
paperclip.cfoth.ai โ http://127.0.0.1:3100 (paperclip PM2)
sasin.cfoth.ai โ http://127.0.0.1:8081 (hub-server PM2)
search.cfoth.ai โ http://127.0.0.1:8080 (searxng Docker)
workspace.cfoth.ai โ static /var/www/workspace (placeholder)
๐ณ Docker Containers (New Contabo)
| Container | Image | Ports | Purpose |
| n8n | n8nio/n8n:latest | :5678 (host net) | n8n automation โ uses host PostgreSQL |
| searxng | searxng/searxng:latest | :8080 | Private search engine |
| deeptutor | ghcr.io/hkuds/deeptutor:latest | :3782, :8001 | AI tutoring API |
| langfuse-web | langfuse/langfuse:2 | :3031 | LLM observability web UI |
| langfuse-minio | minio/minio:latest | :9000 | S3-compatible storage for Langfuse |
| local-deep-research | localdeepresearch/local-deep-research | :5000 | Deep research agent |
โฐ Cron Jobs
| Schedule | Command | Purpose |
*/5 * * * * | cd /data/lgiap && venv/bin/python backend/app/analyzer.py | LGIAP โ group conversations + rate messages |
๐ Configs & API Keys Location
๐ Godji (Old Contabo)
| Config | ~/.hermes/config.yaml |
| Env / Keys | ~/.hermes/.env |
| API Vault | ~/.hermes/.api_vault.py |
| SSH Key | /root/.ssh/hermes_key |
| Skills | ~/.hermes/skills/ |
| Sessions | ~/.hermes/state.db |
๐ New Contabo (13.140.145.203)
| Ginnie Config | ~/.hermes/profiles/ginnie/config.yaml |
| Ginnie Env | ~/.hermes/profiles/ginnie/.env |
| Capture Env | /data/sasin-cfoth-ai/capture/.env |
| LGIAP Env | /data/lgiap/.env |
| n8n Env | /root/n8n.env |
| n8n Compose | /root/n8n-docker-compose.yml |
๐ Required API Keys (names only โ values in vault)
| Key Name | Used By | Where Stored |
DEEPSEEK_API_KEY | Godji, Ginnie, Capture co-learner | ~/.hermes/.env, ginnie/.env, capture/.env |
DISCORD_BOT_TOKEN | Ginnie, Godji | ~/.hermes/.env, ginnie/.env |
GROQ_API_KEY | Capture STT (whisper-large-v3) | /data/sasin-cfoth-ai/capture/.env |
GEMINI_API_KEY | Capture slide analysis, LGIAP ratings | capture/.env, lgiap/.env |
LINE_CHANNEL_SECRET | LGIAP webhook signature | /data/lgiap/.env |
LINE_CHANNEL_TOKEN | LGIAP profile sync | /data/lgiap/.env |
N8N_ENCRYPTION_KEY | n8n workflow encryption | /root/n8n.env |
GITHUB_TOKEN | Git push/pull (classic PAT) | ~/.hermes/.api_vault.py |
๐ง Skills Loaded (Godji โ Commander)
Autonomous Agents
claude-code ยท codex ยท opencode ยท hermes-agent ยท hermes-agent-recovery
DevOps
infrastructure-recovery ยท rtk-token-killer ยท dogfood ยท kanban-orchestrator ยท kanban-worker
Software Dev
plan ยท spike ยท systematic-debugging ยท test-driven-development ยท requesting-code-review ยท agent-knowledge-recovery
GitHub
github-auth ยท github-pr-workflow ยท github-issues ยท github-code-review ยท github-repo-management ยท codebase-inspection
Productivity
google-workspace ยท obsidian ยท notion ยท powerpoint ยท ocr-and-documents ยท maps
Data & Research
jupyter-live-kernel ยท arxiv ยท polymarket ยท llm-wiki ยท blogwatcher
Creative
architecture-diagram ยท ascii-art ยท excalidraw ยท claude-design ยท sketch ยท popular-web-designs
MLOps
llama-cpp ยท serving-llms-vllm ยท huggingface-hub ยท evaluating-llms-harness ยท obliteratus
Platform-Specific
lgiap-line-archive ยท line-messaging-api ยท messaging-platform-setup ยท yuanbao
๐ฆ GitHub Repos
๐ Recovery โ How to Rebuild Everything From Scratch
๐ Automated Recovery: Babigon (OpenClaw on New Contabo) monitors Godji and can resurrect him automatically.
ssh -i /opt/openclaw-babigon/ssh/hermes_key root@185.218.125.121 โ passwordless SSH already configured.
If Godji is down, Babigon SSHs in and runs hermes gateway --profile default.
โ ๏ธ If Everything Is Wiped โ Start Here
This is the single source of truth. A fresh Hermes instance should load this page and follow these steps:
Step 1: Restore API Keys
scp ~/.hermes/.api_vault.py new-server:~/.hermes/
Step 2: Clone Repos
cd /data
git clone https://github.com/auttapongb/cfoth-ai.git
git clone https://github.com/auttapongb/lgiap.git
git clone https://github.com/auttapongb/sasin-cfoth-ai.git
Step 3: Install System Dependencies
apt-get install -y nginx certbot python3-certbot-nginx postgresql redis-server python3-venv nodejs npm
curl -sSL https://github.com/rtk-ai/rtk/releases/download/v0.42.3/rtk_0.42.3-1_amd64.deb -o /tmp/rtk.deb
dpkg -i /tmp/rtk.deb
Step 4: SSL Certificates
certbot --nginx -d dashboard.cfoth.ai -d brain.cfoth.ai -d n8n.cfoth.ai \
-d sasin.cfoth.ai -d naruto.cfoth.ai -d paperclip.cfoth.ai \
-d search.cfoth.ai -d langfuse.cfoth.ai -d n8n.brain.cfoth.ai \
-d autta.cfoth.ai -d workspace.cfoth.ai --non-interactive --agree-tos
certbot --nginx -d lgiap.sasin.cfoth.ai --non-interactive --agree-tos
certbot --nginx -d capture.sasin.cfoth.ai --non-interactive --agree-tos
certbot --nginx -d learn.sasin.cfoth.ai --non-interactive --agree-tos
certbot --nginx -d live.sasin.cfoth.ai --non-interactive --agree-tos
Step 5: Start PM2 Services
pm2 start /data/sasin-cfoth-ai/venv/bin/python3 server.py --name hub-server
pm2 start /data/sasin-cfoth-ai/venv/bin/python3 capture/server.py --name capture-server
pm2 start /data/sasin-cfoth-ai/venv/bin/python3 dashboard_server.py --name dashboard -- --port 8888
pm2 start /data/lgiap/venv/bin/python3 -m uvicorn app.main:app --host 0.0.0.0 --port 8085 --name lgiap-api
pm2 start /data/lgiap/venv/bin/python3 -m dramatiq app.tasks.ingest --processes 2 --name lgiap-worker
pm2 save
Step 6: Docker Services
cd /root && docker compose -f n8n-docker-compose.yml up -d
Step 7: Restore Ginnie
hermes profile create ginnie
cp backup/ginnie/config.yaml ~/.hermes/profiles/ginnie/
cp backup/ginnie/.env ~/.hermes/profiles/ginnie/
hermes --profile ginnie gateway run --replace &
Step 8: Cron Jobs
crontab -e
*/5 * * * * cd /data/lgiap && source venv/bin/activate && python3 backend/app/analyzer.py >> /var/log/lgiap-analyzer.log 2>&1
๐ Key Working Directories (New Contabo)
| Path | Purpose |
/data/sasin-cfoth-ai/ | Main app repo โ hub, capture, dashboard, upload, gemini-vision |
/data/sasin-cfoth-ai/capture/ | Lecture capture server (server.py, index.html, .env) |
/data/lgiap/ | LINE ingestion pipeline (Flask, Dramatiq, analyzer) |
/data/lgiap/.env | LINE secret/token, GEMINI key, DATABASE_URL, REDIS_URL |
/var/www/second-brain/ | Second Brain Flask server (search_server.py) |
/root/.paperclip/ | Paperclip AI data + config |
/root/n8n-docker-compose.yml | n8n Docker Compose config |
/root/n8n.env | n8n environment variables |
/etc/nginx/sites-available/ | All nginx server block configs |
/etc/nginx/sites-enabled/ | Symlinks to active nginx configs |
/var/log/nginx/error.log | Nginx error log โ check for routing issues |
/root/.pm2/logs/ | PM2 logs for all services |
~/.hermes/profiles/ginnie/ | Ginnie's Hermes profile |