P24-Infra Infrastructure Evaluation — June 2026

Produced: 2026-06-14 · Claude Code autonomous evaluation (5 parallel agents) Working directory: C:\code_2026\p24-infra

This directory contains the full infrastructure evaluation for the p24-infra / Ecotrans / Pinbox24 platform.


Documents

#DocumentScopeSize
00Documentation Audit + StandardsDoc consistency, stale docs, gaps, proposed standard~8 KB
01Service Inventory + Distribution PlanFull service catalog, vps-h1 load, bms-4 expansion, PDF services~15 KB
02BMS Servers Modernization PlanPhased roadmap bms-1 to bms-4, 32 issues P1–P4~45 KB
03AI-Dev-BMS4 + Nightly Ops + MongoDBAgent design, nightly checklist, MongoDB maintenance~68 KB
04Pinbox24 Map + DR Audit + Workbook AuditInfrastructure map, DR score 2/10, backup gaps~20 KB

Executive Summary

Critical Findings (Act Now)

#FindingRiskDocument
C1MongoDB backup last: February 2026 — 4+ months staleData loss up to 4 months if bms-3 fails04
C2bms-1 disk 100% full — Pinbox24 production serverProduction crash or data corruption imminent02
C3Untagged Docker images on bms-1 (v41-prod, v32-prod-socket, v32-prod-reso)If containers stop, cannot be restarted (images lost)04
C4rs.addArb() for bms-4 still pendingMongoDB rs0 has only 1 voting member + observer; no quorum resilience02
C5bms-1 Ubuntu 20.04 EOL since April 2025No security patches for 14+ months on production server02
C6bms-3 MongoDB using ~21.7 GB RAM on 32 GB serverOOM kill risk; rs0 PRIMARY could be lost02
C7vps-h1 critically overloaded (n8n at 1.5/2.0 vCPU)n8n + WAHA reliability at risk; WAHA = WhatsApp incidents01

Today’s Required Human Actions

  1. Export untagged bms-1 images to Wasabi NOW — before any container restart/update
  2. Run MongoDB dump on bms-3 NOWmongodump --out /tmp/dump-$(date +%Y%m%d) + upload to Wasabi
  3. Disk cleanup on bms-1 — identify & remove old container layers, logs, tmp files
  4. Locate MongoDB admin credentials — required for rs.addArb() and all MongoDB maintenance
  5. Execute rs.addArb("54.36.123.110:27017") and rs.remove("51.83.132.99:27017") on bms-3

Infrastructure Overview (Current State)

Servers

LabelIPOSRoleStatus
vps-i1217.154.82.162AlmaLinux 9.7Monitoring stack (Prometheus+Grafana+Thanos+Alertmanager), Traccar, OpenClaw, GH Actions runner, AI-Dev-IO1✅ Stable
vps-h172.60.32.61Ubuntu 24.04Traefik, n8n+PG, WAHA, exporters, promtail⚠️ Overloaded — n8n migrating to bms-4
bms-194.23.26.113Ubuntu 20.04 EOLPinbox24 production (24 containers v31/v32/v41/v42)🔴 Critical — disk full + EOL
bms-2145.239.133.104Ubuntu 24.04MongoDB rs0 observer (non-voting) + AI-Dev-OV1✅ Good
bms-351.68.155.224Ubuntu 22.04MongoDB rs0 PRIMARY + Pinbox24 staging + traccar + mt5⚠️ OOM risk, dual-purpose
bms-454.36.123.110Ubuntu 22.04MongoDB arbiter + Docker host (n8n migration target)✅ New — tasks pending

SaaS

ServicePurposeStatus
Supabase (mwkqmgadqnkkihjdeqsi)et-operational-platform DB + audit engine✅ Active
Vercelet-operational-platform (prod+staging), p24-nextjs-v2026, portal✅ Active
CloudflareDNS (zintegrowana.online), CF Workers (waha-router)✅ Active
Wasabi S3 (p24-infra, eu-central-2)Thanos metrics, PDF storage, backups✅ Active
Convertio.aiPDF→image conversion for Pinbox24⚠️ External SaaS — scheduled replacement
AWS ECRPinbox24 production container registry✅ Active
Mailgun EUEmail alerts (Alertmanager)✅ Active

Priority Roadmap

Phase 1 — Critical Security (This Week)

TaskServerOwnerNotes
Export untagged images → Wasabibms-1HumanCannot be automated — images are untagged
Run MongoDB dump + upload Wasabibms-3HumanFirst real backup in 4+ months
Disk cleanup on bms-1bms-1Claude/Humandocker system prune safe on non-prod layers; check with human before prod containers
Set up automated MongoDB backupbms-2AI-Dev-OV1Daily mongodump + rsync to Wasabi s3://p24-infra/mongodb/
Run rs.addArb() / rs.remove()bms-3 (mongosh)HumanNeeds MongoDB admin password
Ubuntu 20.04 EOL migration planbms-1Plan sessionZero-downtime requires containerized migration strategy
MongoDB RAM alert in Prometheusvps-i1AI-Dev-IO1Alert when bms-3 RAM < 2 GB free

Phase 2 — Stability (Next 2 Weeks)

TaskServerNotes
Add bms-2 + bms-3 to Prometheusvps-i1node-exporter must be installed on bms-3 first
Set MongoDB wiredTigerCacheSizeGB: 16bms-3Limit cache to prevent OOM; needs mongod restart
n8n migration vps-h1 → bms-4bms-4See migration checklist in bms-4 workbook
Deploy bms-4 docker-composebms-4scp bms-4/docker-compose.yml root@54.36.123.110:/root/
WAHA migration vps-h1 → bms-4bms-4After n8n stable; update webhook URLs
Portainer upgrade (v1 → v2)bms-1Portainer CE v1 is EOL
MongoDB firewall: close port 27017 externallybms-2/3/4Only inter-replica and admin access needed

Phase 3 — Hardening (This Month)

TaskServersNotes
Install fail2ban + SSH hardeningbms-1/2/3/4See docs/improvements/09-ssh-hardening.md
Enable unattended-upgradesbms-1/2/3/4Security patches only
Trivy CVE scanningAllWeekly scan via GH Actions
Create claude-admin user on bms-3/4bms-3/4For AI agent SSH access
Install AI-Dev-BMS4 agentbms-4See 03-nightly-ops-and-mongodb.md §1–5
Nightly operations automationbms-4/GH ActionsSee 03-nightly-ops-and-mongodb.md §6–13
Register all Pinbox24 services in dev_r_servicesSupabaseSee 04-pinbox24-map-dr-audit.md §14

Phase 4 — Modernization (Next Quarter)

TaskNotes
bms-1 Ubuntu 20.04 → 24.04 migrationZero-downtime: new server + DNS cutover strategy
bms-3 Ubuntu 22.04 → 24.04 (before April 2027 EOL)Maintenance window required; MongoDB failover first
bms-4 Ubuntu 22.04 → 24.04Simplest — least traffic
Docker registry consolidationprivate-registry.dev.pinbox24.com location TBD
PDF services on bms-4Gotenberg + pdf-to-jpg microservice replacing Convertio.ai
vps-h1 decommissionAfter n8n + WAHA migrate to bms-4; saves ~10€/month

Documentation Gaps (from Audit)

Immediate Fixes Needed

  1. Update CLAUDE.md bms-4 entry — still says “Not provisioned”
  2. Update docs/elements.md — add all 4 BMS servers, MongoDB rs0, bms-4 services
  3. Delete duplicate docs/p4-ovh-bms-1-ns367522-operations.md (keep docs/servers/ version)
  4. Fix docs/standards/project-standards.md — remove references to deprecated services/compliance-matrix.yml
  5. Archive docs/infrastructure-overview.md — severely stale, create fresh overview

Missing Workbooks (by priority)

PriorityServiceNotes
P1MongoDB rs0 operationsCritical 3-node replica set, zero documentation
P1Pinbox24 production (bms-1)24-container production system with no DR runbook
P2n8n on bms-4After migration from vps-h1
P2Convertio.ai replacement (pdf-to-jpg)New service to be deployed
P2MT5 on bms-3Unknown purpose, no docs
P3WAHA on bms-4After migration
P3AI-Dev-BMS4 agentAfter installation

Service Distribution — Target Architecture

┌─────────────────────────────────────────────────────────────────────┐
│                    TARGET ARCHITECTURE (post-migration)             │
├──────────────┬──────────────────────────────────────────────────────┤
│   vps-i1     │ Monitoring (Prometheus+Thanos+Grafana+Alertmanager)  │
│  IONOS 8GB   │ Caddy TLS · Traccar GPS · OpenClaw                  │
│  AlmaLinux   │ GH Actions runner · AI-Dev-IO1                       │
├──────────────┼──────────────────────────────────────────────────────┤
│   vps-h1     │ → DECOMMISSION after WAHA migration                 │
│ Hostinger 8G │   (saves ~10€/month)                                │
├──────────────┼──────────────────────────────────────────────────────┤
│   bms-1      │ Pinbox24 production (v31/v32/v41/v42)               │
│  OVH 32GB    │ nginx-proxy · portainer · mailgun                   │
│  → Ubuntu24  │ pdf-gen · wkhtml · git-deploy · AWS ECR             │
├──────────────┼──────────────────────────────────────────────────────┤
│   bms-2      │ MongoDB rs0 SECONDARY (observer, non-voting)        │
│  OVH 32GB    │ AI-Dev-OV1 (4 Claude agents)                        │
│  Ubuntu 24   │ MongoDB backup runner                                │
├──────────────┼──────────────────────────────────────────────────────┤
│   bms-3      │ MongoDB rs0 PRIMARY                                  │
│  OVH 32GB    │ Pinbox24 staging · traccar · mt5                    │
│  → Ubuntu24  │ (staging should move to bms-4 long-term)            │
├──────────────┼──────────────────────────────────────────────────────┤
│   bms-4      │ MongoDB rs0 ARBITER (~75 MB)                        │
│  OVH 32GB    │ Traefik TLS · n8n + PostgreSQL (migrated from h1)  │
│  1.8TB disk  │ WAHA WhatsApp (migrated from h1)                    │
│  Ubuntu 22   │ Gotenberg + pdf-to-jpg (new — replaces Convertio)  │
│              │ AI-Dev-BMS4 (Claude agent, max 4 parallel)          │
│              │ node-exporter · cadvisor                            │
└──────────────┴──────────────────────────────────────────────────────┘

Key Risks

RiskLikelihoodImpactMitigation
bms-1 disk full → production crashImminentCriticalEmergency cleanup + disk expansion
bms-3 OOM → MongoDB PRIMARY lostHighCriticalSet WiredTiger cache limit NOW
Untagged images lost on restartHighHighExport to Wasabi immediately
MongoDB 4+ month data loss on bms-3 failureHighCriticalAutomated daily backup NOW
vps-h1 n8n crash takes down WAHAMediumHighAccelerate bms-4 migration
bms-1 security breach (Ubuntu 20.04 EOL)MediumCriticalMigration plan + WAF in front
rs0 quorum loss if arbiter not joinedCurrentHighHuman action: rs.addArb()

Generated by Claude Code (5 parallel evaluation agents) · 2026-06-14