Race servers

A race server's history page, running ACC by hand with an API key, and the ACC config download.

A race server is one ACC dedicated server that runs one split at a time. This page explains a server's history page, how to run a server by hand instead of on a machine, and how to download a split's ACC config.

Two kinds of race server

  • Servers on your machines. bdr creates these by itself when a race is booked on one of your machines, and names them pool-<machine>-.... The host agent starts and stops them. You don't need to do anything. See Machines.
  • Servers you run by hand. You register the server, create an API key for it, and run the bdr agent next to ACC yourself. This suits a rented server, or a box where you can't run the host agent.

Both kinds appear in the Servers card on your community's page.

The server page

Select History on a server in the Servers card to open its page. It shows:

  • The status (Online or Offline) and what the server is doing, for example Idle or Running.
  • Last heartbeat, with the agent version. Never means the agent has not reported yet.
  • Sessions run, and Players online against the server's car limit.
  • Running now: the split it is running at the moment.
  • Session history: every split it ran, newest first, with drivers, state, start time and duration. "never started" means the split was given this server but it did not start.
  • Resource usage: for servers on your machines, the container's CPU and memory over the last 6 hours. CPU is shown the way docker stats shows it, so 150 % means one and a half cores. If the page warns about throttling, the container had too little CPU and drivers would have felt lag. Below CPU and memory, the drivers on the server and ACC's late steps per minute follow on the same time axis. A few late steps per second are normal.

A server you run by hand shows No host agent on this machine under Resource usage. That is expected: nothing collects those figures for it.

Run ACC by hand

1. Register the server

  1. On your community's page, open Running ACC by hand instead?.
  2. Fill in Name, Simulation and Region.
  3. Choose the Mode:
    • Full service: the agent runs the game server. The agent writes the config, starts and stops ACC at the right time and uploads the results.
    • Results only: I run the server myself. You start ACC yourself. The agent only uploads result files.
  4. Enter the Public host name or IP of the server, and its TCP port and UDP port.
  5. Select Register.

2. Create an API key

  1. Select API keys on the server.
  2. Enter a key name, for example box-1, and select Create key.
  3. Copy the key. It is shown once, because bdr only stores a hash of it.

A key works for this one server only. The key list shows when each key was created and last used. Select Revoke to stop a key working. Remove on the server deletes the server and all its keys.

3. Start the agent

The agent comes in the platform's ACC server image. For full service, run it with your key and a Steam account that owns Assetto Corsa Competizione. It downloads the ACC dedicated server on first start:

docker run -d --name acc-eu-1 \
  -e BDR_URL=<platform-url> \
  -e BDR_API_KEY=<your-api-key> \
  -e STEAM_USER=<steam-account> \
  -e STEAM_PASS=<steam-password> \
  -p 9601:9601/tcp -p 9601:9601/udp \
  -v acc-eu-1-data:/acc \
  ghcr.io/larshei/bdr-acc-server:latest

Use the ports you registered in both -p options. If the Steam account has Steam Guard, run the container once with -it instead of -d to enter the code.

For results only, set BDR_MODE=results_only and mount the folder your ACC server writes results to:

docker run -d --name acc-results \
  -e BDR_URL=<platform-url> \
  -e BDR_API_KEY=<your-api-key> \
  -e BDR_MODE=results_only \
  -e RESULTS_DIR=/results \
  -v <path-to-acc-results>:/results:ro \
  ghcr.io/larshei/bdr-acc-server:latest

The agent's BDR_MODE decides what it does, so set it to match the Mode you registered. Within 30 seconds the server should show Online in the Servers card.

Note

The agent only connects out to bdr. Open the game ports to drivers, not to the platform.

How splits get servers

When a race locks, 60 seconds before the start, each split is given a free server of your community:

  • The server must be for the same simulation, and have room for the split. A server you register by hand holds 30 cars.
  • A server already busy with another race at that time is skipped. Online servers are chosen before offline ones.
  • A split with no free server waits. Until qualifying ends, bdr keeps trying to find it one, and also moves a split whose server goes offline or fails to start.

So you need one server for each split that races at the same time.

Download a split's ACC config

On the season page, after a race has locked, the Servers column lists each split's server with a download icon. It downloads a zip with the split's cfg folder: configuration.json, settings.json, event.json, eventRules.json, assistRules.json and entrylist.json, encoded as ACC expects.

You need it when you run a server in results-only mode:

  1. Lock the race. It locks by itself 60 seconds before the start. To get the files sooner, select Lock on the race earlier. This closes signups.
  2. Download the split's zip and copy its files into the ACC server's cfg folder.
  3. Start the server.

The entry list only lets the drivers seated in that split join, with their car and number. The server name in ACC's lobby is <community> | <series> | #<race>-<split>. The event file carries a tag that links the result file back to its split.

Warning

The zip contains the server's join and admin passwords. Don't share it.

If a result file never reached bdr, upload it on the season page with Upload. See Seasons and series.

Community hosted sim racing. Ratings, standings and stewarding in one place. Help