GitLab Development Kit (GDK)

build status

The GitLab Development Kit (GDK) installs GitLab on your workstation. GDK manages GitLab requirements, development tools and databases.

The GDK is used by GitLab team members and contributors to test changes locally to speed up the time to make successful contributions.

Goals

  • Provide tools to install, update, and develop against a local GitLab instance.
  • Automate installing required software.
  • Only manage projects, software, and services that may be needed to run a GitLab instance.
  • Out of the box, only enable the services GitLab strictly requires to operate.
  • Support native operating systems as listed below.

Installation

You can install GDK using the following methods. Some are:

  • Supported and frequently tested.
  • Not supported, but we welcome merge requests to improve them.

Supported methods

The following installation methods are supported, actively maintained, and tested:

Local

Requires at least 16 GB RAM and 30 GB disk space. Available for supported platforms.

Remote

Supported platforms

Operating system Versions
macOS 14, 13, 12 (1)
Ubuntu 22.04, 21.10
Fedora 36 (2), 35
Debian 13, 12
Arch latest
Manjaro latest

The list of platforms includes operating systems that run in a Windows Subsystem for Linux (WSL) environment.

Unsupported methods

The following documentation is provided for those who can benefit from it, but aren’t supported installation methods:

Post-installation

Using SSH remotes

GDK defaults to HTTPS instead of SSH when cloning the repositories. With HTTPS, you can still use GDK without a GitLab.com account or an SSH key. However, if you have a GitLab.com account and already added your SSH key to your account, you can configure git to rewrite the URLs to use SSH via the following configuration change:

shell git config --global url.'git@gitlab.com:'.insteadOf 'https://gitlab.com/'

NOTE: This command configures git to use SSH for all GitLab.com URLs.

FAQ

Why don’t we Dockerize or containerize GDK, or switch to GCK as the preferred tool?

We have GDK In A Box, a preconfigured virtual machine you can download and boot to instantly start developing.

Gitpod and Remote Development use a single container solution, but we are not yet ready to recommend a Docker solution for your primary development environment.

  • The majority of GDK users have macOS as their primary operating system, which is supported by Docker and other containerization tools but usually requires a virtual machine (VM). Running and managing a VM adds to the overall complexity.
  • The performance of Docker or containerization on macOS is still unpredictable. It’s getting better all the time, but for some users (both GitLab team members and our community) it may prove to be a blocker.
  • The ability to debug problems is another issue as getting to the root cause of a problem could prove more challenging due to the different execution and operating contexts of Docker or other containerization tools.
  • For users that run non-Linux operating systems, running Docker or other containerization tools have their own set of hardware requirements which could be another blocker.

Getting help

Contributing to GitLab Development Kit

Contributions are welcome; see CONTRIBUTING.md for more details.

Install Lefthook locally

Please refer to the Lefthook page.

License

The GitLab Development Kit is distributed under the MIT license; see the LICENSE file.