Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
dzo
command
Command dzo is the dayz-server-operator CLI.
|
Command dzo is the dayz-server-operator CLI. |
|
internal
|
|
|
a2s
Package a2s implements Valve's Server Query Protocol ("A2S"), enough to send an A2S_INFO request and parse its reply.
|
Package a2s implements Valve's Server Query Protocol ("A2S"), enough to send an A2S_INFO request and parse its reply. |
|
admin
Package admin is the operator side of the dzo-admin servermod (§C16): the versioned protocol the mod speaks, one Hub per instance (world state for the map, a command queue with timeouts and idempotent ids), the endpoint the mod calls, an audit log, and the limits on what admins may do.
|
Package admin is the operator side of the dzo-admin servermod (§C16): the versioned protocol the mod speaks, one Hub per instance (world state for the map, a command queue with timeouts and idempotent ids), the endpoint the mod calls, an audit log, and the limits on what admins may do. |
|
api
Package api is the JSON API /api/v1 of one dzo installation (§C12).
|
Package api is the JSON API /api/v1 of one dzo installation (§C12). |
|
apiclient
Package apiclient is the Go client of /api/v1 (internal/api).
|
Package apiclient is the Go client of /api/v1 (internal/api). |
|
auth
Package auth holds the primitives of web logins: password hashing, TOTP, random secrets and recovery codes, Steam OpenID verification, the address of a client behind proxies, and the delay after failed logins.
|
Package auth holds the primitives of web logins: password hashing, TOTP, random secrets and recovery codes, Steam OpenID verification, the address of a client behind proxies, and the delay after failed logins. |
|
backup
Package backup is §C20: backups are read-only btrfs snapshots of an instance's subvolume, kept at <snapshots>/<instance>/<id>, recorded in an index, pruned by a retention policy and restorable.
|
Package backup is §C20: backups are read-only btrfs snapshots of an instance's subvolume, kept at <snapshots>/<instance>/<id>, recorded in an index, pruned by a retention policy and restorable. |
|
battleye
Package battleye implements the BattlEye RCon protocol natively (D30): no external tools (bercon-cli, dayz_restart) and no external RCon library.
|
Package battleye implements the BattlEye RCon protocol natively (D30): no external tools (bercon-cli, dayz_restart) and no external RCon library. |
|
boottest
Package boottest is `dzo test boot` (§C22): it boots a real DayZServer, from a disposable tree, on what a render produced, and says whether the game accepted it.
|
Package boottest is `dzo test boot` (§C22): it boots a real DayZServer, from a disposable tree, on what a render produced, and says whether the game accepted it. |
|
broadcast
Package broadcast sends the server messages of an instance (the welcome and the messages: of instance.yaml) to the players while dzo serve runs.
|
Package broadcast sends the server messages of an instance (the welcome and the messages: of instance.yaml) to the players while dzo serve runs. |
|
btrfs
Package btrfs is the few btrfs operations dzo needs for per-instance subvolumes and their snapshots (§C20), done with the kernel's ioctls as the unprivileged service user: no root, no helper, no btrfs-progs.
|
Package btrfs is the few btrfs operations dzo needs for per-instance subvolumes and their snapshots (§C20), done with the kernel's ioctls as the unprivileged service user: no root, no helper, no btrfs-progs. |
|
cache
Package cache manages dzo's immutable download generations (§C2, §C7): product builds and workshop mods are downloaded once into "<root>/<generation-id>/" directories that are never modified again, with a "current" symlink selecting the active one and never-running servers touched by garbage collection.
|
Package cache manages dzo's immutable download generations (§C2, §C7): product builds and workshop mods are downloaded once into "<root>/<generation-id>/" directories that are never modified again, with a "current" symlink selecting the active one and never-running servers touched by garbage collection. |
|
ce
Package ce implements the merge strategies the render pipeline needs to combine mission, mod and overlay data (FR-09/FR-09a): JSON deep merge with "mod wins" semantics and append-instead-of-replace for selected list keys (cfggameplay.json, cfgundergroundtriggers.json, cfgeffectarea.json), plus generic XML child merge/registration for the economy config (cfgeconomycore.xml <ce folder> entries).
|
Package ce implements the merge strategies the render pipeline needs to combine mission, mod and overlay data (FR-09/FR-09a): JSON deep merge with "mod wins" semantics and append-instead-of-replace for selected list keys (cfggameplay.json, cfgundergroundtriggers.json, cfgeffectarea.json), plus generic XML child merge/registration for the economy config (cfgeconomycore.xml <ce folder> entries). |
|
config
Package config loads and validates dzo's operator configuration (/etc/dzo/config.yaml, §C2 of the implementation plan): data paths, the site config repo remote, server products and default notification targets.
|
Package config loads and validates dzo's operator configuration (/etc/dzo/config.yaml, §C2 of the implementation plan): data paths, the site config repo remote, server products and default notification targets. |
|
exporter
Package exporter is `dzo exporter` (§C9): the collector that fills internal/monitor's Snapshot from systemd, podman, the Steam query, the instance's state files and the snapshot index, and the HTTP server that serves it with optional TLS (reloaded without a restart), a bearer token and an IP allow-list.
|
Package exporter is `dzo exporter` (§C9): the collector that fills internal/monitor's Snapshot from systemd, podman, the Steam query, the instance's state files and the snapshot index, and the HTTP server that serves it with optional TLS (reloaded without a restart), a bearer token and an IP allow-list. |
|
geoip
Package geoip looks up where an IP address is: the country (for the flag next to a player), and with MaxMind's GeoLite2 databases also the city, the location and the autonomous system.
|
Package geoip looks up where an IP address is: the country (for the flag next to a player), and with MaxMind's GeoLite2 databases also the city, the location and the autonomous system. |
|
geoip/geoiptest
Package geoiptest builds small GeoIP databases for tests of the packages that use internal/geoip.
|
Package geoiptest builds small GeoIP databases for tests of the packages that use internal/geoip. |
|
health
Package health implements dzo's in-container health probes (§C9): HealthStartupCmd waits for the server to come up, HealthCmd checks it is still alive.
|
Package health implements dzo's in-container health probes (§C9): HealthStartupCmd waits for the server to come up, HealthCmd checks it is still alive. |
|
hooks
Package hooks runs the operator's extension points (§C11): post_backup, post_download(mod), post_merge(mod), post_render, pre_start, post_stop, pre_update, post_update.
|
Package hooks runs the operator's extension points (§C11): post_backup, post_download(mod), post_merge(mod), post_render, pre_start, post_stop, pre_update, post_update. |
|
instance
Package instance ties the previously built packages together into one instance's lifecycle: materializing its systemd quadlet + timer units (internal/quadlet), the render-failure gate and restart-storm protection that make up F3 (§C5), starting/stopping/restarting it via systemd, and the graceful-restart announce/lock/kick sequence (§C8, port of the legacy dayz_restart) over internal/battleye.
|
Package instance ties the previously built packages together into one instance's lifecycle: materializing its systemd quadlet + timer units (internal/quadlet), the render-failure gate and restart-storm protection that make up F3 (§C5), starting/stopping/restarting it via systemd, and the graceful-restart announce/lock/kick sequence (§C8, port of the legacy dayz_restart) over internal/battleye. |
|
integrate
Package integrate turns an instance's mod integrations and overlays (§C6 steps 2 to 4) into the contributions the render merges into its staging tree: it reads the files from the site repository, from a URL (cached, optionally pinned by hash) or from the installed mod, and wires the post_merge hooks.
|
Package integrate turns an instance's mod integrations and overlays (§C6 steps 2 to 4) into the contributions the render merges into its staging tree: it reads the files from the site repository, from a URL (cached, optionally pinned by hash) or from the installed mod, and wires the post_merge hooks. |
|
killfeed
Package killfeed posts the kills of the event feed (internal/admin) to Discord: a filter, a delay queue for PvP servers that must not give away a fight as it happens, and batches that stay under Discord's message limit.
|
Package killfeed posts the kills of the event feed (internal/admin) to Discord: a filter, a delay queue for PvP servers that must not give away a fight as it happens, and batches that stay under Discord's message limit. |
|
legacy
Package legacy converts the git repositories of the legacy dayzdockerserver (one branch per server) into an example site configuration (§C21).
|
Package legacy converts the git repositories of the legacy dayzdockerserver (one branch per server) into an example site configuration (§C21). |
|
logs
Package logs rotates the log files in an instance's profiles directory into an archive outside the instance, and writes the crash summary after an unclean exit (FR-20).
|
Package logs rotates the log files in an instance's profiles directory into an archive outside the instance, and writes the crash summary after an unclean exit (FR-20). |
|
lookups
Package lookups keeps the cached answers of BattlEye's master server and of Steam about the players in the player history fresh, gently: a few requests a minute, one packet a second at most, and a long pause when a source stops answering.
|
Package lookups keeps the cached answers of BattlEye's master server and of Steam about the players in the player history fresh, gently: a few requests a minute, one packet a second at most, and a long pause when a source stops answering. |
|
maptiles
Package maptiles builds an XYZ tile pyramid of a DayZ map's satellite imagery from the map's data PBO (the client's worlds_<map>_data.pbo, or a modded map's data.pbo).
|
Package maptiles builds an XYZ tile pyramid of a DayZ map's satellite imagery from the map's data PBO (the client's worlds_<map>_data.pbo, or a modded map's data.pbo). |
|
mission
Package mission implements the live mission render/apply pipeline (§C6): the live mission directory is persistent game data (D13) that is never wiped or recreated.
|
Package mission implements the live mission render/apply pipeline (§C6): the live mission directory is persistent game data (D13) that is never wiped or recreated. |
|
moddeps
Package moddeps validates mod load-order dependencies from CfgPatches requiredAddons (§C7, FR-06a): DayZ does not give the -mod= list a reliable ordering meaning, so what actually decides whether a mod's scripts/configs load is each addon's CfgPatches requiredAddons entries, which every active mod (and the product build itself) must collectively satisfy.
|
Package moddeps validates mod load-order dependencies from CfgPatches requiredAddons (§C7, FR-06a): DayZ does not give the -mod= list a reliable ordering meaning, so what actually decides whether a mod's scripts/configs load is each addon's CfgPatches requiredAddons entries, which every active mod (and the product build itself) must collectively satisfy. |
|
moderation
Package moderation keeps bans, ban evidence and player sightings in a SQLite database, renders BattlEye's bans.txt from them, and enforces bans on running servers through RCon (docs/superpowers/specs/2026-10-16-player-bans-design.md).
|
Package moderation keeps bans, ban evidence and player sightings in a SQLite database, renders BattlEye's bans.txt from them, and enforces bans on running servers through RCon (docs/superpowers/specs/2026-10-16-player-bans-design.md). |
|
monitor
Package monitor implements dzo-exporter's /metrics and /status endpoints and the Icinga (Monitoring Plugins API) check commands (§C9, FR-18a, D22): Icinga runs remotely, so everything here is reachable over the network rather than executed as a local plugin.
|
Package monitor implements dzo-exporter's /metrics and /status endpoints and the Icinga (Monitoring Plugins API) check commands (§C9, FR-18a, D22): Icinga runs remotely, so everything here is reachable over the network rather than executed as a local plugin. |
|
notify
Package notify implements dzo's Notifier interface and a Discord webhook implementation (§C9, FR-18b, Q14): mod update detected/downloaded/ applied, server build available, restart scheduled/started/finished, health unhealthy/recovered, crash loop, render/validation failed, drift detected, Steam login required, job failed.
|
Package notify implements dzo's Notifier interface and a Discord webhook implementation (§C9, FR-18b, Q14): mod update detected/downloaded/ applied, server build available, restart scheduled/started/finished, health unhealthy/recovered, crash loop, render/validation failed, drift detected, Steam login required, job failed. |
|
presence
Package presence turns the live player list of each instance into the player history: who joined and left which instance and when.
|
Package presence turns the live player list of each instance into the player history: who joined and left which instance and when. |
|
product
Package product implements the parts of the update engine (§C7) that are fully specifiable and testable without a live Steam account or a real DayZ install:
|
Package product implements the parts of the update engine (§C7) that are fully specifiable and testable without a live Steam account or a real DayZ install: |
|
quadlet
Package quadlet renders podman quadlet unit files (§C4/§C5): dzo generates these itself rather than relying on `podman generate systemd` (deprecated, A8#12) or the `podman quadlet` management CLI (newer than the podman 5.4.2 baseline, §C0).
|
Package quadlet renders podman quadlet unit files (§C4/§C5): dzo generates these itself rather than relying on `podman generate systemd` (deprecated, A8#12) or the `podman quadlet` management CLI (newer than the podman 5.4.2 baseline, §C0). |
|
resolve
Package resolve turns the operator config (internal/config), the site checkout (internal/site) and the download cache (internal/cache) into one already-resolved Instance: the single value the mission, product, quadlet and instance packages take their input from (§C3, §C6, §C7).
|
Package resolve turns the operator config (internal/config), the site checkout (internal/site) and the download cache (internal/cache) into one already-resolved Instance: the single value the mission, product, quadlet and instance packages take their input from (§C3, §C6, §C7). |
|
runfiles
Package runfiles renders the files an instance needs to start besides its mission: the signature keys, serverDZ.cfg with what dzo owns enforced, and the BattlEye seed config with the RCon port and password (§C6 steps 2, 6 and 7).
|
Package runfiles renders the files an instance needs to start besides its mission: the signature keys, serverDZ.cfg with what dzo owns enforced, and the BattlEye seed config with the RCon port and password (§C6 steps 2, 6 and 7). |
|
serve
Package serve runs `dzo serve`: the /api/v1 listener and the endpoint the dzo-admin mods call, over hubs built from the site config.
|
Package serve runs `dzo serve`: the /api/v1 listener and the endpoint the dzo-admin mods call, over hubs built from the site config. |
|
servercfg
Package servercfg parses and writes DayZ's serverDZ.cfg format: a flat list of "key = value;" and "key[] = {v1, v2, ...};" statements, where values are either double-quoted strings or bare tokens (numbers).
|
Package servercfg parses and writes DayZ's serverDZ.cfg format: a flat list of "key = value;" and "key[] = {v1, v2, ...};" statements, where values are either double-quoted strings or bare tokens (numbers). |
|
servermods
Package servermods packs dzo's own servermods (D39) from their source trees into PBOs: `make servermods`.
|
Package servermods packs dzo's own servermods (D39) from their source trees into PBOs: `make servermods`. |
|
setup
Package setup is `dzo setup`: the first-time steps after installing the package, run as the service user.
|
Package setup is `dzo setup`: the first-time steps after installing the package, run as the service user. |
|
site
Package site models the site config repo (§C3): shared mod integrations and overlays plus per-instance configuration, checked out from a configurable git remote (D16).
|
Package site models the site config repo (§C3): shared mod integrations and overlays plus per-instance configuration, checked out from a configurable git remote (D16). |
|
steam
Package steam drives an interactive steamcmd login over a pseudo-terminal (§C7 "Steam authentication"): steamcmd needs a human for the password and a Steam Guard factor (e-mail code, mobile-authenticator code, or an in-app confirmation), and its cached session can expire at any time, so dzo treats login as a recurring interactive operator task rather than a one-time setup.
|
Package steam drives an interactive steamcmd login over a pseudo-terminal (§C7 "Steam authentication"): steamcmd needs a human for the password and a Steam Guard factor (e-mail code, mobile-authenticator code, or an in-app confirmation), and its cached session can expire at any time, so dzo treats login as a recurring interactive operator task rather than a one-time setup. |
|
steamweb
Package steamweb reads what Steam says about a player: the community profile page (no key) and, with a Web API key, the ban counts, account details, DayZ playtime, level and friends.
|
Package steamweb reads what Steam says about a player: the community profile page (no key) and, with a Web API key, the ban counts, account details, DayZ playtime, level and friends. |
|
tlsfiles
Package tlsfiles serves TLS certificates and CA pools from files and picks up changes to those files without a restart, so a renewed certificate (by certbot or any other tool) takes effect on its own.
|
Package tlsfiles serves TLS certificates and CA pools from files and picks up changes to those files without a restart, so a renewed certificate (by certbot or any other tool) takes effect on its own. |
|
units
Package units is `dzo units sync` (§C5): it writes the systemd units dzo generates, the quadlet of every instance and the timers and services that run restarts, backups, update checks and the exporter, and removes the ones that no longer apply.
|
Package units is `dzo units sync` (§C5): it writes the systemd units dzo generates, the quadlet of every instance and the timers and services that run restarts, backups, update checks and the exporter, and removes the ones that no longer apply. |
|
updates
Package updates is the update engine (§C7): `dzo update check [--apply]`, run hourly by a timer.
|
Package updates is the update engine (§C7): `dzo update check [--apply]`, run hourly by a timer. |
|
version
Package version holds build-time version information stamped via -ldflags.
|
Package version holds build-time version information stamped via -ldflags. |
|
web
Package web is the dzo web interface (§C12): server-rendered pages with htmx and a Leaflet map.
|
Package web is the dzo web interface (§C12): server-rendered pages with htmx and a Leaflet map. |
Click to show internal directories.
Click to hide internal directories.