Installs the Valve Steam server client and a Steam Game Server

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.

Charm Store

juju deploy cs:~marcoceppi/precise/steam









  • Marco Ceppi


In past 7 days: 0
In past 30 days: 1
In past half year: 15
All time: 19


# Overview

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.

# Installation

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

# Configuration

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

# Caveats

## Multiple games per server

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

## Scale-out

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





Test Results

No test results.


  • 2013/02/15 Marco Ceppi Fixes to make steam a primary to the subordinate model (revno 40)
  • 2013/02/14 Marco Ceppi Open these ports! (revno 39)
  • 2012/10/30 Marco Ceppi Renamed to markdown (revno 38)
  • 2012/10/30 Marco Ceppi Remove all configuration options (revno 37)
  • 2012/10/30 Marco Ceppi Added more caveats (revno 36)
  • 2012/10/30 Marco Ceppi Updated readme (revno 35)
  • 2012/10/30 Marco Ceppi Removing game specific stuff for subordinates (revno 34)
  • 2011/11/21 Marco Ceppi Added start of DoD:S config (revno 33)
  • 2011/11/21 Marco Ceppi Fixed "tf2" configuration file (revno 32)
  • 2011/11/21 Marco Ceppi Updated default name and improved type casting in config.yaml (revno 31)