This article explains how to install the MacStadium runner on Linux using Docker. The MacStadium runner is packaged as a minimal Docker image distributed on DockerHub.


Install Docker and pull the public image:

$ docker pull drone/drone-runner-macstadium


The MacStadium API requires a VPN running locally to access your cluster. You will need to install and configure a VPN on the same machine as runner, following the official MacStadium guide.


The default MacStadium images do not have a git client installed. You will need to create a virtual machine and install the git client and any other software required for your pipelines. Save the virtual machine as a custom image. You will need to provide the runner with the name of this image as part of the install process.


The runner uses the MacStadium API to provision virtual machines. Use the Orka command line interface to login to your MacStadium account. The Orka CLI stores your API token in a configuration file in your home directory. You will need to provide the runner with the token as part of the install process.

  • View the contents of the Okra configuration file:

    $ cat ~/.config/configstore/orka-cli.json
  • Extract the token from the json configuration file:

        "api-url": "",
        "api-version": "1.1.0",
        token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.e30.Et9HFtf9R3GEMA0IICOfFMVXY7kkTX1wr4qCyhIf58U",


The runner is configured using environment variables. This article references the below configuration options. See Configuration for a complete list of configuration options.

    provides the hostname (and optional port) of your Drone server. The runner connects to the server at the host address to receive pipelines for execution.
    provides the protocol used to connect to your Drone server. The value must be either http or https.
    provides the shared secret used to authenticate with your Drone server. This must match the secret defined in your Drone server configuration.
    provides your MacStadium API endpoint. The default value is
    provides your MacStadium API token.
    provides the default number of virtual cpus allocated to a virtual machine. The default value is 12 virtual cpus.
    provides the default virtual machine image.
    provides the virtual machine image username. The default value is admin.
    provides the virtual machine image password. The default value is admin.


The below command creates a container and starts the runner. Remember to replace the environment variables below with your Drone server details.

$ docker run -d \
  -e DRONE_RPC_PROTO=https \
  -e \
  -e DRONE_RPC_SECRET=super-duper-secret \
  -e DRONE_VM_IMAGE=... \
  -p 3000:3000 \
  --restart always \
  --name runner \


Use the docker logs command to view the logs and verify the runner successfully established a connection with the Drone server.

$ docker logs runner

INFO[0000] starting the server
INFO[0000] successfully pinged the remote server