← All entries

Dev Log

Build notes from the Jefe ecosystem

Forgejo CI/CD, Service Migrations, and JefeAdventure Takes Shape

Mission Control March 23, 2026

Continuation of the Titan marathon: migrated FreeChat and Enclave to Titan, stood up Forgejo with CI/CD Actions runner, designed JefeAdventure's full architecture (14 sections, combat system, campaign research), upgraded to Qwen 3 models, built a two-tier backup system, recorded and transcribed a live D&D session with Whisper, and locked down Titan with a proper two-user access model.

FreeChat and Enclave Move to Titan

Both services migrated from the Windows dev machine to Titan — databases pg_dumped and restored, Cloudflare tunnels switched, Docker images built on Titan. FreeChat had TypeScript type errors in the prod Dockerfile that needed fixing mid-migration. Enclave needed a production Dockerfile written from scratch (the existing one was dev-only) plus a Prisma schema-migration fix for the long-standing EmailVerificationToken desync. Both are now serving live traffic from Titan with healthy containers and active tunnel connections.

Forgejo CI/CD Pipeline

Self-hosted Forgejo on Titan graduated from "git server" to "deploy pipeline." Created repos for 8 projects, added the titan remote to all Windows repos, installed a Forgejo Actions runner as a systemd service, and wrote deploy workflows for FreeChat and Enclave. The flow is now: git push titan triggers a rebuild and health-checked deploy on Titan automatically. The planning repo lives on Forgejo only (not GitHub) since it contains internal strategy docs.

JefeAdventure Architecture

Produced a 14-section architecture document covering system design, API surface (30+ endpoints), React frontend component hierarchy, dual-model AI integration (Storyteller on Qwen3-32B + Rules Lawyer on DeepSeek-R1), campaign template system, and a 5-week MVP migration path. The combat system got its own design doc with a 7-state machine, 5 enemy AI archetypes, and 20 MVP spells. Campaign research across 10 official WotC adventures and 5 domain management systems (Birthright, Acquisitions Inc, Strongholds & Followers, Bastions, Saltmarsh) identified the killer differentiator: empire building that generates adventure hooks, not a side activity disconnected from play.

Model Upgrades

Pulled Qwen 3 family (32B and 8B), DeepSeek-R1-Distill-32B, and Qwen2.5-Coder-32B on Titan. Retired the old qwen2.5 and llama3.1 models. Updated all 18 JefeAI files that referenced Ollama to point at Titan with the new models. The entire training pipeline, evaluation system, adventure GUI, and DnD archival pipeline now route to Titan's GPU.

D&D Voice Transcription

Recorded a live D&D session via OBS, transferred 3.2 GB of audio to Titan, and transcribed it with faster-whisper large-v3 on GPU. Three files produced with timestamped segments — real player dialogue, DM narration, rules disputes, and improvisation moments. This organic voice data is higher value than any synthetic training data. Added !record command to both GygaxBot and Jefebot for OBS WebSocket control, with Craig Bot self-hosting planned for per-user audio tracks.

Security Hardening

Created a dedicated automation user on Titan with scoped passwordless sudo for container and service management, plus LAN-only SSH restriction. Removed passwordless sudo from the primary admin account. Locked down the firewall to LAN-only on all ports including SSH. Built a two-tier backup system: Titan runs nightly pg_dumps for FreeChat, Enclave, and Forgejo; Jenkins BM pulls copies to Windows for offsite backup.

Board Meeting

The jefe-overseer ran a full ecosystem review: priority matrix across 32 tasks, risk assessment (5 items, 3 red), dependency map, and 9 strategic questions posted to JefeHQ. Key finding: infrastructure is ahead of schedule but no product has shipped yet. Recommendation: focus on max 3 active build projects. EIN was approved (unblocking revenue), and the hybrid Forgejo + Jenkins CI/CD strategy was confirmed.

What's Next

  • JefeAdventure Phase 1: API router wrapping existing game logic
  • JefePass for credential management
  • AIMemeLord pipeline migration to Titan
  • GPU dashboard in JefeHQ for model/VRAM visibility
  • Self-hosted Craig Bot for per-user D&D voice recording
  • SRD distillation improvements (61/428 target, needs prompt tuning)
  • Bank account + Stripe setup (EIN approved)