โ† 2026-03-22
Calendar

Monday, March 23, 2026

1 file ยท 409 words

2026-03-24 โ†’

2026-03-23 โ€” ISM v2 Build Day

What We Built Tonight

  • ISM v2 โ€” Internal Server Manager, from scratch in one session
  • Location: /home/jarvis/projects/ism-v2/
  • Live at: https://ism.vectrforce.ai
  • Stack: .NET 10 API + Next.js 16 + PostgreSQL + VectrForce Auth

Features Shipped

  1. Full backend API (14 controllers, 8 services, dual auth middleware)
  2. Frontend dashboard with gold terminal HUD theme (matching auth/pipeline/vaultguard)
  3. VectrForce Auth integration (app slug: internal-server-manager)
  4. Service management (register, start/stop/restart, logs, deploy)
  5. Port registry (collision-proof, ranges: backend 5500-5999, frontend 3300-3999)
  6. Nginx config management across multiple servers
  7. Service discovery (scan servers, import existing services)
  8. Cloudflare DNS integration (vectrforce.ai + durhamchristian.com)
  9. AI Chat panel (OpenClaw, floating global panel)
  10. ESXi VMware integration (VMs, storage, snapshots, host stats)
  11. Downloads page for APK distribution
  12. Local server support (no SSH needed)
  13. Custom logo/favicon generated

Infrastructure Imported

  • 3 servers: jarvis-local, dev-server (192.168.237.7), public-facing-server (vpn.durhamchristian.com)
  • 8 services registered with port allocations
  • 42 nginx configs imported across all servers

ISM Credentials

  • API Key: ism_v2_NeBHFblQE99BF0CBqHy8aEy3ikBdCcqGj0WZBOLDxf4
  • VectrForce Auth API Key: ZtbMUPsfy2cP-b5lstGVSQn5Ip3sQ3xAHZcDJZRgjnvkz16WXSl0L-h4A2dRh4VC
  • DB: PostgreSQL ism_v2 (user: ism, pass: ism_secure_2026)
  • Systemd: ism-v2-api (port 5500), ism-v2-web (port 3300)

In Progress

  • Android APK build โ€” Gradle still compiling (session: nova-basil). When it finishes, copy to /home/jarvis/projects/ism-v2/downloads/ism-v2.apk
  • MXRoute/DirectAdmin email integration โ€” Paused. Jason uses DirectAdmin at heracles.mxrouting.net. Resume tomorrow with: what's the DA URL and account level?

Bugs Fixed During Session

  • Login: field name login not email, no app_slug in body
  • Introspection: app_slug (snake_case), response fields needed JsonPropertyName attributes
  • VaultGuard catch-all nginx overriding ISM
  • Enum serialization: frontend snake_case vs backend camelCase
  • Discovery page: API returns {services,ports,nginxConfigs} not {items}
  • Audit page: e.map crash on paginated response
  • Settings/Ports pages: missing endpoints
  • .env.local overriding .env.production
  • Root package-lock.json confusing Next.js build

Skill & Spec Created

  • ISM Skill: ~/.openclaw/workspace/skills/ism/SKILL.md
  • OpenAPI spec: /home/jarvis/projects/ism-v2/openapi.yaml
  • ISM added to TOOLS.md

Old ISM v1

  • Disabled (ism-backend, ism-frontend services stopped)
  • Project at /home/jarvis/projects/ServerSiteManager/ (Jason's original)

Company Website Now on Local Server (ISM-managed)

  • Jason confirmed the website is running locally as ISM service vectrforce-website
  • URL: https://vectrforce.ai | Port 3500 | .NET | systemd: vectrforce-website
  • Project dir: /home/jarvis/projects/vectrforce-website
  • POLICY CHANGE: Jarvis and Webster now have full access to make direct code changes
  • Old "brief-only" rule retired โ€” updated TOOLS.md, Webster's TOOLS.md, MEMORY.md, and AGENTS.md