Files
hermes-recovery/references/master-apps-services.md
T

341 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# IT Pro Partner — Master Apps & Services Inventory
> **Last Updated:** July 11, 2026
> **Maintainer:** Sho'Nuff
> **Purpose:** Complete registry of every installed application, subscription, API key, FOSS tool, and the server/service it lives on.
---
## Infrastructure Overview
| Server | IP | Specs | Provider | Role |
|---|---|---|---|---|
| **Core** | 152.53.192.33 | RS 2000 (8C/15G/512GB) | netcup | Ops hub |
| **app1** | 152.53.36.131 | RS 4000 (12C/32G/1TB) | netcup | AI/ML stack |
| **app2** | 152.53.39.202 | RS 4000 (12C/32G/1TB) | netcup | UISP/Infrastructure |
| **app3** | 152.53.241.111 | RS 4000 (12C/32G/1TB) | netcup | Web apps (spare) |
| **app1-bu** | 5.161.114.8 | CPX11 (2C/2G/40G) | Hetzner | Warm standby |
| **old-ai** | 178.156.167.181 | CPX41 (226G disk) | Hetzner | **Decommissioning** — admin-ai pending migration to app1 |
| **wphost02** | 5.161.62.38 | — | Hetzner | WordPress host (migrating to app3) |
| **Tony Hermes** | 87.99.159.142 | — | — | Anthony's personal Hermes |
**SSH Key:** `itpp-infra` (deployed to all servers, root SSH key-only)
**Base OS:** Debian 13 (all netcup boxes), Debian 12 (Hetzner boxes)
### Active Projects
| Project | Status | Server | Description |
|---|---|---|---|
| **Super Search** | ✅ Live v1.1.0 | Core | Multi-provider web search (SearXNG → Exa → Firecrawl) + extraction via FastMCP |
| **DRE / Debt Recovery Experts** | Active | Core + Cloudflare | Collections platform, CRM, approval workflows, letter templates |
| **Apex Track Experience** | Active | wphost02 (→ app3) | NASA Top Speed Event, WPForms, SMTP, PayPal |
| **Shark Attack Fantasy League** | Active | Core | shark.iamgmb.com, Discord bridge, changelog |
| **VoIPSimplicity** | Planning | — | RingLogix CPaaS, Yealink rentals |
| **Ops Portal** | Active | Core | ops.itpropartner.com, admin dashboards, customer portal |
| **admin-ai Migration** | Phase 0 Pending | old-ai → app1 | Move LiteLLM from Hetzner to netcup |
---
## Server-by-Server Inventory
### Core (netcup RS 2000 — 152.53.192.33)
#### System Services
| Service | Type | Purpose |
|---|---|---|
| **Hermes Agent** | systemd | AI assistant gateway (Telegram + cron) |
| **Caddy** | systemd | Reverse proxy (port 80/443) with Let's Encrypt |
| **Ops Portal** | systemd (uvicorn) | Internal admin dashboard at ops.itpropartner.com |
| **OSINT API** | systemd (uvicorn) | OSINT search API on port 8100 |
| **Hermes Assistant (PWA)** | systemd | PWA backend on port 8082 |
| **Shark Game** | systemd | Shark Attack Fantasy League backend on port 8083 |
| **Ollama** | systemd | Local LLM fallback (llama3.2:3b) |
| **Tailscale** | systemd | Mesh VPN for infra access |
| **StrongSwan + xl2tpd** | systemd | L2TP/IPsec VPN server |
| **WireGuard** | systemd | Tunnel to home router (10.77.0.0/24) |
| **MySQL Tunnel** | systemd | SSH tunnel to wphost02 MySQL (port 33060) |
| **Redis** | systemd | Cache layer |
| **Prometheus Node Exporter** | systemd | System metrics collection |
| **Hermes Browser** | systemd | Chromium headless for browser automation (9222) |
#### Docker Containers
| Container | Image | Port | Purpose |
|---|---|---|---|
| **Komodo Core** | ghcr.io/moghtech/komodo-core:2 | 9120 | Docker management UI |
| **Komodo Mongo** | mongo | — | Komodo database |
| **Prometheus** | prom/prometheus | 9090 (loopback) | Metrics aggregation |
| **Grafana** | grafana/grafana | 3002 (loopback) | Monitoring dashboards |
| **Twenty CRM** | twentycrm/twenty:latest | 3001 | DRE CRM (crm.debtrecoveryexperts.com) |
| **Twenty Worker** | twentycrm/twenty:latest | — | Twenty async worker |
| **Twenty DB** | postgres:16 | — | Twenty PostgreSQL |
| **Twenty Redis** | redis | — | Twenty cache |
| **DocuSeal** | docuseal/docuseal:latest | 3000 (loopback) | Document signing |
| **SearXNG** | searxng/searxng:latest | 8888 (loopback) | Private search engine |
| **Vaultwarden** | vaultwarden/server:1.33.2 | 8080 | Password manager (tailnet only) |
#### Caddy Sites
| Domain | Backend | Purpose |
|---|---|---|
| sign.itpropartner.com | → :3000 (DocuSeal) | Document signing |
| core.itpropartner.com | static files | JSON data, capabilities, portal |
| crm.debtrecoveryexperts.com | → :3001 (Twenty) | DRE customer CRM |
| portal.debtrecoveryexperts.com | static | DRE customer portal |
| internal.debtrecoveryexperts.com | static | DRE internal dashboard |
| app.itpropartner.com | static + → :8082 | Hermes Assistant PWA |
| shark.itpropartner.com | static + → :8083 | Shark game |
| shark.iamgmb.com | static + → :8083 | Shark game alias |
| ops.itpropartner.com | → :8090 + static | Ops admin portal |
#### Cron Jobs (Hermes-managed, 22 total)
| Job | Schedule | Purpose |
|---|---|---|
| hermes-live-sync | Every 15m | S3 backup sync |
| service-health-check | Every 5m | Service monitoring |
| Home-Router-Watchdog | Every 5m | CCR watchdog |
| vps-threshold-check | Every 15m | Disk/mem alerts |
| hermes-memory-consolidate | Every 10m | Memory pruning |
| IMAP-email-triage | Every 60m | Email classification |
| IMAP-triage-watchdog | Every 10m | IMAP health check |
| shonuff-inbox-agent | Every 15m | Inbox monitoring |
| daily-tech-digest | Daily 11 AM | Tech news summary |
| exotic-vehicle-scout | Daily 9 AM | New car alerts |
| shark-scraper | Every 60m | Shark sighting data |
| dre-mail-poller | Every 1m | DRE inbox polling |
| dre-pending-approval-reminder | Hourly | DRE approval reminders |
| boxpilot-triage | Every 10m | BoxPilot email triage |
| bounce-check | Every 60m | Email bounce detection |
| apex-mail-watchdog | Every 5m | Apex SMTP health |
| ops-data-collector | Every 5m | Ops portal data |
| lynis-scan | Daily 3 AM | Security audit |
| firecrawl-usage-check | Daily 9 AM | Web search credits |
| model-usage-check | Daily 8 AM | LLM availability |
| hetzner-weekly-snapshots | Weekly Mon 5 AM | Server snapshots |
| home-router-daily-backup | Daily 6 AM | CCR config backup |
---
### app1 (netcup RS 4000 — 152.53.36.131) — AI/ML Stack
#### Docker Containers
| Container | Image | Port | Purpose |
|---|---|---|---|
| **Ollama** | ollama/ollama:latest | 11434 (loopback) | Local LLM inference |
| **Open WebUI** | ghcr.io/open-webui/open-webui:latest | 3000 (loopback) | LLM chat UI (ai.itpropartner.com) |
| **n8n** | n8nio/n8n:latest | 5678 (loopback) | Workflow automation (n8n.itpropartner.com) |
| **n8n-postgres** | postgres:16-alpine | — | n8n database |
#### Caddy Sites
| Domain | Backend | Purpose |
|---|---|---|
| ai.itpropartner.com | → :3000 (Open WebUI) | LLM chat interface |
| n8n.itpropartner.com | → :5678 (n8n) | Automation workflows |
#### System Services
- Caddy, Docker, fail2ban, unattended-upgrades
#### Plans
- LiteLLM + Postgres (migrating from old-ai)
- Designated admin-ai.itpropartner.com target
---
### app2 (netcup RS 4000 — 152.53.39.202) — Infrastructure
#### Docker Containers
| Container | Image | Port | Purpose |
|---|---|---|---|
| **UNMS API** | ubnt/unms:latest | — | UISP core API |
| **UCRM** | ubnt/unms-crm:4.5.33 | 80/443 | Customer CRM |
| **UNMS Nginx** | ubnt/unms-nginx:latest | 80/443/8089 | UISP web proxy |
| **UNMS Postgres** | ubnt/unms-postgres:latest | 5432 | UISP database |
| **UNMS SiriDB** | ubnt/unms-siridb:latest | — | UISP time-series DB |
| **UNMS RabbitMQ** | rabbitmq:3.7.28-alpine | 5672 | UISP message queue |
| **UNMS Netflow** | ubnt/unms-netflow:latest | 2055/udp | Network flow data |
| **UNMS Fluentd** | ubnt/unms-fluentd:latest | 24224 | Log aggregation |
#### System Services
Docker, fail2ban, unattended-upgrades
---
### app3 (netcup RS 4000 — 152.53.241.111) — Web Apps
**Status:** Fresh server, Docker installed, no containers yet. Designated for WordPress migrations from wphost02/SiteGround.
---
### app1-bu (Hetzner CPX11 — 5.161.114.8) — Warm Standby
#### System Services
| Service | Purpose |
|---|---|
| **Hermes** | Gateway dormant — auto-activates if Core fails (5 min watchdog) |
| **Ollama** | Local LLM fallback |
| **StrongSwan** | L2TP/IPsec VPN |
| **Tailscale** | Mesh VPN |
| **Node Exporter** | Metrics |
| **apex-status-receiver** | Apex endpoint |
---
### wphost02 (Hetzner — 5.161.62.38) — WordPress
| Site | Purpose |
|---|---|
| apextrackexperience.com | Apex Track Experience (WordPress + WooCommerce + WPForms) |
| apex-status | Apex status receiver endpoint |
**MySQL:** WordPress DB at `apextrackexperience_1781549652` (via Core tunnel on port 33060)
---
### old-ai (Hetzner CPX41 — 178.156.167.181)
**Status: Decommissioning.** All services migrating to app1.
| Container | Image | Purpose |
|---|---|---|
| LiteLLM | ghcr.io/berriai/litellm:v1.84.0 | LLM proxy (admin-ai) |
| LiteLLM Postgres | postgres:16 | Model configs, API keys |
| Caddy | caddy:latest | TLS termination |
| Qdrant | qdrant/qdrant:latest | Vector DB |
| Ollama | ollama/ollama:latest | Local models |
---
## Subscriptions & API Keys
### Active Subscriptions
| Service | Plan | Cost | Billing | Purpose |
|---|---|---|---|---|
| **netcup** | RS 2000 + 4× RS 4000 | ~$156/mo | Monthly | All servers |
| **Hetzner** | CPX11 + CPX41 + misc | ~$50/mo | Monthly | app1-bu, old-ai (decomm), wphost02, old boxes (decomm) |
| **MXroute** | Email hosting | ~$15/yr? | Annual | email@redacted, DRE email, boys' email |
| **SiteGround** | WordPress hosting | ~$10/mo | Monthly | Apex Track Experience (migrating) |
| **Cloudflare** | Free (DNS + CDN + Access) | Free | — | All domains |
| **OpenRouter** | Pay-as-you-go | Variable | Prepaid | Model API fallback |
| **Firecrawl** | Pay-as-you-go | Variable | — | Web scraping for AI |
| **ScrapingAnt** (or similar) | Pay-as-you-go | Variable | — | Web extraction |
| **SyncroMSP** | RMM | ~$2/mo per endpoint | Monthly | 26 customers, ITPP endpoints |
| **Wasabi S3** | Hot cloud storage | ~$7/TB/mo | Monthly | Hermes backups, router configs |
| **Nous Research** | Hermes Agent license | Usage-based | Prepaid | Hermes platform |
### API Keys & Tokens
| Key | Location | Service | Status |
|---|---|---|---|
| FIRECRAWL_API_KEY | ~/.hermes/.env | Web scraping | ✅ Active |
| CLOUDFLARE_API_TOKEN | ~/.hermes/.env | DNS management | ✅ Active |
| NETCUP_API_KEY | ~/.hermes/.env | Server provisioning | ✅ Active |
| NETCUP_PASSWORD | ~/.hermes/.env | SCP API auth | ✅ Active |
| SYNCROMSP_API_TOKEN | ~/.hermes/.env | RMM platform | ✅ Active |
| TELEGRAM_BOT_TOKEN | ~/.hermes/.env | Telegram bot | ✅ Active |
| LITELLM_MASTER_KEY | ~/.hermes/config.yaml + /opt/ai/.env | admin-ai proxy | ✅ Active |
| LITELLM_SALT_KEY | /opt/ai/.env | Admin-ai encryption | ✅ Active |
| OpenRouter API Key | ~/.hermes/config.yaml | Model API + credits | ✅ Active |
| Hermes Nous Portal Key | — | Hermes updates | ❌ Not logged in |
| SERVER_PASSWORDS | ~/.hermes/.env | Server root passwords | ✅ Active |
| DeepSeek API Key | Litellm Postgres (encrypted) | DeepSeek LLM API | ✅ Active |
| Anthropic API Key | LiteLLM Postgres (encrypted) | Claude models | ✅ Active |
| Google/Gemini API Key | LiteLLM Postgres (encrypted) | Gemini vision + text | ✅ Active |
| OpenAI API Key | LiteLLM Postgres (encrypted) | GPT models | ✅ Active |
| Groq API Key | LiteLLM Postgres (encrypted) | Fast inference | ✅ Active |
| xAI API Key | LiteLLM Postgres (encrypted) | Grok models | ✅ Active |
---
## FOSS Software Stack
### Core Infrastructure
| Software | License | Server | Purpose |
|---|---|---|---|
| Debian 13 | GPL | All | Server OS |
| Docker + Compose | Apache 2.0 | All | Container runtime |
| Caddy | Apache 2.0 | Core, app1 | Reverse proxy + TLS |
| Tailscale | BSD | Core, app1-bu | Mesh VPN |
| WireGuard | GPL | Core | Site-to-site VPN |
| StrongSwan | GPL | Core, app1-bu | L2TP/IPsec VPN |
| Prometheus | Apache 2.0 | Core | Metrics |
| Grafana | AGPL | Core | Dashboards |
### Applications
| Software | License | Server | Purpose |
|---|---|---|---|
| **Hermes Agent** | Proprietary | Core, app1-bu | AI assistant |
| **Ollama** | MIT | Core, app1, app1-bu | Local LLM |
| **Open WebUI** | MIT | app1 | LLM chat UI |
| **n8n** | Sustainable Use License | app1 | Workflow automation |
| **Twenty CRM** | AGPL | Core | Customer CRM |
| **DocuSeal** | AGPL | Core | Document signing |
| **SearXNG** | AGPL | Core | Private search |
| **Vaultwarden** | GPL | Core | Password manager |
| **Komodo** | GPL | Core | Docker management |
| **LiteLLM** | MIT | old-ai (→ app1) | LLM proxy |
| **Qdrant** | Apache 2.0 | old-ai | Vector DB |
| **UISP/UNMS** | Proprietary | app2 | ISP management |
| **UCRM** | Proprietary | app2 | Customer management |
| **Ollama Models** | Various | Core, app1, old-ai | LLM weights |
| **Redis** | BSD | Core | Cache |
| **PostgreSQL** | PostgreSQL | Core, app1, app2 | Databases |
| **WordPress** | GPL | wphost02 (→ app3) | Web content |
| **WooCommerce** | GPL | wphost02 | E-commerce |
| **WPForms** | GPL | wphost02 | Form builder |
| **BlogWatcher** | — | Core cron | RSS monitoring |
| **Lynis** | GPL | Core | Security auditing |
---
## Domains & DNS
| Domain | Registrar | DNS | Purpose |
|---|---|---|---|
| itpropartner.com | — | Cloudflare | Primary |
| germainebrown.com | — | MXroute | Email |
| debtrecoveryexperts.com | — | Cloudflare | DRE |
| apextrackexperience.com | — | SiteGround/Cloudflare | Apex |
| iamgmb.com | — | MXroute | Boys' email |
| voipsimplicity.com | — | Cloudflare | VoIPSimplicity |
| tailc2f3b0.ts.net | — | Tailscale | Tailnet DNS (internal) |
---
## Backup & DR
| Backup | Schedule | Location | Retention |
|---|---|---|---|
| Hermes full backup | Daily 5 AM | s3://hermes-vps-backups/hermes-full-backup/ | — |
| Hermes live state | Every 15 min | s3://hermes-vps-backups/live/ | Rolling |
| Router config (home) | Daily 6 AM | s3://mikrotik-ccr-backups/ | — |
| Root essentials | Daily | S3 | — |
| Hetzner snapshots | Weekly Mon | Hetzner Cloud | — |
**DR Standby:** app1-bu (Hetzner) boots and auto-restores from S3 if Core is down for 2+ minutes.
---
## Email Accounts
| Address | Provider | Server | Purpose |
|---|---|---|---|
| email@redacted | MXroute | mail.germainebrown.com | Germaine's primary |
| email@redacted | MXroute | mail.germainebrown.com | Sho'Nuff's outbox |
| email@redacted | SiteGround | c1113726.sgvps.net:2525/993 | Apex business |
| email@redacted | MXroute | — | DRE client-facing |
| email@redacted | MXroute | — | DRE debtor-facing |
| email@redacted | MXroute | — | Garrison Brown |
| email@redacted | MXroute | — | Greyson Brown |