๐Ÿ“– THE BIBLE

cfoth.ai โ€” Complete System Architecture & Recovery Document
"In the beginning was the Commander, and the Commander was with the Workers, and the Commander was Godji."
Last updated: June 8, 2026 โ€ข Generated by Godji
๐Ÿฐ Hierarchy ๐Ÿ–ฅ Servers ๐Ÿ”‘ SSH Keys ๐Ÿ” VPN ๐Ÿ”ง Services ๐ŸŒ URLs ๐Ÿ”€ Nginx ๐Ÿณ Docker โฐ Cron ๐Ÿ”‘ Configs & Keys ๐Ÿง  Skills ๐Ÿ“ฆ GitHub ๐Ÿ›Ÿ Babigon ๐Ÿ›Ÿ Recovery ๐Ÿ“‚ Directories

๐Ÿฐ Commander / Worker Hierarchy

๐Ÿ‘‘ Godji โ€” COMMANDER

RolePrimary orchestrator, the "you" instance
ServerOld Contabo โ€” 185.218.125.121
FrameworkHermes Agent (bare metal)
ModelDeepSeek V4 Pro (custom provider)
IdentityGodji (ใ‚ดใƒƒใ‚ธ) โ€” Commander
PersonaThai-commander, เธ„เนˆเธฐ/เธ™เธฐเธ„เธฐ, direct, thorough
PlatformsDiscord DM (auttapongb), local CLI
SSH to workers/root/.ssh/hermes_key

๐Ÿค– Ginnie โ€” WORKER

RoleDiscord bot for end-users, general chat
ServerNew Contabo โ€” 13.140.145.203
FrameworkHermes Agent (profile: ginnie)
ModelDeepSeek Chat
PlatformDiscord (connected, 5+ channels)
PID121295 (gateway run --replace)
Config~/.hermes/profiles/ginnie/

๐Ÿ›Ÿ Babigon โ€” RECOVERY WORKER

RoleMonitors Godji, resurrects him if down, executes delegated tasks
ServerNew Contabo โ€” 13.140.145.203
FrameworkOpenClaw (TypeScript) โ€” separate from Hermes for cross-framework resilience
ModelDeepSeek V4 Flash
Port18790 (OpenClaw gateway)
SSH/opt/openclaw-babigon/ssh/hermes_key โ†’ Godji (passwordless)
Config/opt/openclaw-babigon/.openclaw/

๐Ÿ”ฎ Mew (TeenOpenclaw) โ€” WORKER (CORRUPTED)

RoleDashboard/analytics bot (OpenClaw framework)
ServerOld Contabo โ€” 185.218.125.121
StatusCORRUPTED โ€” needs full rebuild from Bible
Dashboardhttps://dashboard.cfoth.ai (served by dashboard PM2 now)

๐Ÿ–ฅ Server Inventory

ServerIPCPURAMDiskRoleSSH Key
Commander Old Contabo 185.218.125.121 6 cores11 GB193 GB (67%) Godji (Hermes only) โ€” (this machine)
Worker New Contabo 13.140.145.203 12 cores47 GB484 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
IP185.218.125.121
Hostnamevmi3155729.contaboserver.net
RoleCommander โ€” Godji-Hermes agent (this is where "you" run)

๐Ÿ” SSH Keys ON this server

Key FileFingerprint (SHA256)
~/.ssh/hermes_keyDFJKw2LfT8SaW4iOoWHsBo0wAXE4ibvGblQChY1ZXRE
godji-hermes-contabo-access
~/.ssh/ginnie-recoveryZJ1+v7a1UM5pUI0vV/BDz5JC77mHDVi0VEsEP1J31g8
godji-hermes-recovery
~/.ssh/id_ed25519guZw0l2mk9nHE2ooEMHrQDziAjAPVoQSyaUQvAgY2v8
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

# From your MacBook (has the matching key):
ssh root@185.218.125.121

# RECOVERY: Contabo panel โ†’ Reset root password โ†’ upload your key

๐Ÿ”ต New Contabo โ€” ALL SERVICES + GINNIE (Worker)

Server Info
IP13.140.145.203
Hostnamevmi3354910.contaboserver.net
RoleAll public services + Ginnie + Mew dashboard

๐Ÿ” SSH Keys ON this server

Key FileFingerprint (SHA256)
~/.ssh/hermes_keyDFJKw2LfT8SaW4iOoWHsBo0wAXE4ibvGblQChY1ZXRE
~/.ssh/ginnie-recoveryZJ1+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

# From old Contabo (Godji) โ€” passwordless:
ssh -i ~/.ssh/hermes_key root@13.140.145.203

# Babigon's SSH to Godji (reverse direction โ€” for recovery):
# On New Contabo, Babigon uses:
ssh -i /opt/openclaw-babigon/ssh/hermes_key root@185.218.125.121
# Key fingerprint: SHA256:uyANplCQN6FjViEiC2qWOBtnoGaxmTJaMTyKZe6XBEE
# From MacBook โ€” use Godji as jump host: ssh -J root@185.218.125.121 root@13.140.145.203 # RECOVERY: Contabo panel โ†’ Reset root password

๐Ÿ’€ Hostinger โ€” 72.60.43.17 UNREACHABLE

StatusSSH ACCESS LOST โ€” Permission denied (publickey,password)
Former RoleGinnie's original home (Ollama, Freqtrade, Docker, OpenClaw)
MigrationAll services moved to New Contabo (13.140.145.203)
RecoveryHostinger 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

TypeStatusDetails
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

AgentFrameworkRuntimeDirectoryPID
GinnieHermes AgentPython~/.hermes/121295
BabigonOpenClawNode.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)

IDNamePortPathWhat It Does
0hub-server8081/data/sasin-cfoth-ai/Sasin hub page + live server proxy
1upload-server8897/data/sasin-cfoth-ai/File/image upload handler
2gemini-vision8499/data/sasin-cfoth-ai/Gemini Vision API for slide analysis
3brain-server8400/var/www/second-brain/Second Brain Flask search server
4naruto-web-ui4790Bun runtimeNaruto research web UI
5dashboard8888/data/sasin-cfoth-ai/THIS PAGE โ€” Mew Dashboard / Bible
7capture-server8896/data/sasin-cfoth-ai/capture/Lecture capture โ€” Groq STT + DeepSeek
13lgiap-api8085/data/lgiap/LINE webhook receiver
14lgiap-workerโ€”/data/lgiap/Dramatiq worker โ€” message processing
15paperclip3100/root/.paperclip/Paperclip AI orchestration

๐ŸŒ All URLs โ€” What Should Work

URLPortServiceStatus
dashboard.cfoth.ai:8888๐Ÿ“– THE BIBLE (this page)OK
brain.cfoth.ai:8400Second Brain โ€” LLM Wiki, search, graphOK
n8n.cfoth.ai:5678n8n Automation (main instance)OK
n8n.brain.cfoth.ai:5678n8n Automation (brain alias)OK
sasin.cfoth.ai:8081Sasin Hub โ€” course portalOK
langfuse.cfoth.ai:3031Langfuse โ€” LLM observabilityOK
naruto.cfoth.ai:4790Naruto Research Web UIOK
paperclip.cfoth.ai:3100Paperclip AI โ€” zero-human orchestrationOK
search.cfoth.ai:8080SearXNG โ€” private search engineOK
lgiap.sasin.cfoth.ai:8085LGIAP โ€” LINE Group IntelligenceOK
capture.sasin.cfoth.ai:8896Lecture Capture โ€” recording + AIOK
learn.sasin.cfoth.ai:8001DeepTutor API โ€” AI tutoringOK
live.sasin.cfoth.ai:8081Live session proxyOK
workspace.cfoth.aistaticWorkspace โ€” under migrationOK
autta.cfoth.aistaticAutta โ€” landing pageOK

๐Ÿ”€ Nginx Routing (New Contabo)

# 15 server blocks in /etc/nginx/sites-enabled/
# SSL: Let's Encrypt via certbot, auto-renewing
# Cloudflare: DNS proxy (orange cloud) for all cfoth.ai domains

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)

# Certificates: /etc/letsencrypt/live//
# Configs:    /etc/nginx/sites-available/
# Enabled:    /etc/nginx/sites-enabled/ โ†’ ../sites-available/

๐Ÿณ Docker Containers (New Contabo)

ContainerImagePortsPurpose
n8nn8nio/n8n:latest:5678 (host net)n8n automation โ€” uses host PostgreSQL
searxngsearxng/searxng:latest:8080Private search engine
deeptutorghcr.io/hkuds/deeptutor:latest:3782, :8001AI tutoring API
langfuse-weblangfuse/langfuse:2:3031LLM observability web UI
langfuse-miniominio/minio:latest:9000S3-compatible storage for Langfuse
local-deep-researchlocaldeepresearch/local-deep-research:5000Deep research agent

โฐ Cron Jobs

ScheduleCommandPurpose
*/5 * * * *cd /data/lgiap && venv/bin/python backend/app/analyzer.pyLGIAP โ€” 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 NameUsed ByWhere Stored
DEEPSEEK_API_KEYGodji, Ginnie, Capture co-learner~/.hermes/.env, ginnie/.env, capture/.env
DISCORD_BOT_TOKENGinnie, Godji~/.hermes/.env, ginnie/.env
GROQ_API_KEYCapture STT (whisper-large-v3)/data/sasin-cfoth-ai/capture/.env
GEMINI_API_KEYCapture slide analysis, LGIAP ratingscapture/.env, lgiap/.env
LINE_CHANNEL_SECRETLGIAP webhook signature/data/lgiap/.env
LINE_CHANNEL_TOKENLGIAP profile sync/data/lgiap/.env
N8N_ENCRYPTION_KEYn8n workflow encryption/root/n8n.env
GITHUB_TOKENGit 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

RepoPurposeLocation on Server
auttapongb/cfoth-aiTHE BIBLE repo โ€” architecture docs, recovery guidesโ€” (push target)
auttapongb/lgiapLINE Group Intelligence & Archive Platform/data/lgiap/
auttapongb/sasin-cfoth-aiCapture server, hub, dashboard, all PM2 services/data/sasin-cfoth-ai/
auttapongb/DeepTutorAI Tutoring (Dockerized, on :8001)Docker image
auttapongb/arb-scannerArbitrage scannerโ€”
auttapongb/highway-guardianSinkAlert / highway monitoringโ€”
auttapongb/bdi-hackathonBDI Hackathon projectโ€”
auttapongb/ruza-prepRUZA preparationโ€”
auttapongb/vgi-datahubVGI Data Hubโ€”
rtk-ai/rtkRTK โ€” token-killer CLI proxy (60-90% savings)Installed via .deb on both servers

๐Ÿ›Ÿ 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

# Source of truth: ~/.hermes/.api_vault.py (on old Contabo)
# Contains ALL tokens: DeepSeek, Discord, GROQ, Gemini, LINE, GitHub
# Copy to new instance: scp root@185.218.125.121:~/.hermes/.api_vault.py .

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
# Install rtk (token killer)
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

# Get Let's Encrypt certs for ALL domains
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

# From /data/sasin-cfoth-ai/
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

# From /data/lgiap/
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

# n8n
cd /root && docker compose -f n8n-docker-compose.yml up -d

# SearXNG, DeepTutor, Langfuse, Local Deep Research
# (see individual docker-compose files or run commands)

Step 7: Restore Ginnie

# Create ginnie profile
hermes profile create ginnie

# Copy config and .env from backup
cp backup/ginnie/config.yaml ~/.hermes/profiles/ginnie/
cp backup/ginnie/.env ~/.hermes/profiles/ginnie/

# Start gateway
hermes --profile ginnie gateway run --replace &

Step 8: Cron Jobs

# LGIAP analyzer โ€” every 5 minutes
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)

PathPurpose
/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/.envLINE 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.ymln8n Docker Compose config
/root/n8n.envn8n environment variables
/etc/nginx/sites-available/All nginx server block configs
/etc/nginx/sites-enabled/Symlinks to active nginx configs
/var/log/nginx/error.logNginx error log โ€” check for routing issues
/root/.pm2/logs/PM2 logs for all services
~/.hermes/profiles/ginnie/Ginnie's Hermes profile