Gitlab Runner

GitLab Runner is the open source project that is used to run your jobs and send the results back to GitLab. It is used in conjunction with GitLab CI, the open-source continuous integration service included with GitLab that coordinates the jobs.


For this guide you should be familiar with the basic concepts of


gitlab project

You need to have a project in gitlab that you want to deploy using Gitlab Runner.

For further information please refer to the official Gitlab Runner docs

Obtain registration token

To create a specific Runner without having admin rights to the GitLab instance, visit the project you want to make the Runner work for in GitLab:

Go to Settings > CI/CD to obtain the token


Download latest version

Use wget to download the latest version of Gitlab Runner:

[isabell@stardust ~]$ wget -O /home/$USER/bin/gitlab-runner

Make it executable:

[isabell@stardust ~]$ chmod +x /home/$USER/bin/gitlab-runner

Optional check runner version:

[isabell@stardust ~]$ /home/$USER/bin/gitlab-runner -v

Create working directory

Create a working directory for the runner:

[isabell@stardust ~]$ mkdir /home/$USER/gitlab-runner

Register the runner


You need your registration token you copied above.

This basic setup uses the shell executor. See: Gitlab Runner Executors

[isabell@stardust ~]$ /home/$USER/bin/gitlab-runner register

Configure the supervisord service

Create a shell script (e.g. /home/$USER/bin/ that keeps the call for the runner:

/home/$USER/bin/gitlab-runner-11.1.0 run --working-directory=/home/$USER/gitlab-runner/

Make it executable:

[isabell@stardust ~]$ chmod +x /home/$USER/bin/

Create supervisord ini (e.g. /home/$USER/etc/services.d/gitlab-runner.ini:


Tell supervisord to refresh its configuration and start the service:

[isabell@stardust ~]$ supervisorctl reread
gitlab-runner: available
[isabell@stardust ~]$ supervisorctl update
gitlab-runner: added process group
[isabell@stardust ~]$ supervisorctl status
gitlab-runner                   RUNNING   pid 26020, uptime 0:03:14
[isabell@stardust ~]$

If it’s not in state RUNNING, check your configuration.

Tested with Gitlab Runner 11.1.0, Uberspace