FR

Freeciv

Free turn-based strategy game with a dedicated multiplayer server

Game Servers ★ 1.6k stars Medium setup GPL-2.0

The Freeciv server is the multiplayer host component of Freeciv, a free turn-based empire-building strategy game inspired by Civilization. It supports hosting persistent multiplayer games for many players.

Key features

  • Turn-based strategy hosting
  • Many players per game
  • Configurable rulesets
  • Long-running games

Pros & cons

Strengths

  • Mature and stable
  • Cross-platform

Trade-offs

  • Dated interface
  • Niche genre

Freeciv replaces

Last reviewed Sep 13, 2026 · 853 words

The Freeciv server is not a separate project. The repository at github.com/freeciv/freeciv is the whole game, and freeciv-server is one of the binaries it produces, alongside the GTK client and a ruleset editor. What you host is that single server process, and the reason to host it rather than click "start server" inside the client is persistence: a game that survives your laptop closing, accepts players in different time zones, and runs for weeks. On 256 MB of RAM it will hold a full 8-player map without noticing.

One repo, three binaries

Packaged builds of Freeciv ship freeciv-server, a client (freeciv-gtk3 or the Qt one), and freeciv-ruledit. Every Linux distribution I have used carries the server in its main repositories, so apt install freeciv-server on Debian or Ubuntu is a legitimate deployment and the one I would pick for a long-lived game. Building from source is only worth it if your distro's package lags a major version behind the clients your players use, because client and server must agree on the network protocol. A 3.1 client will not join a 3.0 server. Check freeciv-server --version against what your players download from freeciv.org before anything else.

If you prefer containers, there is no official image, so community images vary in quality. The sibling project Freeciv-web is the one with a real Docker story, and it embeds this same server behind a browser client, which is worth knowing if your players refuse to install anything.

Port 5556 and a startup script

The server listens on TCP 5556 by default. A minimal persistent run looks like this:

freeciv-server --port 5556 --read /srv/freeciv/settings.serv \
  --saves /srv/freeciv/saves --log /srv/freeciv/server.log

The settings.serv file is just server console commands, one per line, which is the part newcomers miss. A sensible one:

set aifill 6
set timeout 0
set autosaves TURN
set saveturns 1
rulesetdir civ2civ3

timeout 0 means turns end when all humans press End Turn, which is right for a game among friends. Setting autosaves and saveturns 1 writes a save every turn, so a crash costs nothing. Wrap the command in a systemd unit with Restart=on-failure and a WorkingDirectory, and point clients at your hostname on 5556. Do not put a reverse proxy in front; the protocol is not HTTP. If you want access control, the built-in /set connectmsg and password-per-player options are thin, so keep the port behind a VPN such as Tailscale unless you deliberately want strangers.

The ruleset matters more than any other setting

Freeciv ships several rulesets and they play like different games. classic is the Civilization II feel most people remember. civ2civ3 is the balanced one active communities favour, with terrain and government tweaks that stop the early rush from deciding everything. multiplayer tunes for humans against humans. Choose before turn 1, because a ruleset cannot change mid-game, and a mismatch between the server's ruleset and what a player expects is the most common source of "this is broken" complaints I have fielded. Rulesets are plain text files under /usr/share/freeciv/, and the ruleset editor exists specifically so you can fork one without hand-editing.

Long-turn play is why you bother hosting

A live Freeciv session among 4 to 6 people takes an evening and rarely finishes. The format that actually works for a persistent server is what the Longturn community has run for years: one turn per day, everyone plays at their convenience, a game lasts 2 to 4 months. Set timeout 86400 for a 24-hour turn and the server advances on its own. This is the mode where a dedicated host earns its keep, and it is why "many players per game" is listed as a highlight rather than a marketing line; Longturn games routinely run 20 or more human empires.

The dated interface is real and I will not pretend otherwise. The GTK client looks like 2004 because it largely is. Players who bounce off it can use Freeciv-web against the same server.

Backups and the process that dies

Saves are gzipped text under your --saves directory and are the entire state. Copy that directory nightly with whatever already backs up the box. Restoring is freeciv-server --file saves/freeciv-T0142.sav.gz and players reconnect to the same names. The server process itself is stable across weeks in my experience, but it does not daemonise and will exit with the terminal if you run it by hand, hence the unit file.

What I'd do

Install the distro package, write a settings.serv with civ2civ3 and per-turn autosaves, run it under systemd on 5556 behind a VPN, and commit to a 24-hour timeout game with people you know. Ignore Docker unless you also want Freeciv-web for browser players. For anything other than this specific async multiplayer use, just start a server from inside the client and skip the hosting entirely.

Compare Freeciv

1 head-to-head comparisons.

Similar game servers apps