Back to Apps
Gitlab (runner)

Deploy Gitlab (runner) on Your Own Server

Runner version of GitLab for CI/CD pipeline

🛠️ Developer Tools

Want to deploy Gitlab (runner) on your server faster? Try Senate with one-command setup, automatic HTTPS and monitoring.

Get Started

What is Gitlab (runner)?

GitLab CI/CD is the CI/CD solution integrated into GitLab. With this one-click-app, you receive a self-hosted runner for your pipelines. To enable you to build Docker Images in your pipelines, we mount /var/run/docker.sock into the container of the runner (see https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#use-docker-socket-binding for more info). As a consequence, this container will have full access to all your other containers. If you don't need this functionality, feel free to manually remove the mounted Docker socket from the volumes.

Self-Host Gitlab (runner)

Follow these steps to deploy on your own server.

1

Install Docker

Skip this step if Docker is already installed on your server.

curl -fsSL https://get.docker.com | sh
2

Configure

Customize the settings below. Defaults work for most cases.

General
3

Deploy

Copy the configuration and run it on your server.

services:
  gitlab_runner:
    image: gitlab/gitlab-runner:${gitlab}-runner_version
    volumes:
      - gitlab_runner-data:/etc/gitlab-runner
      - /var/run/docker.sock:/var/run/docker.sock
volumes:
  gitlab_runner-data: {}

Then run:

docker compose up -d
4

Access

Once started, access your app at http://localhost:80

Why Self-Host Gitlab (runner)?

Full Data Ownership

Your data stays on your servers. No third-party access.

No Monthly Fees

Pay only for your server. No per-seat or usage charges.

Complete Control

Customize, backup, and scale on your own terms.

Privacy & Compliance

Meet GDPR, HIPAA, or internal security requirements.

Technical Details

Docker Image

gitlab/gitlab-runner:${gitlab}-runner_version

Want to go faster?

Try Senate! Senate handles Docker, HTTPS, updates, and monitoring for you. Deploy any of our 300+ apps with a single command.

Install on any Linux server:

sh -c "$(curl -sSL https://get.senate.sh)"