Wesnoth Server

A multiplayer server for The Battle for Wesnoth, the free and open-source turn-based strategy game: wesnothd, built by the module from the official source release, gives your group a permanent lobby that is always reachable — with message of the day, admin password, replay saving and a server console on the settings page. Players use the normal Wesnoth client.

The Wesnoth Server app announcement TBA

Wesnoth Server is a community application from the tebbiworld repository. Documentation and source can be found on Github

  • one rootless container with wesnothd compiled server-only from the pinned Wesnoth release (no game data; ~170 MB image, a few dozen MB RAM)
  • game port (default 15000/tcp) chosen in the settings, published on the node and opened on the node firewall as a public service
  • message of the day, administrator password (/query admin <password> from the client), connections per IP, accepted client versions (default: the server's whole stable series), replay saving, disallowed nicknames, log detail
  • server console on the settings page — wesnothd admin commands through the server FIFO (status, games, msg, kick, ban, motd, …), also as the run-command action
  • NS8 backup of settings, server config and the data volume (replays, ban list); full restore
  • weekly check of the Wesnoth git tags: a new stable release rebuilds and releases the module automatically
Container Image Purpose
wesnoth ghcr.io/tebbiworld/wesnoth-server:<module version> (built from the pinned Wesnoth tag) wesnothd as uid 1000, port 15000 inside, published on the configured node port
Volume Purpose Backup
wesnoth-data replays, ban list, command FIFO yes

The server configuration wesnothd.cfg is generated by the module into its state directory and mounted read-only.

  • 1 CPU, ~100 MB RAM; the server does not need the game data
  • players need the Wesnoth client of the same stable series as the server (1.18.x clients for a 1.18 server) — free downloads at wesnoth.org and on Steam
  • for players outside the LAN: forward the game port (TCP) on the router to the node, or a DNS name pointing to it

On the NethServer 8 cluster leader:

add-module ghcr.io/tebbiworld/wesnoth:latest 1

or from the Software Center after adding the tebbiworld repository.

Open the instance settings:

  • Server — game port, administrator password (optional; lets a player become admin with /query admin <password>), message of the day, connections per IP address (0 = unlimited), accepted client versions (empty = every release of the server's series), save replays
  • Moderation — disallowed nickname patterns, server log detail (info is needed for the console)

The status tile shows the server version, connected players and running games, and the address to give to players: Multiplayer → Connect to Server → <node IP or name>:<port>.

The console on the settings page sends wesnothd admin commands and shows the answer. From the leader node:

api-cli run module/wesnoth1/run-command --data '{"command":"status"}'
runagent -m wesnoth1 wesnothd-cmd games

Useful commands: status, games, metrics, msg <text>, kick <nick> [reason], ban <mask> <time> [reason] (times short = 1 h, day, week, month or e.g. 2D12h), unban <mask>, bans, motd <text>, help.

The NS8 backup includes the settings, the generated wesnothd.cfg and the wesnoth-data volume. A restore recreates the instance, opens the port on the target node and starts the server.

The module pins a Wesnoth source tag. A weekly GitHub Action lists the tags of the Wesnoth repository; when a newer stable release (even minor number: 1.18.x, 1.20.x, …) is at least six weeks old it rebuilds the server image and releases a new module version. A new series (1.18 → 1.20) also needs the new client series on the players' side — stay on the old module version until your group has upgraded.

  • The module (ns8-wesnoth) is GPL-3.0-or-later.
  • The Battle for Wesnoth and wesnothd are GPL-2.0-or-later, © the Battle for Wesnoth project. The module builds the unmodified upstream source; the Wesnoth logo is used to identify the upstream project.
  • This is an unofficial community module, not affiliated with the Wesnoth project.

Community-maintained module without warranty; use at your own risk. Open an issue on GitHub for bugs and questions.

  • ns8/applications/wesnoth.txt
  • Last modified: 2 weeks ago
  • by LayLow