# Hermes Recovery — Complete Resurrection Kit **If Sho'Nuff dies, this is how you bring him back.** ## What's Here | Directory | What | Count | |---|---|---| | `scripts/` | All operational scripts | 81 | | `configs/` | Hermes config.yaml, .env.example, persona, brief | 4 | | `references/` | Design decisions, runbooks, specs, signature module | 62 | | `systemd/` | All custom systemd service units | 25+ | | `cron/` | Full crontab dump | 9 jobs | | `caddy/` | Caddy reverse proxy config | 1 | | `docker/` | Compose files for all services | 11 | ## Resurrection Steps ### 1. Provision Server - netcup RS 2000 or higher (8+ vCPU, 16+ GB RAM) - Debian 13, SSH key `itpp-infra` - Open ports: 22, 80, 443 ### 2. Install Base ```bash apt-get update && apt-get install -y curl git python3 python3-pip docker.io docker-compose-plugin ufw caddy ufw allow 22/tcp && ufw allow 80/tcp && ufw allow 443/tcp && ufw --force enable ``` ### 3. Install Hermes Agent ```bash curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash ``` ### 4. Restore Configs ```bash # Copy config.yaml to ~/.hermes/config.yaml # Copy .env.example to ~/.hermes/.env → fill in actual secrets # Copy persona to ~/.hermes/persona.md ``` ### 5. Restore Scripts ```bash cp scripts/* ~/.hermes/scripts/ chmod +x ~/.hermes/scripts/*.sh ``` ### 6. Deploy Services (Docker) ```bash for d in docker/*/; do cd "$d" && docker compose up -d done ``` ### 7. Restore Caddy ```bash cp caddy/Caddyfile /etc/caddy/Caddyfile systemctl restart caddy ``` ### 8. Restore Cron Jobs ```bash # Review crontab.txt, adjust paths if needed crontab cron/crontab.txt ``` ### 9. Restore Systemd Units ```bash cp systemd/*.service /etc/systemd/system/ systemctl daemon-reload systemctl enable --now hermes.service ``` ### 10. Restore Data from S3 ```bash # Hermes state: aws s3 sync s3://hermes-vps-backups/live/ ~/.hermes/ # Docker volumes: individual restore per service ``` ## Critical Credentials (Fill These In) | File | What | |---|---| | `~/.hermes/.env` | All API keys, tokens, passwords | | `~/.config/himalaya/*.pass` | Email account passwords | | `~/.ssh/itpp-infra` | SSH private key | | `~/.aws/credentials` | Wasabi S3 access | ## Servers You Control | Server | IP | Provider | Role | |---|---|---|---| | Core | 152.53.192.33 | netcup RS2000 | Hermes + gateway | | app1 | 152.53.36.131 | netcup RS4000 | Open WebUI, LiteLLM, Ollama, n8n, MCPs | | app2 | 152.53.39.202 | netcup RS4000 | UNMS, Hudu, Traccar, UniFi, Gitea, Caddy | | app3 | 152.53.241.111 | netcup RS2000 | WordPress, Apex Track | | app1-bu | 5.161.114.8 | Hetzner CPX11 | Warm standby | | wphost02 | 5.161.62.38 | Hetzner | WordPress | | ai | 178.156.167.181 | Hetzner | admin-ai | ## Documentation (Gitea) Full project docs at `https://git.itpropartner.com/ippadmin/`: - `itpp-infrastructure` — Server inventory, DNS, architecture - `disaster-recovery` — DR plan v3, recovery manual, issue log - `hermes-skills` — 25 skill categories - `hudu`, `unifi`, `unms`, `mcp-servers`, `scripts` - `dre`, `shark-game`, `osint-tool`, `apex-track`, `boxpilot`, `fleettracker360`, `voipsimplicity`, `digital-signage`