Deploy spatial-office on n97 — NixOS module + nginx + os.scoble.me/office #10
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Get the spatial-office running as a systemd service on n97, accessible at
https://os.scoble.me/office.Steps
spatial-office.nixmodule into/etc/nixos/configuration.nixwithservices.spatial-office.enable = true/officeserves the frontend static filesspatial-office.nixin the repo has some issues — nginx vhost collision, hardcoded paths)Technical Notes
spatial-office.nixconflicts with itself on nginx vhosts — needs cleanupflake.nix(lines ~150-250) is better structured but references flake packages — need to make it work as a standalone importsrc/frontend/dist— the module should point to the nix-built frontend output/wsneeds nginx proxy WebSocket upgrade supportws://localhost:18790— for production behind nginx, it should use relative WS URL or detect the hostDeliverable
Updated NixOS configuration on n97 with spatial-office running, accessible at os.scoble.me/office.
Triage (2026-05-24): Keep Open — Needs Real Work
No progress has been made on deployment. Requirements per issue body:
spatial-office.nixmodule into/etc/nixos/configuration.nix/officews://localhost:18790Keeping open — needs NixOS deployment work.
🤖 CoS dispatch cycle: Unassigned after 123h idle. Ready for re-dispatch.
🤖 CoS dispatch cycle: Subagent timed out after 600s. Partial work may have been done. Ticket unassigned and returned to ready queue.
🤖 CoS dispatch cycle: Subagent timed out after 600s (infrastructure task — nginx / nixos-rebuild). Partial work may have been done. Ticket unassigned and returned to ready queue.
Deployment status update
What was live already before this run:
spatial-officesystemd service running (pid 2902480), listening on0.0.0.0:18790/srv/spatial-office/populated with built frontend (/nix/store/227dk1x7n8b15iljss6xiwn7jnn05m4w-spatial-office-frontend)/etc/nixos/modules/spatial-office.niximported andservices.spatial-office.enable = truewired inos.scoble.mevhost already has/office/,/office/ws, and/office/assets/locations inmeos-gateway.nixWhat I verified/fixes applied:
/office/serves built frontend HTML (confirmed viacurl https://os.scoble.me/office/→ 200)/office/wsworks (confirmed via websocat → receivedstate.fullpayload)/office/assets/,/office/sprites/,/office/tiles/,/office/agents/)nixos-rebuild switch --flake '/etc/nixos#n97-mini' --impurecompleted successfully (needed--impurebecausespatial-office.nixreferences absolute paths in/home/sscoble/.openclaw/)networking.firewall.allowedTCPPorts = [ cfg.port ])Frontend/WS client code in repo:
packages/frontend/src/WebSocketClient.jsauto-detectswss:///ws://from current host and uses/office/ws— already production-correct.Observed non-blocking issue:
Bridge error: connect ECONNREFUSED 127.0.0.1:18789(OpenClaw gateway missing). The service handles this gracefully; it runs in mock/demo mode when bridge is unavailable.WS_PORTnotPORT, but module sets both so service listens correctly.nix-shell -p websocatis available for ad-hoc WS testing (not in system packages yet).Conclusion: spatial-office is deployed and accessible at
https://os.scoble.me/office. All acceptance criteria in the ticket are met.agent-engineering completed deployment: spatial-office is live at https://os.scoble.me/office (verified via curl — frontend loads, static assets serve, WebSocket WS endpoint configured).