Forever Docker: It Runs the WoW Forever Beta, but Only on Client Build 1.60.1.70450
By Indie Kings | October 18, 2026
Updated October 18, 2026: A developer named jibay442 published Forever today, a ready to run private server for the World of Warcraft Forever beta that refuses every client build except exactly 1.60.1.70450, per the repository README. The package bundles the TrinityCore forever branch in Docker with a sign-up website, a Battle.net style login server, its own certificate authority, and a launcher for Windows, macOS, and Linux.
The interesting part is not the server. It is everything around the server. Anyone can stand up a game server in Docker; making Blizzard's own beta client log into a friend group's box instead of Battle.net means solving account creation, TLS trust, launcher shipping, and data extraction as one infrastructure problem, and the README documents each step of that solve.
Image credit: jibay442/GitHub.
The Exact Build Pin
Forever targets the free World of Warcraft Forever beta specifically, and it pins the client to build 1.60.1.70450, installed with Battle.net. Per the README, the requirement is blunt: "another build will not connect." That is not a politely phrased recommendation; it is the protocol boundary the whole project sits on.
The pin matters because of where the server comes from. Forever runs the forever branch of TrinityCore, the open source server core that jibay442 packs into Docker Compose along with a few fixes of his own, which he says he found by reading packet logs. TrinityCore only speaks the protocol of client builds it has been ported to, and the forever branch is written against Blizzard's current beta protocol, so a pinned build is the contract between the two sides.
The author states his motive plainly in the README: he made it to play the free beta with his friends. The repository was created and pushed on October 18, 2026, so the project has days, not weeks, of public history, and it carries 5 stars at fetch time. Treat it as an early-stage project with exactly one verified user: its author.
How login still works against a home server
The Battle.net client, unmodified, wants to talk to Blizzard. Forever's answer, per the README, has three pieces. First, the launcher adds the server to the hosts file on the player's machine, so Battle.net's own domain resolves to the home server. Second, the launcher trusts the server's certificate on first run, which jibay442 generates himself: each operator runs his gen-certs.sh script to make a personal certificate authority plus server certificate, with the README's warning never to share the root key.
Third, the delivery is memory only. The launcher puts the server's key into the game client in memory; per the README, the game files are not changed. That is a sharper line than most classic WoW servers draw, where the traditional approach has been a realmlist edit written to disk forever. Here the client stays byte-identical, and the redirect evaporates the moment the process ends.
The server side completes the illusion. A bnetserver process handles Battle.net login over TLS, and a second endpoint serves a login REST API on the same internal network; the launcher's own login hits that API and hands the game a login ticket. The README describes the chain as one unbroken flow, so from the client's point of view nothing is missing: Blizzard's login stack, redirected to hardware you own.
Accounts, launcher, and languages
Account creation is web-first. Players sign up on the project's bundled website, which is open to anyone and rate limited per IP, and the site asks the worldserver to create the account, per the README, exactly like the bnetaccount create console command. Operators who prefer the console can still attach to the worldserver and create accounts typed by hand.
The launcher is a Tauri app, so the Rust project builds native shells for Windows, macOS, and Linux from the same code, and the website offers each visitor the right file for their system. Per the README, logging in once in the launcher and clicking Play sticks for 30 days: it remembers you, logs you into the game automatically, and injects the server key for the session. Server changes are possible in an advanced settings screen, but the default experience is deliberately zero clicks.
Localization is broader than hobby grade. The launcher and website ship in English, French, Spanish, and Portuguese for Latin America, picking the language from the system or browser. On macOS the launcher is unsigned by Apple, so players must clear the quarantine flag once per the README, a friction point the author documents rather than hides.
What it costs to run
The README is concrete about hardware, and the split between build time and run time is the notable part: a RAID of compilation is the expensive step, not serving players. Game data is also extracted from the operator's own client by a dedicated extractor compose service, which keeps the repository itself asset free.
| Requirement | Value per the README |
|---|---|
| Host | Linux server with Docker and Docker Compose |
| RAM to build | 8 GB (compiles TrinityCore) |
| RAM to run | 4 GB |
| Disk | About 20 GB |
| Game client | World of Warcraft Forever beta, exactly build 1.60.1.70450 |
| License | GNU General Public License v2.0 or later |
The first start imports the database and can take a few minutes, per the README. Updates are a rebuild and restart, with new SQL migrations applied on start; if the upstream branch lands a fix the author ships as a local patch, the build stops at that patch so the operator can remove it.
Deployment paths and port discipline
Three deployment paths are documented. The plain compose path runs everything behind one Docker userland. A Traefik overlay publishes the sign-up website on a real domain with HTTPS when you set a domain variable. The author's own choice is Dokploy, a self-hosted platform that builds and runs the compose file from your repository and handles the domain with its own Traefik, with a step by step guide in the repository's docs.
Port discipline is written down, not implied. Only TCP is needed, no UDP, and the public surface is three ports: the Battle.net login endpoints and the worldserver's realm socket, plus the website's HTTP and HTTPS pair if you publish it. Two ports are called out as forbidden to expose: MySQL on 3306 and SOAP on 7878 stay locked on the internal Docker network. The README states it as an instruction, which is the right tone given that the operator is handing strangers a sign-up page.
Fixes on top of the forever branch
The author's own work lives in a patches directory, and each fix is one with visible personality, per the project documentation: friend list support, party invites, names with surnames, and 360 action bar slots for the gamepad bars. These are quality of life repairs to a branch still moving under his feet, written from packet log evidence rather than upstream code review.
Patches are also the project's clearest admission that it is upstream dependent. If the TrinityCore forever branch adopts one of his fixes, the Docker build stops at that patch until the operator deletes it. Per the README, a newer client build can be pointed at with a configuration value, but it is labeled experimental until the branch supports it, so Blizzard's beta cadence is effectively this project's release cadence.
The no Blizzard assets line
The README is explicit that the repository contains no game client, game data, artwork, or logo. The launcher and website visuals are neutral CSS, and the screenshots folder shows the game running on the server, per the author's note, which is the only place Blizzard's material appears. Game data on the server side is extracted from the operator's own client, never shipped.
This lands inside a stretch of self-hosted WoW tooling our site has been covering all month, from a TrinityCore family suite and a Tortoise-WoW release to WarcraftXL's Vulkan device work for the 3.3.5a client just yesterday. The pattern is consistent: hobby infra races to whatever client Blizzard currently ships, and legal exposure is managed by shipping code and instructions rather than assets.
Scope
Understand exactly what this targets: Blizzard Entertainment's beta client and the company's own Battle.net login stack, redirected against an unofficial server running interserver technology derived from TrinityCore. Unofficial servers violate Blizzard's terms of service, and self-hosting for a friend group means staying outside Blizzard's ToS all the same. Readers decide for themselves, with their own client and their own account. The README's stated discipline, no Blizzard assets in the repository and game data drawn only from the user's own client, is real mitigation worth naming, and it does not soften the ToS position at all.
FAQ
Which client build does Forever require?
Exactly 1.60.1.70450 of the World of Warcraft Forever beta, installed through Battle.net. Per the README, any other build will not connect.
How does an official beta client reach a home server?
The launcher adds the server to the hosts file and trusts a certificate from the operator's own certificate authority. The server's key is injected into the client in memory only, so game files are not changed.
Do I need my own copy of the game?
Yes. The README requires your own access to the game, and the server's game data is extracted from your own client by an extractor service, not distributed by the repository.
How do players get accounts?
They sign up on the bundled website, which is open and rate limited per IP, and the site tells the worldserver to create the account exactly like the bnetaccount create console command.
What hardware does the server need?
Per the README: a Linux host with Docker, 8 GB RAM to build and 4 GB to run, and about 20 GB of disk.
Is it affiliated with Blizzard?
No. The README states it is not affiliated with or endorsed by Blizzard Entertainment, and the repository ships no Blizzard assets.
Bottom Line
Forever, published today by jibay442, is the delivery problem solved before it is a server problem: a pinned build 1.60.1.70450 client, a home certificate authority, a hosts file entry, a Tauri launcher with 30 day auto-login, and a rate limited sign-up site, all wrapped in Docker around TrinityCore's forever branch. It is one day old, GPL licensed, and built for exactly one documented scenario, a friend group playing the free beta on hardware they own. If the TrinityCore forever branch keeps pace with Blizzard's beta, this is a template to watch; if the branch slips, every downstream deployment slips with it.
Sources
- README and repository, jibay442/forever_docker, fetched October 18, 2026