Docker Compose and build files used to host my SRB2Kart server. If you'd like to join, connect to flitpix.net:5029.
This repo doesn't include any code or assets from SRB2Kart, and I'm not affiliated with Kart Krew, Sonic Team Junior, or any addon authors in any way.
The host system must have the following software installed to proceed:
All instructions here assume that...
- You are on a Linux server, though the Docker Compose should work fine on a Windows server with Docker as well.
- You are familiar with Docker Engine and Docker Compose.
Clone this repository.
Place any addons you want except bonuschars.kart in the included addons directory.
By default, SRB2Kart version 1.6 is built. If you need a different version, open docker-compose.yml and change it on line 9.
You may also change the starting map on line 10 (vanilla map list here), set a server admin password on line 11 (used in-game with login <password>), and change the game port on line 13.
Open kartserv.cfg and change the cvars listed there. The following table lists known options, what they do, and their defaults (more may be found on the wiki, though not all will work in SRB2Kart):
| Option | Description | Choices | Default |
|---|---|---|---|
| servername | Your server's name, as it will appear on the in-game server list. | String | "SRB2Kart server" |
| server_contact | A place where someone can contact the host or admins. Setting this is highly recommended for public servers. An email address or web forum is best. | String | Blank |
| motd | A message that will appear in chat for joining players. | String | Blank |
| maxplayers | The player cap for the server. | 1-16 | 8 |
| masterserver | The API URL for the master server to connect to. | String (URL) | "https://ms.kartkrew.org/ms/api" |
| advertise | Whether to show your server in the public server browser. | "Yes" or "No" | "Yes" |
| mute | Disables chatting for everyone except the host and logged-in admins. | "Yes" or "No" | "No" |
| showjoinaddress | Whether to show the IP addresses of joining players to the host. | "Yes" or "No" | "No" |
| kartspeed | The driving speed for all players. | "Normal", "Easy", or "Hard" | "Normal" |
| inttime | Intermission timer between rounds (in seconds). | Number | 20 |
| countdowntime | In Race games, sets a countdown (in seconds) starting from when the first player finishes. Anyone who doesn't finish within the countdown retires. | 15 - 9999 | 30 |
| votetime | The time limit (in seconds) when voting for the next map. | 10 - 3600 | 20 |
| overtime | If enabled, when 2+ players/teams in a Battle Mode match are tied, the match will not finish until the tie is resolved. | "Yes" / "No" | "Yes" |
| advancemap | Determines how the next map is decided. "Vote" has the players vote; "Random" chooses the next map at random; "Same" plays the same map again. | "Vote", "Random", or "Same" | "Vote" |
| autobalance | If set to a value other than 0, teams are automatically balanced if enabled. The higher the value, the greater the team member difference can be before autobalancing. | Number | 0 |
| allowteamchange | Whether players can change teams mid-game in Battle Mode. | "Yes" or "No" | "No" |
| restrictskinchange | Whether players can change characters. | "Yes" or "No" | "Yes" |
| pausepermission | Whether players can pause the game. | 0/"Server" or 1/"All" | "Server" |
| resynchattempts | Number of attempts to resynchronize a desynchronised player before kicking them. | Number | 2 |
| nettimeout | The maximum amount of time (in ticks) to wait between packets sent before the game considers the player to have timed out and kicks them. | Number | 15 |
| jointimeout | How long (in ticks) a joining player may take to download the game state from the server. An extra tick is also added for each KB of the game state. If the timer expires, the player will be refused by the server. | Number | 210 |
| maxsend | The maximum file size (in KB) | ||
| masterserver_update_rate | How often to update the master server listing (in minutes). | Number | 15 |
| masterserver_timeout | The maximum time (in seconds) that contacting the master server is allowed to complete. | Number | 5 |
| masterserver_token | Used for optional authentication with the master server. | String | Blank |
| masterserver_debug | Toggles master server debug logging. | "Yes" or "No" | "No" |
Ensure you're in the same directory as docker-compose.yml, then run the Docker Compose script to start the containers:
docker compose up -d
To add new addons or change server options, add the addons to the addons folder, edit kartserv.cfg, and/or edit entrypoint.sh, then rebuild the image:
docker build -t=srb2kart-server .
And (re)start the server:
docker compose up -d
- Sega: For creating Sonic the Hedgehog and keeping it going despite it all
- Sonic Team Junior: Sonic Robo Blast 2
- Kart Krew: SRB2Kart