Files
windmill/backend
Ruben Fiszel 52f39a0e04 feat(worker): rootless podman container runtime for docker-mode jobs
Add a per-worker-group `container_runtime` option. When set to "podman", the
worker starts a rootless, daemonless `podman system service` on a unix socket
and points DOCKER_HOST at it, so docker-mode jobs (`# docker` bash scripts) run
against a Docker-API-compatible daemon without a privileged dind sidecar or the
host Docker socket. bollard's existing handle_docker_job talks to it unchanged
(validated: inspect/wait/logs/stats/kill/stop/remove against podman 5.8.2).

- windmill-common: container_runtime field on WorkerConfigOpt/WorkerConfig,
  loaded from group config or CONTAINER_RUNTIME env.
- windmill-worker: start_container_runtime_maybe() spawns the rootless podman
  service once per process (i_worker==1), waits for the socket, sets DOCKER_HOST.
  Respects an existing DOCKER_HOST (legacy dind) and degrades with a clear log if
  the podman binary is absent (use a *-full image or an init script).
- monitor: restart the worker (killpill) when container_runtime changes.
- api-configs: allow container_runtime in CE config updates.

Requires rootless podman with cgroup v2 delegation for memory monitoring;
podman ships in the *-full images (next commit).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 12:48:14 +00:00
..
2026-05-01 20:52:47 +00:00
2026-05-01 20:52:47 +00:00
2026-05-01 20:52:47 +00:00
2026-02-12 13:19:05 +00:00

Windmill Backend

This folder holds all backend components, the src/ folder only contains files used to build the "root" binary.

Components

name description
windmill-api The API server, exposing functionality to other components and the frontend
windmill-audit Contains audit functionality, allowing different components to record important actions
windmill-common Common code shared by all crates
windmill-queue Contains job & flow queuing functionality, commonly written to by the API server and read from by workers
windmill-worker The worker. Used to process and execute flows & jobs.
parsers Contains code to parse signatures in different langauges.

Compile sqlx for offline ci

cargo sqlx prepare --workspace -- --bin windmill --features enterprise