Initial resurrection kit — 81 scripts, 62 references, configs, systemd units, crons, Docker compose files, Caddy config, master README
This commit is contained in:
@@ -0,0 +1,340 @@
|
||||
# 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 |
|
||||
Reference in New Issue
Block a user