> ## Documentation Index
> Fetch the complete documentation index at: https://docs.peak.inc/llms.txt
> Use this file to discover all available pages before exploring further.

# Connect GitLab

> Run GitLab CI jobs on Peak runners.

## Before you start

* Ask your Peak contact to turn on GitLab for your workspace.
* Sign in to Peak as an Admin.
* Be an Owner of the GitLab group, or a Maintainer of the project.
* Use gitlab.com. Self-managed GitLab isn't supported.
* Run x64 jobs on Peak. Keep arm64 jobs on your current runners.

## Connect GitLab

1. Open [Settings → GitLab](https://app.peak.inc/settings/gitlab).
2. Choose Connect GitLab.
3. Authorize Peak on GitLab. Peak asks for read\_api, create\_runner and manage\_runner.
4. Select your groups or projects.
5. Choose Save.
6. Wait for Runner ready beside each one.

## Run jobs on Peak

Set the tags of your jobs to peak.

```yaml theme={null}
default:
  tags: [peak]
```

Keep your images and services.

Check these before you move a job.

* Each job runs in a new x64 VM with 8 vCPU and 32 GiB.
* Jobs stop after 6 hours.
* Jobs without an image use ubuntu:24.04.
* Peak runners also take jobs from protected branches.
* Jobs reach the internet on every port except 25. Send mail on port 587 or 465.

Build Docker images with the docker:dind service and these four variables.

```yaml theme={null}
build:
  image: docker:27
  services: [docker:27-dind]
  variables:
    DOCKER_HOST: tcp://docker:2376
    DOCKER_TLS_CERTDIR: /certs
    DOCKER_TLS_VERIFY: "1"
    DOCKER_CERT_PATH: /certs/client
  script:
    - docker build -t app .
```

For buildx, create a context first. buildx refuses the TLS variables without one.

```yaml theme={null}
  script:
    - docker context create peak
    - docker buildx create --use --name peak peak
    - docker buildx build -t app .
```

## Fix problems

| Problem | What to do |
| - | - |
| Job stays pending | Remove every tag except peak from the job. |
| No groups listed | Check that you own the group or maintain the project. Then choose Refresh list. |
| GitLab access ended | Connect GitLab again with the same GitLab account. |

## Remove GitLab

1. Set the tags of your jobs back to your own runners.
2. Open Settings → GitLab.
3. Choose Remove, then Confirm removal.
4. Check that the runners named Peak are gone from GitLab.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.