steam #3

  • By marcoceppi
  • Latest version (#3)
  • precise
  • Stable
  • Edge


Installs the Steam Client Binary and any selected Steam game.

Upon installation, the Steam client will be updated and the selected
game will be installed then started.


Valve's "HLDS" Steam server is a tool which allows users to run a dedicated game server for any of the Steam supported dedicated servers.

This charm is designed to deploy just the core HLDSUPDATETOOL and corrosponding Steam client. This will create a base for which other subordinate charms can be deployed on top of.


This charm is available from the Juju Charm Store. To deploy this charm you'll need at a minimum: a cloud environment, a working Juju installation,
and a successful bootstrap. Please refer to the Juju Getting Started guide before continuing.

Once bootstrapped, deploy the Steam charm:

juju deploy steam

This is the minimum required for this portion of the charm. To actually create a dedicated server you will need to deploy the games corrosponding charm. For example to launch a Left 4 Dead 2 server the following would be executed:

juju deploy left4dead2
juju add-relation left4dead2 steam

This adds left4dead2 support to the steam server and launches the game. For configuration options and other information please refer to the individual Steam game server charms

Lastly, to expose your game server to the public run the following command

juju expose steam


The steam charm inherits all configuration options from the specific subordinate charm deployed on Steam. Please refer to those readmes for additional information


Multiple games per server

Currently only one subordinate per deployed steam service is allowed. This is due to change shortly.


The Steam server client has no way of handling mutliple physical units per game server. Avoid using juju add-unit for deployed Steam services. If you wish to deploy multiple Steam servers use the following:

juju deploy steam gameserver1
juju deploy left4dead2 my_l4d2_game
juju deploy steam gameserver2
juju deploy left4dead2 yo_l4d2_game

You can substitue gameserver1, gameserver2, my_l4d2_game, yo_l4d2_game with names that best describe your intentions and infrastructure. Continue with the setup instructions substituting "left4dead2" with the alias provided above.

Replacing a game on a steam server

Currently a bug exists in Juju where removing the relation between a subordinate and a parent service does not properly fire hooks. In order to remove a subordinate game from a running steam service you will need to destroy the game suborindate. For example

juju destroy left4dead2
juju deploy teamfortress2
juju add-relation teamfortress2 steam


(string) The system user which steam runs under