RaceControl · Start here
Install the connector
Prepare a Linux ACSM server and connect it to your workspace.
Install RaceControl on the Linux host running Assetto Corsa Server Manager (ACSM). The connector publishes your ACSM event catalog, reads your organization settings from racecontrol.cc and keeps the managed CSP configuration in sync. Organizers use the hosted web workspace; drivers receive the HUD inside Assetto Corsa when they join a configured event.
Before you start
You need an active RaceControl license, sudo access to the Linux host, Python 3, curl, systemd, outbound HTTPS and an ACSM installation with shared_store.json. You also need to know which public IPv4 and TCP port belong to each Assetto Corsa server. Drivers need Assetto Corsa with a compatible Custom Shaders Patch build; the current minimum is CSP build 3465.
Create an organization account first. If your account has no active license, send the Request a license form from /account and wait for RaceControl administration to assign one. Plan the first ACSM event load for a safe time: installing the connector does not restart the game server or interrupt an active race.
Install with one command
Run this on the Linux ACSM host:
curl -fsS https://racecontrol.cc/install.sh -o /tmp/racecontrol-install.sh && sudo bash /tmp/racecontrol-install.sh
The assistant asks for the ACSM root directory (the one containing shared_store.json) and then asks for the license key with hidden input. It validates the event catalog, detects local server names and TCP ports, writes a private connector configuration and starts a systemd timer. The key is stored on the host under /etc/racecontrol/ with restricted permissions. The installation does not link a server or enable an event by itself.
If you know the root directory, you can pass it explicitly:
sudo bash /tmp/racecontrol-install.sh --acsm-root /path/to/ACSM
Finish in the web workspace
- Sign in to /account. Your detected servers should appear after the connector publishes its catalog.
- Check the suggested public IPv4 and each TCP port; click Link for the server you want to license. The license shows how many server slots are available. Use Manual link if detection cannot find a server.
- Open /settings, select the ACSM events that should receive RaceControl and save. Set driver, broadcast, organizer and debug audiences as needed.
- Wait for the connector’s next sync (normally within about five minutes), or run a manual sync. Load or restart the selected ACSM event only when it is safe to do so.
- Join with a compatible Assetto Corsa/CSP client and verify the HUD before a live competition.
The timer is named racecontrol-sync-ID.timer, where ID is the installation’s generated identifier. Each installation also has a private /etc/racecontrol/ID.json file.
Check or refresh an installation
To see the timer status, run systemctl list-timers 'racecontrol-sync-*'. To request an immediate sync, use your installation’s actual JSON path:
sudo python3 /opt/racecontrol-connector/connector.py --sync /etc/racecontrol/ID.json
A sync republishes the event catalog and applies the current web policy. When an event is disabled or a server is unlinked, the connector removes only its managed block on a later sync; it does not erase unrelated ACSM or CSP settings. Changed JSON files receive a .racecontrol-backup-* copy. Rerunning a sync does not duplicate the RaceControl block.
Rotate a lost or exposed license key
An organization manager can click Rotate key on /account. The new key is shown once, together with a complete copy-and-paste command for the Linux host. The old key stops authenticating immediately; update every installation that used it. The command contains the new secret, so run it only on the intended host and keep it out of shared logs or support tickets.
If you need to enter the new key privately rather than paste it in a command, use:
sudo bash /tmp/racecontrol-install.sh --replace-key /etc/racecontrol/ID.json
The assistant prompts for the new key without echoing it, saves a private backup of the old configuration and syncs. Replace ID.json with your installation’s actual file. The panel’s generated command can also handle a migrated organization when there is exactly one local installation.
Troubleshooting
| Symptom | Check |
|---|---|
No servers appear on /account |
Confirm the ACSM root, connector timer and outbound HTTPS. Run a manual sync. |
| Server appears but cannot be linked | Check the active license and available server slots; confirm public IPv4 and TCP port. |
Event is missing in /settings |
Confirm ACSM stores a configurable event in the selected root; let the connector publish the catalog again. |
| HUD is absent in game | Confirm the server is linked, event is enabled and has been loaded by ACSM; confirm the client’s CSP compatibility and HUD audience. |
| Key rotation stops sync | Update the stored connector key with the command shown after rotation. |
The connector does not install a client mod manually for each driver. It also does not provide every local ACSM integration by itself: features that need direct results or timing-file access require their specific integration. Windows and plain acServer without ACSM are outside this installer workflow.
For a controlled removal, first unlink the server in /account, allow a sync to remove the managed event block, then stop its timer and remove only that installation’s unit and /etc/racecontrol/ID.json. Keep backups until you have verified ACSM loads correctly. Do not delete other RaceControl installations or unrelated CSP sections.