Architecture

A GameDash installation is a central panel plus any number of nodes. The panel decides what should happen; the nodes carry it out.

The parts

PartRuns whereWhat it does
PanelOne central hostDatabase, web interface, REST API. The system of record.
DaemonEvery nodeManages containers, processes, files and packages on that host.
WrapperEvery nodeSupervises the daemon: installs it, upgrades it, restarts it.
RelayCentral, alongside the panelPushes live events to connected browsers over Socket.IO.
Licence serverOperated by GameDashValidates that a node is entitled to run.

How they talk

The panel and the daemon talk over the daemon's REST API. The connection goes both ways: the panel calls the node to act on it, and the node calls the panel to report status and fetch what it needs. Both directions authenticate with a shared token, sent as an x-daemon-token header.

That two-way relationship is why a node has to be reachable from the panel, not merely able to reach out. When a node first comes up it fetches the ports the panel wants it to bind, binds them, and only then completes its handshake — because the panel finishes that handshake by dialling the node back.

Live updates take a different path. Rather than have every browser poll, backend services post a message to the relay, which fans it out over Socket.IO to whichever clients are subscribed to that channel. See The relay server.

What the daemon does on a node

The daemon is a Java service that abstracts the host operating system. It manages Docker containers and their images, inspects and supervises host processes, reads and writes files (including chunked uploads), installs packages through the platform's own package manager, serves SSH and SFTP, and reports network and system state back to the panel.

Storage on a node is file-based. There is no database on a node — persistent state lives in the daemon's root directory and in daemon.properties.

Daemon overview covers all of this in more depth.

Deployment shape

The panel is normally deployed as a set of services behind DNS records you control — the web interface, the API and the relay. Nodes are separate machines that only need the daemon installed and a route back to the panel.

Nodes are the part that scales. Adding capacity means adding a node, not resizing the panel.

Next: Terminology for the vocabulary used throughout these docs.