Hosting
The server folder
The server uses its working directory as its data folder and does not start unless that folder contains resources/. Everything it reads and writes is stored next to resources/:
| Path | Contents |
|---|---|
resources/ | The installed resources, one folder per resource. |
server.toml | The configuration. Optional: every setting has a default. |
server_identity.key | The server's identity key, created on the first start. |
bans.toml | The ban list, updated when a resource adds or removes a ban. |
data/ | Storage for resources that declare [storage]. |
Back up server_identity.key and data/. Updates replace the server binary and the bundled resources, but never these files.
The identity key
The server signs its responses with the key in server_identity.key. A player's launcher remembers the key of each server it has joined and rejects a server at the same address that presents a different key. Keep this file when you move or reinstall the server; with a new key, returning players' launchers will refuse to connect.
Ports
| Port | Protocol | Default | Purpose |
|---|---|---|---|
| Game | UDP | 23277 | All game traffic. |
| Client files | TCP | Same as the game port | Files for resources with views, downloaded when a player joins. |
Open both ports in your firewall. Ports given on the command line override the configuration: darqlinemp-server [game_port [client_files_port]].
Console
The server reads commands from standard input:
| Command | Description |
|---|---|
help | Lists the built-in commands. |
status, uptime, version | Shows the server version, uptime and current state. |
players | Lists connected players. |
password set <text>, password clear | Sets or removes the join password until the server restarts; server.toml is not changed. |
resource list | Lists installed resources and shows which are running. |
resource start <name>, resource stop <name>, resource reload <name> | Starts, stops or restarts a resource. |
shutdown [reason] | Stops all resources, waits for their pending storage writes and exits. |
Ctrl-C and SIGTERM trigger the same shutdown as shutdown. Resources can register their own commands with dlmp.add_console_command.
Docker
The Dockerfile builds a Debian image with the server and the bundled resources:
docker build -t darqlinemp-server .
docker run -d -p 23277:23277/udp -p 23277:23277/tcp -v darqlinemp-data:/srv/darqlinemp darqlinemp-server/srv/darqlinemp is the server folder; mount it as a volume. Its resources entry is a link to the resources inside the image, so updating the image updates the resources while the key, the ban list and the storage persist. Configure the server with a server.toml in the volume or with DARQLINEMP_* environment variables (-e DARQLINEMP_NAME="My server"). If you set a separate client files port, publish it too with -p <port>:<port>/tcp. docker stop shuts the server down cleanly.
Versions and compatibility
A client can only join a server that uses the same protocol revision; the version command prints the server's revision. When a launcher update moves players to a new revision, update the server as well. The protocol documents the current revision.
