CalendarMonday, March 23, 2026
1 file ยท 409 words
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
- Full backend API (14 controllers, 8 services, dual auth middleware)
- Frontend dashboard with gold terminal HUD theme (matching auth/pipeline/vaultguard)
- VectrForce Auth integration (app slug: internal-server-manager)
- Service management (register, start/stop/restart, logs, deploy)
- Port registry (collision-proof, ranges: backend 5500-5999, frontend 3300-3999)
- Nginx config management across multiple servers
- Service discovery (scan servers, import existing services)
- Cloudflare DNS integration (vectrforce.ai + durhamchristian.com)
- AI Chat panel (OpenClaw, floating global panel)
- ESXi VMware integration (VMs, storage, snapshots, host stats)
- Downloads page for APK distribution
- Local server support (no SSH needed)
- 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