Skip to content

Architecture

StupidCloud is designed around a central controller and a set of node agents. The controller holds the desired configuration and assigns work; nodes apply that work on their hosts and report their current state.

The controller is the coordination point. Its planned responsibilities include scheduling, user and template management, the API, and management interfaces. It should be the source of truth for the desired state of the cluster.

A node agent runs on each managed host. It communicates with the controller, creates and manages server containers through Docker, and reports results and state back to the controller.

The project plans SSH based CLI and TUI access through the controller, plus a separate web interface. These interfaces should use the same controller APIs and operations.

The current target design uses gRPC and Protocol Buffers for internal controller to node communication, a REST API for web clients, WebSockets for live updates, and PostgreSQL for persistent data. These are plans and may change as implementation progresses.