Files
itpp-infrastructure/README.md
T
2026-07-15 17:52:56 -04:00

184 lines
5.3 KiB
Markdown

# ITPP Infrastructure Documentation
## Server Inventory
### Core Server
- **Hostname**: core
- **IP**: 152.53.192.33
- **Provider**: netcup RS 2000 G12
- **Specs**: RS 2000 G12 — 8 vCPU EPYC 9645, 16 GB DDR5 ECC, 512 GB NVMe
- **OS**: Debian 13
- **Role**: Primary infrastructure server
- **Key Services**:
- Hermes Agent
- LiteLLM
- Vaultwarden
- Uptime Kuma
- ops-portal
- Super Search MCP
- Cron jobs
### App1 Server
- **Hostname**: app1
- **IP**: 152.53.36.131
- **Provider**: netcup RS 4000
- **Specs**: RS 4000 G12 — 12 vCPU EPYC 9645, 32 GB DDR5 ECC, 1 TB NVMe
- **OS**: Debian 13
- **Role**: Application server
- **Key Services**:
- Ollama
- Open WebUI
- n8n
- Postgres
- Caddy
- SearXNG
### App2 Server
- **Hostname**: app2
- **IP**: 152.53.39.202
- **Provider**: netcup RS 4000
- **Specs**: RS 4000 G12 — 12 vCPU EPYC 9645, 32 GB DDR5 ECC, 1 TB NVMe
- **OS**: Debian 13
- **Role**: Application server
- **Key Services**:
- UNMS
- UniFi Controller (v10.0.162, Docker: jacobalberty/unifi)
- Source: unifi.itpropartner.com (Caddy → localhost:8443)
- Old controller: 178.156.131.57 (v9.5.21) — scheduled to decommission after migration
- Backup: /var/lib/unifi/backup/autobackup/ on old server → S3 daily 2 AM ET via unifi-backup-sync.sh
- Hudu
- Traccar
- Caddy (4 domains)
- Docker
### App3 Server
- **Hostname**: app3
- **IP**: 152.53.241.111
- **Provider**: netcup RS 2000
- **Specs**: RS 2000 G12 — 8 vCPU EPYC 9645, 16 GB DDR5 ECC, 512 GB NVMe
- **OS**: Debian 13
- **Role**: Application server
- **Key Services**:
- WordPress
- Apex Track
### WPHost02 Server
- **Hostname**: wphost02
- **IP**: 5.161.62.38
- **Provider**: RunCloud
- **Role**: WordPress hosting
### App1 Backup Server
- **Hostname**: app1-bu
- **IP**: 5.161.114.8
- **Provider**: Hetzner CPX11
- **Role**: Warm standby for app1
### Old Hudu Server
- **Hostname**: hudu (old)
- **IP**: 178.156.130.130
- **Provider**: Hetzner
- **Role**: Fallback for Hudu (7-day retention)
## Domain/DNS Map
### itpropartner.com
- **DNS Provider**: SiteGround
- **Subdomains**:
- core.itpropartner.com → 152.53.192.33
- hudu.itpropartner.com → 152.53.39.202
- ops.itpropartner.com → 152.53.192.33
- portal.itpropartner.com → 152.53.192.33
- admin-ai.itpropartner.com → 152.53.36.131
- uptimekuma.itpropartner.com → 152.53.192.33
- unifi.itpropartner.com → 152.53.39.202
### fleettracker360.com
- **DNS Provider**: Cloudflare
- **Subdomains**:
- gps.fleettracker360.com → 152.53.39.202 (Caddy)
### forefrontwireless.com
- **DNS Provider**: Unknown
- **Subdomains**:
- unms.forefrontwireless.com → 152.53.39.202 (Caddy)
### debtrecoveryexperts.com
- **DNS Provider**: Cloudflare
- **Subdomains**:
- portal.debtrecoveryexperts.com → 152.53.192.33
- crm.debtrecoveryexperts.com → Cloudflare Access
### iamgmb.com
- **DNS Provider**: SiteGround
- **Subdomains**:
- vault.iamgmb.com
- shark.iamgmb.com
- sign.iamgmb.com
## Backup Pipeline
- **hermes-live-sync**: Every 15 min → s3://hermes-vps-backups/live/
- **hermes-full-backup**: Daily 1 AM → s3://hermes-vps-backups/hermes-full-backup/
- **home-router-backup**: Daily 6 AM → s3://mikrotik-ccr-backups/ (currently empty)
- **unms-backup-sync**: Daily 6 AM
- **hetzner-weekly-snapshots**: Monday 5 AM
- **root-essentials-backup**: Daily 3 AM
- **backup-audit-check**: Daily 2 AM
- **Warm standby**: app1-bu checks Core every 10 min, auto-failover
## Caddy Config
### Core Server
- Proxied paths:
- /vault/
- /n8n/
- /webui/
- /litellm/
### App1 Server
- Proxied domains:
- admin-ai.itpropartner.com
### App2 Server
- Proxied domains:
- hudu.itpropartner.com
- gps.fleettracker360.com
- unms.forefrontwireless.com
- unifi.itpropartner.com
## SSL
All SSL certificates are issued via Let's Encrypt through Caddy. No manual certificate management is required. Certificates auto-renew.
## Service Access
| Service | URL | Location | Notes |
|---|---|---|---|
| Open WebUI | http://ai.itpropartner.com | app1 | User-facing chat UI |
| Open WebUI Admin | https://admin-ai.itpropartner.com/ui | app1 | Admin panel (user: admin, password: LiteLLM master key from /root/docker/litellm/.env) |
| LiteLLM Proxy | https://admin-ai.itpropartner.com | app1 | API gateway for all models |
| Ops Portal | https://ops.itpropartner.com | Core | Internal operations dashboard |
| Uptime Kuma | https://uptimekuma.itpropartner.com | Core | Service monitoring |
| Vaultwarden | https://core.itpropartner.com/vault/ | Core | Password vault |
| n8n | https://core.itpropartner.com/n8n/ | Core | Workflow automation |
| CRM (DRE) | https://crm.debtrecoveryexperts.com | Cloudflare | TwentyCRM (Cloudflare Access) |
### MCP Access from Open WebUI
All app1 MCPs (Super Search, Browser, Filesystem, Email, Git) are wired into Open WebUI's tool system. See [mcp-servers/README.md](../mcp-servers/README.md#access) for details on adding and testing MCPs.
## SSH Access
- **Key**: itpp-infra key on all servers
- **User**: ippadmin (sudo privileges)
- **Root SSH**: Enabled on app1, app2, app3 (key-only exception)
## Firewall
UFW is enabled on all servers. Current rules for app2:
- Allowed ports: 22, 80, 443, 3000, 8080, 8082, 8089, 8443, 8843, 3478, 10001
## Notes
This document is a living record of the ITPP infrastructure. Update it as changes occur.