The original project ran as a Wails desktop app. The refactor kept the core capabilities but moved desktop events, local state, and file access behind explicit HTTP interfaces so the tool could run in a container.
Project Overview
The Go backend serves static assets, APIs, Cookie sessions, and WebSocket events. The React frontend provides the management UI, while SQLite stores configuration, sessions, and runtime data. Docker builds the frontend and backend into one deployable unit.
The use case is a desktop tool that needs remote access, container deployment, model configuration management, and MCP toolset administration.
Implementation
The backend uses Go net/http as the service boundary. State that used to live implicitly inside the desktop shell is split into persisted configuration, runtime state, and task state. Long-running jobs emit WebSocket events so the frontend can update without polling.
The main principle is to make every desktop-only capability explicit: file operations, task state, MCP management, and authentication all become HTTP APIs. The browser keeps presentation and commands only.