6.6 KiB
6.6 KiB
Services Inventory
Production server: 15.204.247.153
Migration complete. The source DigitalOcean VPS (
hyperthrive-docker-services, 161.35.12.75) was deleted on 2026-06-24. Services originating from that VPS now run solely on this OVH host with no DigitalOcean fallback. ("Deployed: Previous" entries were migrated from the old VPS in earlier sessions.)Exception — remetrics:
remetricsandstrapi-remetricswere migrated on 2026-06-24 from a separate DigitalOcean web droplet (147.182.131.217). That droplet is currently frozen and kept as a short-term rollback (NOT deleted) pending decommission — it is the only remaining DigitalOcean fallback.
Active Services
n8n (Hyperthrive Production)
- Status: Running
- Domain: n8n.hyperthrive.io
- Port: 5678 (internal), exposed via Traefik HTTPS
- Docker Network: traefik, internal
- Container Image: docker.n8n.io/n8nio/n8n:1.71.3
- Database: PostgreSQL 16 (local service_postgres)
- Storage: Named volume n8n_storage
- Key Environment Variables:
- N8N_HOST=n8n.hyperthrive.io
- N8N_PROTOCOL=https
- EXECUTIONS_DATA_MAX_AGE=72
- NODE_ENV=production
- Special Features:
- Community packages enabled
- Webhook support via HTTPS
- MCP route support with no-buffer middleware
- Health check enabled
- Traefik Config:
- Main route: Host(n8n.hyperthrive.io) && !PathPrefix(/mcp)
- MCP route: Host(n8n.hyperthrive.io) && PathPrefix(/mcp) with custom buffering headers
- Deployed: 2026-05-14
n8n-test (Hyperthrive Testing)
- Status: Running
- Domain: testn8n.hyperthrive.io
- Port: 5678 (internal), exposed via Traefik HTTPS
- Docker Network: test_n8n_internal, traefik
- Container Image: docker.n8n.io/n8nio/n8n:latest
- Database: PostgreSQL 16 (local service_postgres)
- Storage: Named volume test_n8n_storage
- Key Environment Variables:
- N8N_HOST=testn8n.hyperthrive.io
- N8N_PROTOCOL=https
- EXECUTIONS_DATA_MAX_AGE=72
- NODE_ENV=production
- Purpose: Testing and staging environment for n8n workflows
- Traefik Config:
- Route: Host(testn8n.hyperthrive.io)
- Deployed: 2026-05-14
n8n-swanson (Personal n8n Instance)
- Status: Running
- Port: 5678
- Container Image: n8nio/n8n:latest
- Purpose: Personal/Jared's n8n instance
- Deployed: Previous
Vaultwarden
- Status: Running
- Purpose: Password manager and vault
- Deployed: Previous
Invoice Ninja
- Status: Running
- Purpose: Invoicing and billing system
- Deployed: Previous
NocoDB
- Status: Running
- Purpose: No-code database platform
- Deployed: Previous
LandHomeTeam
- Status: Running
- Purpose: Business-specific application
- Deployed: Previous
BestSolarTech
- Status: Running
- Purpose: Business-specific application
- Deployed: Previous
Forgejo
- Status: Running
- Purpose: Git repository platform
- Deployed: Previous
Traefik
- Status: Running
- Purpose: Reverse proxy, SSL termination, routing
- Version: v3.0+
- Deployed: Previous
Watchtower
- Status: Running
- Purpose: Automated container updates
- Deployed: Previous
remetrics (Rails Application)
- Status: Running
- Domain: remetrics.io, www.remetrics.io
- Port: 3000 (internal), exposed via Traefik HTTPS
- Docker Network: traefik, internal
- Service Directory: ~/services/remetrics/
- Containers:
remetrics-remetrics-1— Rails web, imageremetrics-web:staging-bakedremetrics-worker-1— Sidekiq worker, imageremetrics-worker:staging-bakedremetrics-db-1— PostgreSQL (dbremetrics_production, userestatioro)- redis (job queue / cache)
- Database: PostgreSQL —
remetrics_production(480 users migrated, zero data loss) - Traefik Config:
- Routers for remetrics.io / www.remetrics.io use
certresolver=cloudflare(ACME DNS-01)
- Routers for remetrics.io / www.remetrics.io use
- Notes:
- Web and worker images are baked to be GitHub-independent at boot (no
bundle install/ no git fetch at startup). - The Rails app fetches CMS content from a HARDCODED URL
https://cms.remetrics.io(in app sourcestrapi/article.rbandhelp_page.rb) — NOT env-configurable. - Sitemap refresh cron on OVH:
~/services/remetrics/sitemap_refresh.shat 01:00 (replaces a broken DO cron that referenced a non-existent container).
- Web and worker images are baked to be GitHub-independent at boot (no
- Migration: From DigitalOcean web droplet 147.182.131.217 (frozen rollback, not deleted)
- Deployed: 2026-06-24 (migrated from DigitalOcean)
strapi-remetrics (Strapi CMS)
- Status: Running
- Domain: cms.remetrics.io
- Port: 1337 (internal), exposed via Traefik HTTPS
- Docker Network: traefik
- Service Directory: ~/services/strapi-remetrics/
- Container:
strapi-remetrics - Database: SQLite (local)
- Storage: Media stored on GCS bucket
remetrics-strapi - Traefik Config:
- Router for cms.remetrics.io uses
certresolver=cloudflare(ACME DNS-01)
- Router for cms.remetrics.io uses
- Notes:
- This is the CMS that the Rails
remetricsapp reads from via the hardcodedhttps://cms.remetrics.ioURL. strapi.remetrics.io(a legacy hostname) remains on the old DO box and is dead/unused — NOT served from OVH.
- This is the CMS that the Rails
- Migration: From DigitalOcean web droplet 147.182.131.217 (frozen rollback, not deleted)
- Deployed: 2026-06-24 (migrated from DigitalOcean)
Automation & Utilities
backup.sh
- Location: ~/services/backup.sh
- Purpose: Automated backup of all service data (auto-discovers all services)
- Schedule: Nightly at 02:00 EST (07:00 UTC)
- See Disaster Recovery for restore procedures
container-health-monitor.sh
- Location: ~/services/container-health-monitor.sh
- Purpose: Health monitor for BestSolarTech containers only (misleading name — not server-wide)
- Schedule: Every 10 minutes
- See Health Monitoring for coverage details and gaps
daily-maintenance.sh
- Location: ~/services/daily-maintenance.sh
- Purpose: Daily maintenance for BestSolarTech only (misleading name — not server-wide)
- Schedule: Daily at 04:30 EST (moved from 03:00 on 2026-06-25 to de-collide from Watchtower)
Known Gaps
mailpace.env — UNDOCUMENTED
- Location:
~/services/mailpace.env(in the~/services/root) - An environment file for MailPace transactional email exists but no container is documented as using it.
- TODO: Identify which service(s) consume this env file and add them to the inventory. MailPace may be referenced by an existing service's compose file via a path like
env_file: ../mailpace.env.