run-gow

Historically, this was the first attempt that we’ve made at running games in Docker. Wolf has now completely replaced the simple bash script present in this repo.

Games on Whales ties together several different components, with support for many host OSes and hardware configurations. In order to make it easier to manage all that, and even make most of it automatic, we’ve provided a Bash script to handle the details for you.

You can think of run-gow as a frontend for docker-compose; it takes some of its own arguments at the beginning, but passes everything else on untouched. The complete usage description is below, but first let’s talk about a few of the options you’re definitely going to want to set.

--platform

The --platform option is used to specify whether the underlying Xorg and Pulse platform is provided by the host computer, or if GoW should launch containers for those components.

Use --platform host to use the host’s platform, or --platform headless to launch the platform in containers. The default is --platform host.

--gpu

Some GPUs require extra configuration, so the --gpu option is available to tell run-gow which GPU you plan on using. Possible values are nvidia and intel. Notably, AMD GPUs are reported to be working well without any additional configuration, so you won’t need this option if you’re using AMD.

If you’re running headless and you have more than one GPU, including if you have a dedicated GPU and an iGPU, you may need to manually tell Xorg which GPU to use. See here for details on how to do that. You should set the --gpu option appropriately for the GPU you plan to use.

--app

By default, if you launch GoW and connect with Moonlight, you’ll only see a basic desktop. However, it’s likely that you have at least one application in mind that you’d like to launch, and you can use the --app argument to specify that. Supported apps can be found in the compose/apps directory; just leave off the .yml:

$ ./run-gow --app steam

You can specify --app [app name] as many times as you like, if you want to launch multiple applications.

run-gow Usage
Launch the Games on Whales system

Usage: run-gow [options] [compose commands]
Arguments after the last option will be passed directly to 'docker compose'.
For example, to launch the containers in the background, try:
  $ run-gow --app retroarch up -d

Options:
  -h, --help
      Print this help text.

  -a, --app <app name>
      Specify an application to launch. Can be used multiple times.

  -d, --debug
      Print some extra debugging information before running Docker commands.

  -e, --env-file <file>
      Specify an additional file of environment varibles to load before launching 'docker compose'.

  -g, --gpu <type>
      Use this option to specify what type of GPU to use with Games on Whales. Not
      all GPU types require this option (notably, AMD does not).
      Possible types:
        nvidia, intel

  -p, --platform
      Use this option to specify whether system services like Xorg should be containerized or not.
      Possible values:
        headless     - run xorg, udev, and pulse in containers
        host         - use system services already running on the host server [default]

  -q, --quiet
      If set, this script will not produce any output of its own. This will not affect output from 'docker compose'.

  -s, --streamer
      Use this option to specify which streaming server should be used to connect with Moonlight.
      Possible values:
        sunshine     - the original, more stable option [default]
        wolf         - the bleeding edge option. still in beta.

  -x, --headless
      DEPRECATED.  If set, has the same effect as '--platform headless'

  --
      Signifies the end of options.

run-gow-rc

Once you’ve got your system set up how you like it, you’ll find that many of the options you provide to run-gow won’t actually change very frequently, if at all. In order to cut down on the repetitiveness of always having to type those arguments every time you use run-gow, we’ve provided a mechanism to supply a set of "default arguments".

You can do that by creating a file called $HOME/.config/gow/run-gow-rc that contains the defaults you’d like to use. The script will use the first non-empty, non-commented line as defaults each time you run, and any extra arugments you provide on the command line will override what’s in the run-gow-rc file.

For example, if you set your run-gow-rc to this:

--platform headless --gpu nvidia

and run:

$ ./run-gow --app steam up

run-gow will launch Steam in headless mode with NVIDIA GPU.