Skip to content

Server setup

Requirements

  • Rust pinned by rust-toolchain.toml
  • MariaDB 10.6 or newer
  • protoc pinned by .protoc-version for protobuf-dependent crates
  • Trinity/TDB-style auth, characters, world, and hotfixes databases
  • Extracted client data required by the runtime configuration

Detailed database preparation is maintained in the repository's DB bootstrap guide. Use it only for the intended, authorized environment and data. Building this project does not authorize service interruptions or database mutations. Normal server startup validates schemas; rustycore-db is the separate migration authority.

Build

bash
git clone --branch 3.4.3 https://github.com/alseif0x/rustycore.git
cd rustycore
PROTOC=/path/to/protoc cargo build --locked -j 1 -p bnet-server -p world-server --release

Configure and run

Create local bnetserver.conf and worldserver.conf files for your environment. These files and their .conf.d override directories are ignored at the repository root. Never commit passwords, database URLs, private keys, certificates, or runtime configuration.

Start the services in separate terminals, in this order. Wait for Battle.net to finish its startup before launching the world service.

Terminal 1:

bash
./target/release/bnet-server --config /absolute/path/to/bnetserver.conf

Terminal 2:

bash
./target/release/world-server --config /absolute/path/to/worldserver.conf

Check the logs for successful database validation, realm activation, and listeners on the configured ports before connecting a client.

Open source under GPL-3.0-or-later. Built by the RustyCore community.