# Project Log — All Completed Projects ## 2026-07-20 ### Ops Portal Audit and Overhaul - Full audit of all 11 pages, 7 API endpoints, and 5 dashboard widgets - Fixed 15 bugs: auth guards, cache-busting, mobile nav, page titles, missing icons, data keys - Added 3 new widgets: Wazuh Security, Bitdefender GravityZone, Alerts and Notifications - Standardized credentials: ippadmin (password → Vaultwarden / `~/.hermes/.env`) - Added critical service protection (hermes/caddy/ops-portal restart blocked via API) - Server list cleaned up (7→5), dependency diagram fixed, config page scripts listing ### Backup-Restore Enhancements - Added manual backup with domain dropdown and note field - Added restore history logging with formatted 4-column table - Fixed Caddy routing and timeouts (restore was returning 404 via proxy) - Fixed mobile toggle on domain expansion cards - 9 WordPress sites under daily backup (1 AM and 1 PM) ### Docs Written - `/root/projects/ops-portal/README.md` + `CHANGELOG.md` - `/root/projects/backup-restore/README.md` + `CHANGELOG.md` --- ## 2026-07-17 — Backup-Restore Initial Deployment - Flask backup/restore app deployed on app3 (152.53.241.111) - Daily snapshots scheduled at 1 AM and 1 PM - Caddy reverse proxy from my.itpropartner.com - 9 WordPress sites configured ## 2026-07-21 — Home Lab Consolidation ### Proxmox Migration - vm-host-02 VMs migrated/destroyed: graylog, zabbix, fog, Ubuntu-Server - vm-host-01 now hosts: docker-host-01, adguard-home - vm-host-02 cleared for GPU installation (RTX 3090 pending verification) - QNAP NFS shared storage created (2TB pool, mounted on both Proxmox hosts) ### DNS Infrastructure - Technitium DNS deployed on app2 (dns1.itpropartner.com) - DoH upstreams: Quad9, Cloudflare, Google - Home DNS chain: docker-host-01 AdGuard → dns1 Technitium → vm-host-01 AdGuard - Firewall locked: port 53 restricted to 76.195.7.60 ### Twilio - Toll-free number verification submitted for IT Pro Partner - Use case: customer notifications, appointment reminders, IVR ### Mattermost - Branding configured: IT Pro Partner NOC - Channel structure designed (13 channels) - Mobile push investigation: HPNS required for background notifications ### Gift-a-Roast - Domain giftaroast.com purchased, DNS live (Cloudflare → app1) - ElevenLabs TTS + Deepgram STT keys verified - Architecture: Twilio Voice → STT → AI → TTS → caller ### Uptime Kuma - Backed up (361MB, 25 monitors), updated to latest ### IRS - Name change letter drafted: CG Premier Transport LLC → IT Pro Partner LLC - Georgia Secretary of State filing confirmed ### Skills Updated - 10 skills patched: docker-service-deployment, home-lab-*, server-architecture-plan, twilio-10dlc, vaultwarden-management, voip-portal, hudu, syncromsp, recurring-information-scout ## 2026-08-05 through 2026-08-08 ### Super Search v2.4.0 -- Client-ID Metrics Tracking - Added Starlette middleware to intercept `X-Client-Id` header on every MCP call - Prometheus counters per client (`hermes`, `intelsight`, `dre-osint`, `verdicttank`) and per tool - Metrics exposed at `:8899/metrics`, scraped by Prometheus every 30s - Grafana dashboard "Super Search - Client Tracking" at `/d/ffuktvmgcpkhse` on core:3002 - Super Search binding changed from 127.0.0.1:8899 to 0.0.0.0:8899 for Docker access - UFW rule added: allow 172.17.0.0/16 to port 8899 - Prometheus scrape config added for super-search job at 172.17.0.1:8899/metrics - Docs: `/root/projects/itpp-infrastructure/docs/super-search-v2.4.0-client-tracking.md` ### OSINT Person MCP -- Super Search Integration - Created `/root/docker/osint-person-mcp/super_search.py` MCP client module - Calls Super Search tools via `http://127.0.0.1:8899/mcp` - Mirrors IntelSight pattern for MCP-to-MCP tool delegation - Docs: `/root/projects/itpp-infrastructure/docs/osint-person-super-search-integration.md` ### Ops v1 Retirement - Removed all orphaned `/var/www/ops/*.html`, `css/`, `js/` - Migrated `/var/www/ops/data/` to `/var/www/ops-v2/data/` - Updated Caddy: root redirect `ops.itpropartner.com` to `/v2/` (301) - Updated 8 Python scripts referencing old ops paths - Docs: `/root/projects/itpp-infrastructure/docs/ops-v1-retirement.md` ### Grafana Admin Password Reset - Reset admin password to standard credentials via `grafana-cli admin reset-admin-password` - Grafana running on Core port 3002 (not 3000 as previously documented) ### Moore Sunny Daze / Beach Direct - Built internal product backend (FastAPI on port 8911, Core) for Moore Sunny Daze - Fully documented Beach Direct as a standalone public product - Project docs: `/root/projects/itpp-infrastructure/projects/beachdirect.md` - Internal docs: `/root/projects/mooresunnydaze/docs/beach-direct-project.md` ### Buzz Nostr Relay - Deployed Buzz self-hosted relay on app3 (152.53.241.111) via CloudPanel Docker/Nginx - Live at `https://buzz.iamgmb.com` - Closed-relay membership, Postgres + Redis + MinIO backend - Project spec: `/root/projects/itpp-infrastructure/projects/buzz-agent-integration-spec.md` ### Hermes Mission Control (Planning) - Investigated Sharbel's Hermes Mission Control template (Next.js dashboard + Postgres + Bridge) - Architecture scoped: Dashboard host, Postgres setup, domain selection - Pending user decision on host and domain before build ### Git Structure Audit - Full audit of all 40 Gitea repos + local repos under /root/projects/ - Critical findings: hardcoded credentials in scripts repo, 13.6 MB blob in hermes-skills, missing .gitignore on 33/35 repos - Docs: `/root/projects/itpp-infrastructure/docs/git-audit-2026-08-07.md` ### Grafana Dashboard Auth - Investigated Grafana basic auth plugin for external dashboard access - Generated password hash for Hermes Conduit iOS app dashboard integration ### Infrastructure Gap Assessment - Subagent audit: 65+ services across 5 hosts, identified 12 services with no backup, 14 missing from API list - Duplicate services found: Twenty CRM (Core + App1), SearXNG (Core + App1) - Docs: `/root/projects/itpp-infrastructure/docs/infrastructure-gap-assessment-2026-08-04.md` ## 2026-07-29 ### Village Express — Client Project - Direct client engagement: student transport platform for Savannah family - Built working mockups: client registration form + admin dashboard - Live at https://mockup.iamgmb.com/village-express/ and /admin.html - Deployed: registration form with SCCPSS school dropdown, e-signatures, SMS PIN - Deployed: admin dashboard with 5-page nav, approve/reject, route toggles, SMS broadcast modal, settings - Project proposal written: scope, pricing ($1,500 setup / $497/mo), timeline, Phases 1-3 - Customer email drafted: benefit-focused, sells time savings and simplicity - Both documents in /root/projects/village-express/