Quick start: the first server¶
This walk-through creates one vanilla Chernarus server. All commands run as the
service user (sudo -iu dayz). It follows what has been run end to end on a
development host; Command reference lists every command and says which ones are not built yet.
1. Point dzo at your site repository¶
Create an empty git repository for your configuration and add it to
/etc/dzo/config.yaml:
site:
remote: ssh://git@<git host>/<you>/dayz-site.git # or https://, or a local path
branch: main
# a minimal file: every other key has a default, see Configuration for all of them
dzo setup # directories, container images, the site checkout
dzo site validate # loads the site and resolves every instance
dzo site pull fetches changes you pushed to the site repository later.
2. Log in to Steam and install the server build¶
dzo steam login --user <steam account> # password and Steam Guard
dzo product install dayz-stable # about 3 GB
3. Describe the instance¶
Create instances/chernarus/instance.yaml in the site repository:
name: chernarus
product: dayz-stable
map: dayzOffline.chernarusplus # mission source: Bohemia's Central Economy repository
ports: {game: 2302, rcon: 2303, query: 27016}
network: host # required: host or publish
mods: []
restarts:
schedule: ["00:00", "04:00", "08:00", "12:00", "16:00", "20:00"] # every 4 hours
This is a minimal file; every key and its default is in instance.yaml.
Without mission_source the mission comes from the dayzOffline.chernarusplus
folder of the Central Economy repository (see Missions, integrations and overlays). Add a
serverDZ.cfg next to it (your usual server settings, with a password;
dzo sets the mission template and the Steam query port itself), commit,
push, then:
dzo site pull
dzo site validate
4. Render and start it¶
dzo instance render chernarus --dry-run # what would be written
dzo instance create chernarus # subvolume, pristine mission, first live mission
dzo instance apply chernarus # writes the container units and timers
dzo start chernarus
dzo status chernarus
dzo start returns once the container is healthy, that is when the server
answers Steam queries. Follow the console with dzo logs chernarus -f.
5. Add a mod¶
dzo mod add 1559212036 --instance chernarus # Community Framework
dzo mod add 1828439124 --instance chernarus --server # loaded with -servermod
dzo mod add dzo-admin --instance chernarus # a local servermod
dzo instance mods list chernarus # the order is the load order
dzo restart chernarus --minutes 5
dzo mod add installs the mod and then adds it to instance.yaml of the site
checkout; commit and push that file. dzo instance mods move and dzo mod remove
edit the list the same way.
The restart announces itself in game, locks the server, kicks the remaining players and restarts with the new mod generations. See Running servers.
A web interface with logins¶
The web interface has real logins (Login). On the host of dzo serve:
# config.yaml: serve.web_url: https://dzo.example.org (where people open the web interface)
sudo -iu dayz dzo token create web --role admin --web > /var/lib/dzo/secrets/web.token
sudo -iu dayz dzo user grant <your Steam64 ID> --role admin --username <name>
sudo -iu dayz dzo units sync
(If Steam sign-in does not work yet, give yourself a password instead: dzo user password <name>.) Then open the web interface, sign in through Steam and set up your second factor (an authenticator app or a
passkey). Put it behind HTTPS: certificate files in web.tls or a reverse proxy (HTTPS).
What next¶
The
cheat sheet (PDF): these steps and the everyday commands on two A4 pages. The package installs it as/usr/share/doc/dzo/dzo-cheatsheet.pdf.Mod integrations and mission overlays: Missions, integrations and overlays
How the server is stopped and restarted: Stopping the server
Automatic mod updates and server upgrades: Mods, updates and server upgrades
Snapshots and restores: Backups and restores
The web interface and the live map: Web interface
Prometheus, Icinga and Discord: Monitoring and notifications