north_os ยท implementation plan2026-07-07

North OS Dev Server Migration Implementation Plan

For agentic workers: REQUIRED SUB-SKILL: Use superpowers:executing-plans for inline execution. This plan touches one live host and should be executed sequentially.

Goal: Convert kwiss-cosmictaco into the North OS interactive dev server with /home/kwiss/workspace/north-os and wildcard DNS routing for *.dev.heynorth.dev.

Architecture: Stop but preserve MAAF so host ports 80/443 are free. Install standard Caddy, generate explicit per-project hostnames from /home/kwiss/workspace/*/.devproxy.json, copy North OS into ~/workspace/north-os, and run the dev stack in tmux. Caddy issues normal per-host certificates via HTTP-01; no Cloudflare API token or wildcard certificate is required.

Tech Stack: Ubuntu 24.04, Tailscale SSH, Docker Compose, Bun 1.3.10-compatible runtime, Caddy 2.x, Python 3 for devproxy-sync, systemd timer, tmux.

Global Constraints

File / artifact map

PathActionResponsibility
/home/kwiss/workspaceCreate remote dirRoot for interactive dev projects.
/home/kwiss/workspace/north-osCreate/copy remote repoNorth OS working tree.
/usr/local/bin/devproxy-syncCreate remote scriptScans workspace and writes generated Caddy routes.
/etc/caddy/CaddyfileCreate/replace remote configCaddy global config and import root.
/etc/caddy/sites.d/devproxy.generated.caddyfileGenerated remote fileWorkspace route table.
/etc/systemd/system/devproxy-sync.serviceCreate remote unitRuns the sync script once.
/etc/systemd/system/devproxy-sync.timerCreate remote timerRuns sync every minute.
/var/www/dev-fallback/index.htmlCreate remote pageFallback when no local dev process is running.
/opt/maaf/docker/docker-compose.prod.ymlRead/operate onlyStop MAAF without deleting data.

Task 1: Preflight and snapshot current server state

Status: already executed during this session. Backup directory: /home/kwiss/migration-backups/dev-server-2026-07-07.

Observed: host PostgreSQL is active but only default databases exist: postgres, template0, template1.

Task 2: Disable MAAF without deleting data

Files: operate on /opt/maaf/docker/docker-compose.prod.yml.

Produces: host ports 80/443 free for Caddy; MAAF rollback remains possible.

Task 3: Install standard Caddy

Files: create/modify /etc/caddy/Caddyfile and Caddy package/service files.

Produces: Caddy can serve explicit generated hosts such as north-os-web.dev.heynorth.dev.

Task 4: Install devproxy-sync and fallback page

Files: create /usr/local/bin/devproxy-sync, /var/www/dev-fallback/index.html, systemd service/timer.

Task 5: Copy North OS to workspace and install dependencies

Task 6: Start Caddy and generate routes

Task 7: Boot North OS dev stack in tmux

Task 8: DNS and end-to-end verification

Task 9: Final hardening

Self-review checklist