condenser is a bootstrapper for installing, configuring, & launching Steam dedicated server apps.
To see condenser in action, watch the intro video.
condenser makes it easy to install, configure, and launch dedicated servers.
With condenser, all of your Steam servers are configured in JSON, allowing you to quickly create any number of servers from one common platform.
condenser also provides a convenient way to store your Steam server configuration in source control.
- Edit servers.json with details about each of your servers
- Included are many example servers. Remove any that are not needed
- Make a copy of sample.secrets.json named secrets.json
- Edit secrets.json with secrets for each server and each app
- Run
condenser -list
to confirm your configuration is valid - Run
condenser -update
to install all servers you've defined - When adding a Steam account to secrets.json, the first update triggers Steam Guard.
- You will receive an email with a code that you must enter when prompted.
- Run
condenser -launch
to start all servers
This file defines apps. Create one entry for each distinct app.
condenser already includes definitions for the following apps:
- Counter-Strike: Global Offensive
- Counter-Strike: Source
- Team Fortress 2
- Garrysmod
- Left 4 Dead 2
- Natural Select 2
- NS2: Combat
Example for the NS2 Dedicated Server app:
"_name": "ns2",
"appid": 4940,
"exe": "Server.exe",
"arguments": [
"config_path",
"modstorage",
"logdir",
"ip",
"port",
"name",
"limit",
"mods",
"map",
"webadmin",
"webdomain",
"webport"
],
"secrets": [
"webuser",
"webpassword",
"password"
]
- _name: A friendly name for the app. Has no effect on script functionality
- appid: The official Steam appid, available from steamdb.info
- exe: The name of the execuable to run, within the server's path
- arguments: Arguments to use when launching the app. Names only. Values set in servers.json
- secrets: Secrets to use when launching the app. Names only. Values set in secrets.json
This file stores the configuration for each of your servers.
Example for one NS2 server:
"_name": "ns2",
"serverid": 0,
"appid": 4940,
"beta": "",
"install_dir": "c:\\condenser\\server\\ns2",
"arguments": [{
"config_path": "c:\\condenser\\config\\ns2",
"logdir": "c:\\condenser\\logs\\ns2",
"modstorage": "c:\\condenser\\mods\\ns2",
"webdomain": "",
"name": "My NS2 Server",
"ip": "",
"port": 27015,
"webport": 8081,
"map": "ns2_summit",
"limit": 16,
"mods": "706d242 812f004"
}],
"priority": 1,
"cores": [0,1]
- _name: Friendly name for the server. Has no effect on script functionality
- serverid: Unique identifer for each server. Corresponds with serverid used by secrets.json
- appid: Corresponds to appid defined in apps.json
- beta: Beta branch to use when installing/updating the server, if applicable
- install_dir: Location to install server binaries
- arguments: Arguments as defined in apps.json, and their values for this particular server
- priority: Process priority. Integer value from 1 to 6, where 1 is the highest priority
- cores: Array of logical processor cores. Useful for isolating servers on the same machine
This file stores server and app secrets, such as usernames and passwords.
It is listed in .gitignore
to avoid saving sensitive data in source control.
Example for one NS2 server, and the NS2 Dedicated Server app:
"servers": [
{
"serverid": 0,
"webuser": "myWebUser",
"webpassword": "myWebPassword",
"betapassword": "",
"password": ""
}
],
"apps": [
{
"appid": 4940,
"steam_username": "mySteamUsername",
"steam_password": "mySteamPassword"
}
]
- servers: Secrets for each distinct server
- serverid: Corresponds with serverid as defined in servers.json
- Secrets will vary by app. This example shows secrets used by ns2, as defined in apps.json.
- apps: Secrets for each distinct app
- appid: Corresponds with appid as defined in apps.json
- steam_username: Steam account used to install/update the app
- steam_password: Steam password that corresponds with the username above
Run condenser
from a command prompt to see the various command line switches.
-list
will parse apps.json, servers.json, and secrets.json and report any errors.
-update
will install/update apps for each server defined in servers.json
Note: When adding a Steam account to secrets.json, the first update triggers Steam Guard. You will receive an email with a code that you must enter when prompted.
-launch
will start all servers defined in servers.json
-serverid #
will restrict your command to only serverid # in servers.json
example | action |
---|---|
condenser -update |
update all servers |
condenser -launch |
launch all servers |
condenser -update -serverid 2 |
update only serverid 2 |
condenser -launch -serverid 3 |
launch only serverid 3 |