GitLab Development Kit (GDK)
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 15 GB disk space. Available for supported platforms.
- One-line installation.
- Simple installation.
- GDK-in-a-box. Requires at least 30 GB disk space.
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 |
- (1) We follow Apple's supported versions.
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:
- Advanced installation on your local system. Requires at least 8 GB RAM and 12 GB disk space.
- Vagrant.
- minikube.
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:
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?
- 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
- We encourage you to create a new issue.
- GitLab team members can use the
#gdk
channel on the GitLab Slack workspace. - Review the troubleshooting information.
- Wider community members can use the following:
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.