Hypnotoad: The Server Model
The CMS runs as a preforking daemon under hypnotoad: a master process plus worker processes that each handle requests. Two workers is the settings default (CHINASKI_WORKERS, env var per instance) — sized safe on a 1 GB machine; raising to 4 is the documented step for a 2+ GB host with concurrent editors.
What the model implies for you as an operator:
- The app is one address, several workers. It binds once (from
CHINASKI_LISTEN, default127.0.0.1:8080or theLISTEN_URLenv in daemon mode), and the workers share that listener. - Isolation is by process. A memory-hungry handler is contained; the systemd envelope (1 GiB capped) prevents a runaway from starving the box.
- The scheduler and builds are separate. In-process scheduled tasks and long builds emit to the same application; build subprocess behavior is covered on the build.pl reference.
Because the worker count is per-instance config, the same setting file supports multiple instances alongside each other (the chinaski@N unit pattern only changes names, working directory, and environment).