Freeciv-web
Browser-based open-source empire strategy game
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.
| Service | Role |
|---|---|
| freeciv-server | The actual game engine, one process per running game |
| freeciv-proxy | Python bridge between browser WebSockets and the server's TCP protocol |
| publite2 | Spawns and tracks server processes so a new game gets a fresh one |
| Tomcat webapp | The Java site: lobby, game list, saved games, user accounts |
| nginx | Serves 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
Mindustry
Game ServersTower-defense and factory game with servers
Replaces Factorio
Lichess
Game ServersOpen-source chess server and platform
Replaces Chess.com
OpenRCT2
Game ServersOpen-source remake of RollerCoaster Tycoon 2
Replaces RollerCoaster Tycoon
papermc-docker
Game ServersContainerized Minecraft Java server image
Replaces Minecraft Realms
ArchiSteamFarm
Game ServersTool for farming Steam cards from multiple accounts
Replaces Idle Master
2048
Game ServersSelf-hostable browser version of the 2048 sliding puzzle
Replaces Mobile puzzle games