Sign inSign up

zino1337/acevo-server

By zino1337

•Updated about 2 months ago

Assetto Corsa EVO dedicated server Docker image

Image
0

5.0K

zino1337/acevo-server repository overview

⁠Assetto Corsa EVO Dedicated Server

License: MIT CI Docker Pulls Docker Image Size GitHub Repository

Highly customizable Assetto Corsa Evo Dedicated Server running on Linux via Proton.
Configure server and event settings via environment variables, web dashboard or server_launcher.json.
Copy .env.example to .env and start with Docker Compose.
Not affiliated with Kunos Simulazioni or Assetto Corsa.

This Docker Hub README is shortened. Full documentation is available on GitHub. Full README: https://github.com/zino1337/acevo-server⁠

⁠Features

  • Web dashboard to configure and control the server, including a live driver overview
  • Mod support
  • Environment variables or server_launcher.json for easy server configuration
  • SteamCMD auto-update
  • Practice and Race Weekend support
  • Linux server via Proton
  • Headless deployment by default - no GPU needed
  • Host user/group mapping for volumes

⁠Requirements

  • Docker and Docker Compose
  • Steam account owning Assetto Corsa EVO⁠
  • Recommended: 2 CPU cores and 4 GiB RAM or more

⁠Quickstart

git clone https://github.com/zino1337/acevo-server.git
cd acevo-server
cp .env.example .env

Set STEAM_USERNAME to your Steam account name (not your email).
Set STEAM_PASSWORD before first start.

First login may fail when Steam Guard sends a code.
Put the code into STEAM_AUTH_CODE and run docker compose up -d again.

docker compose up -d

⁠Volumes

The Steam volume keeps SteamCMD login state so Steam Guard is not required on every restart of the server.

Volume / PathDescription
/dataPersistent server data, saves, and generated config files
/data/modsPersistent .kspkg car mods
/root/.local/share/SteamSteamCMD cache and login state
/data/server_launcher.jsonOptional official Windows launcher config loaded via SERVER_LAUNCHER_JSON

Environment variables have priority by default. Save alone does not change that priority. Save & Apply activates Dashboard priority, so saved server_launcher.json values override conflicting dashboard-managed variables. Operational settings such as Steam credentials, dashboard auth, update controls, and paths always remain ENV-based. When both sources exist, the header shows the active priority and lets you switch back without deleting either configuration.

The official AC EVO 0.9 launcher does not store the Mandatory Pitstop main switch in its JSON. An eligible imported file therefore defaults the switch to Off and shows a Dashboard warning until it is explicitly enabled.

⁠Ports

SERVER_TCP_PORT and SERVER_UDP_PORT can be changed, but both must use the same port value or clients cannot connect.

PortProtocolDefaultPurpose
9700TCPyesServer TCP port
9700UDPyesServer UDP port
8080TCPyesHTTP/listing port
8090TCPyesWeb dashboard

⁠Web Dashboard

Open http://<host>:8090 in a browser (change the port with DASHBOARD_PORT). Protect it by setting DASHBOARD_USER / DASHBOARD_PASSWORD (an empty password makes it public).

From the dashboard you can:

  • Configure server and event settings visually - server name, ports, passwords, cars, track, weather etc.
  • Install and remove .kspkg car mods from the Mods tab
  • Start/Stop/Restart the server
  • Watch live logs

Windows: start the stack with docker compose -f docker-compose.winvol.yml up -d instead.

⁠Mod Support

AC EVO supports modded cars in multiplayer. Every driver needs exactly the same mod file as the server; otherwise, AC EVO rejects the connection.

  1. Open Mods, upload a .kspkg file, and click Install. Car variants are detected automatically.
  2. Open the Configuration tab, select the newly added car, and click Save & Apply.
  3. Every driver must install the exact same .kspkg locally at %USERPROFILE%\Saved Games\ACE\mods before joining.

If an upload is interrupted, select the same file again within 24 hours and click Install to resume it.

Without the dashboard, stop the server and copy .kspkg files to ./volumes/data/mods (/data/mods inside the container).

Only .kspkg car mods are managed. Additional SDK JSON files are not required and remain untouched in the volume. Cars and variants are identified by their mechanical preset IDs inside the package; invalid packages and conflicting IDs are not added to the car selector. An explicit EVENT_CARS=all also includes all conflict-free installed mods.

⁠Docker Compose Examples

# Practice server
docker compose up -d

# Race Weekend server
docker compose -f docker-compose-race.yml up -d

⁠Environment Variables

This section is shortened on Docker Hub. See the full table in the GitHub README: https://github.com/zino1337/acevo-server#environment-variables⁠

NameDefaultDescription
STEAM_USERNAMEemptySteam account name, not email.
STEAM_PASSWORDemptySteam account password for SteamCMD.
STEAM_AUTH_CODEemptySteam Guard auth code for the next login.
SERVER_LAUNCHER_JSON/data/server_launcher.jsonOptional official tool config loaded as base.
SERVER_NAMEAC EVO Nordschleife TrackdayPublic server name.
SERVER_TCP_PORT9700TCP listener port. Must match SERVER_UDP_PORT.
SERVER_UDP_PORT9700UDP listener port. Must match SERVER_TCP_PORT.
SERVER_HTTP_PORT8080HTTP/listing port.
SERVER_MAX_PLAYERS20Maximum player slots; downscaled to track max.
SERVER_TYPERankedRanked or Unranked.
SERVER_TUNING_TYPETuningAllowedTuningAllowed or TuningDenied.
SERVER_ENTRY_LIST_URLemptyRemote entry list URL.
SERVER_ENTRY_LIST_PATHemptyLocal entry list JSON path.
SERVER_RESULTS_POST_URLemptyResult POST endpoint; put auth in URL query.
SERVER_RESULTS_PATHemptyLocal results save folder.
EVENT_TYPEPracticePractice or Race_Weekend.
EVENT_TRACKNurburgring_TouristenfahrtenTrack token.
EVENT_CARSallComma-separated car names/substrings, or all.
EVENT_CAR_CATEGORYallCar filters such as Road, Track, or EV.
EVENT_BAN_CARSemptyComma-separated car names/substrings to remove.
EVENT_BAN_CAR_CATEGORYemptyComma-separated category filters to remove.
PRACTICE_DURATION_MINUTES180Practice duration in minutes.
QUALIFY_DURATION_MINUTES10Qualify duration in minutes for race weekends.
WARMUP_DURATION_MINUTES5Warmup duration in minutes for race weekends.
RACE_DURATION_MINUTES25Race duration in minutes when type is Time.
RACE_DURATION_LAPS10Race duration in laps when type is Laps.
RACE_DURATION_TYPETimeRace duration mode: Time or Laps.
RACE_MIN_WAITING_FOR_PLAYERS_SECONDS10The minimum wait to start the race.
RACE_MAX_WAITING_FOR_PLAYERS_SECONDS60The maximum wait to start the race.
RACE_MANDATORY_PITSTOP_ENABLEDfalseTimed Race Weekend >20 min only.
RACE_MANDATORY_PITSTOP_WINDOW_SECONDS600Pit window, clamped to the race duration.
RACE_MANDATORY_PITSTOP_REFUELtrueRequire refuelling; may be Off with tyre change.
RACE_MANDATORY_PITSTOP_TYRE_CHANGEtrueRequire tyres; may be Off with refuelling.
AUTO_UPDATEtrueContainer-start update; server restarts skip it.
AUTO_START_SERVERtrueStart the server automatically with the container.
ACEVO_FORCE_SOFTWARE_RENDERINGtrueEnables default no-GPU host compatibility.
DASHBOARD_PORT8090Web dashboard port.
DASHBOARD_USERadminWeb dashboard Basic Auth username.
DASHBOARD_PASSWORDemptyWeb dashboard Basic Auth password; empty = public.

⁠Car Categories

This section is shortened on Docker Hub. See the full table in the GitHub README: https://github.com/zino1337/acevo-server#car-categories⁠

Use EVENT_CAR_CATEGORY with all, type, era, or engine categories.
You can set multiple car categories separated by commas, like EVENT_CAR_CATEGORY=Road,Track.

Examples: all, Road, Track, Modern, Vintage, ICE, EV, Hybrid.

⁠Cars

This section is shortened on Docker Hub. See the full table in the GitHub README: https://github.com/zino1337/acevo-server#cars⁠

Use EVENT_CARS with all or comma-separated car names/substrings.
Example: EVENT_CARS=Abarth_695_Biposto,Caterham_Academy.

⁠Tracks

This section is shortened on Docker Hub. See the full table in the GitHub README: https://github.com/zino1337/acevo-server#tracks⁠

Use EVENT_TRACK with an underscore token.
Example: EVENT_TRACK=Nurburgring_Touristenfahrten.

Tag summary

Content type

Image

Digest

sha256:a857d1157…

Size

874.6 MB

Last updated

about 2 months ago

docker pull zino1337/acevo-server