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.
Announcement and talks
The Wesnoth Server app announcement TBA
Wesnoth Server is a community application from the tebbiworld repository. Documentation and source can be found on Github
What it does
- one rootless container with
wesnothdcompiled 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 therun-commandaction - 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
Architecture
| 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.
Requirements
- 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
Installation
On the NethServer 8 cluster leader:
add-module ghcr.io/tebbiworld/wesnoth:latest 1
or from the Software Center after adding the tebbiworld repository.
Configuration
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>.
Console
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.
Backup and restore
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.
Updates
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.
Licences and trademarks
- The module (ns8-wesnoth) is GPL-3.0-or-later.
- The Battle for Wesnoth and
wesnothdare 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.
Links
Disclaimer
Community-maintained module without warranty; use at your own risk. Open an issue on GitHub for bugs and questions.