FR

Freeciv-web

Browser-based open-source empire strategy game

Game Servers ★ 2.2k stars Hard setup AGPL-3.0

Freeciv-web is a free, open-source version of the Freeciv strategy game playable in a web browser. It can be self-hosted to run multiplayer empire-building games of the Civilization genre.

Key features

  • Civilization-style strategy
  • Plays in a web browser
  • Multiplayer empire building
  • WebGL and 2D clients

Pros & cons

Strengths

  • No client install needed
  • Classic 4X gameplay

Trade-offs

  • Complex multi-service stack
  • Resource-intensive to host

Freeciv-web replaces

Last reviewed Sep 13, 2026 · 748 words

Freeciv-web is the heaviest way to play a free game. The same Freeciv that runs as a small desktop client with a 60 MB server becomes, in the browser edition, a stack of the Freeciv C server, a Python WebSocket proxy, a Java web application on Tomcat, MySQL or MariaDB, and nginx, plus a build step that pulls in Maven, npm and the tileset conversion tooling. The 2 GB minimum is not padding. In return you get something no other 4X offers: a link you can send to friends that opens a full turn-based empire game with no download, working on a Chromebook, hosted entirely by you. If that specific payoff is what you want, it is worth the stack.

What the five services do

Understanding the pieces stops the first outage from being a mystery.

ServiceRole
freeciv-serverThe actual game engine, one process per running game
freeciv-proxyPython bridge between browser WebSockets and the server's TCP protocol
publite2Spawns and tracks server processes so a new game gets a fresh one
Tomcat webappThe Java site: lobby, game list, saved games, user accounts
nginxServes the JavaScript client and fronts everything on 80/443

MySQL stores accounts, saved games and the game list. Every running game is a separate freeciv-server process that idles at roughly 50 to 100 MB and grows with map size and turn count, which is why hosting 5 concurrent games needs a box that can spare a gigabyte for those alone.

Docker is the only sane install

The repository ships a Dockerfile and compose setup that performs the whole build, including fetching the Freeciv source at a pinned revision and compiling it. The first docker compose up --build takes 20 to 40 minutes on a modest VPS and produces a multi-gigabyte image. After that, starting is a normal compose up, and the site answers on port 80 inside the container; put your reverse proxy in front for TLS.

Building from source outside Docker is documented, and I have done it once on Ubuntu. Between the specific Tomcat version, the Java version, the Python dependencies for the proxy and the Freeciv build flags, it consumed a weekend. Use the container. For a friends-only server there is nothing else to tune.

The 2D client is the good one

There are two browser clients: a 2D canvas renderer and a WebGL 3D one. The 3D client is impressive in screenshots and noticeably heavier in the browser, with slower asset loading. For actual play, especially on a laptop, the 2D client is more responsive and easier to read, and it looks like classic Freeciv. Players pick per game. Multiplayer works through the lobby with real-time turns or turn-by-turn; slow games work well because saves persist in the database and a game can sit for days between turns.

The single-player experience against AI is complete, because it is the same AI as desktop Freeciv: competent at the default levels and brutal at the top. Longturn-style games with dozens of humans are what the public freeciv.org servers host, and this is the software behind them.

It is a project with a public reference deployment, not a product

Development pace follows upstream Freeciv releases and a very small maintainer group. There are 2,195 stars, but the issue tracker is quiet, updates are infrequent, and a change in a Tomcat or Node dependency can leave the build broken for a while. If you want a game server that is a checkbox in a panel, this is not it; PufferPanel and Pterodactyl are for the Minecraft-and-Valheim style of server that ships as a single binary, and most of the games category leans that way. Freeciv-web is closer to hosting a web application that happens to be a game.

What I'd do

Host it on a 4 GB VPS or a homelab VM, Docker only, behind Caddy with TLS, accounts limited to people you know. Run one long game at a time with the 2D client. Keep the desktop Freeciv server in mind as the fallback: if your group is willing to install a client, a bare freeciv-server process on the same box gives the same game for 60 MB and no Java, and the browser edition is the price you pay for the "no install" promise. I pay it for family games and not otherwise.

Compare Freeciv-web

1 head-to-head comparisons.

Similar game servers apps