Configure GDK-in-a-box
If you want to contribute to the GitLab codebase and want a development environment in which to test your changes, you can use GDK-in-a-box. GDK-in-a-box is available as a multi-platform container image, pre-configured with the GitLab Development Kit (GDK).
Virtual Machine (VM) images for GDK-in-a-box are also available. These VM images are from an earlier iteration of GDK-in-a-box. Information related to these has been retained below. Note, they are deprecated and not actively updated.
The GDK is a local development environment that includes an installation of GitLab Self-Managed, sample projects, and administrator access with which you can test functionality.
It requires 30 GB of disk space.
If you prefer to use GDK locally without a VM, use the steps in Install the GDK development environment
Download GDK-in-a-box
-
Install a container runtime.
- Multiple options are available, including Docker Desktop, Docker Engine, and Rancher Desktop.
- Docker Desktop can also be installed through package managers like Homebrew.
- Note: On Rancher Desktop, you may want to disable Kubernetes under "Preferences".
- Other container runtimes that support Docker-compatible commands should also work.
-
Pull the container image. The image requires a download of less than 6 GB and might take some time to download.
docker pull registry.gitlab.com/gitlab-org/gitlab-development-kit/gitlab-gdk-in-a-box:latest
-
Create a container from the image:
docker run -d -h gdk.local --name gdk \ -p 2022:2022 \ -p 2222:2222 \ -p 3000:3000 \ -p 3005:3005 \ -p 3010:3010 \ -p 3038:3038 \ -p 5100:5100 \ -p 5778:5778 \ -p 9000:9000 \ registry.gitlab.com/gitlab-org/gitlab-development-kit/gitlab-gdk-in-a-box:latest
-
Continue to Use VS Code to connect to GDK.
Use VS Code to connect to GDK
View a demo video of this step.
You might need to modify the system configuration of your container runtime (CPU cores and RAM) before starting it. A suggested configuration is less than 12 GB RAM, and 4 cores.
-
Start the container.
-
In VS Code, select Terminal > New terminal, then run a
curl
command to add an SSH key to your local~/.ssh/config
:curl "https://gitlab.com/gitlab-org/gitlab-development-kit/-/raw/main/support/gdk-in-a-box/setup-ssh-key" | bash
To learn more about the script, you can examine the
setup-ssh-key
code. -
In the script, type
1
to select the Container installation. -
In VS Code, install the Remote - SSH extension:
-
Connect VS Code to the VM:
- Select Remote-SSH: Connect to host from the command palette.
- Select
gdk.local
to connect.
-
A new VS Code window opens. You can close the old window to avoid confusion. Complete the remaining steps in the new window.
-
In the VS Code terminal, run a
curl
command to configure Git in the GDK:curl "https://gitlab.com/gitlab-org/gitlab-development-kit/-/raw/main/support/gdk-in-a-box/first_time_setup" | bash
- Enter your name and email address when prompted.
- Add the displayed SSH key to your profile.
To learn more about the script, you can examine the
first_time_setup
code. -
In VS Code, select File > Open folder, and go to:
/home/gdk/gitlab-development-kit/gitlab/
. -
Open GitLab in your browser:
http://gdk.local:3000
. -
Sign in with the username
root
and password5iveL!fe
. -
Continue to change the code with the GDK.
Shut down the GDK Container
You can stop the container by running the following command on your host:
docker stop gdk
Remove the GDK Container
This deletes the current container and any data inside. Ensure you have committed any changes before running this command.
You can remove the container by running the following command on your host:
docker rm gdk
Update GDK-in-a-box
You can update GDK-in-a-box while connected to gdk.local
in VS Code.
In the VS Code terminal, enter:
gdk update
Change the code
After the GDK is ready, continue to Contribute code with the GDK.
Download GDK-in-a-box VM Images (Deprecated)
- Download and install virtualization software to run the virtual machine:
- Mac computers with Apple silicon: UTM. Select Download from GitHub.
- Linux / Windows / Mac computers with Intel silicon: VirtualBox
- Download and unzip GDK-in-a-box. The file is up to 15 GB and might take some time to download:
- Mac computers with Apple silicon: UTM image
- Linux / Windows / Mac: VirtualBox image
- Double-click the virtual machine image to open it:
- UTM:
gdk.utm
- VirtualBox:
gdk.vbox
- UTM:
- Continue to Use VS Code to connect to GDK (VM).
Use VS Code to connect to GDK (VM)
You might need to modify the system configuration (CPU cores and RAM) before starting the virtual machine.
-
Start the VM (you can minimize UTM or VirtualBox).
-
In VS Code, select Terminal > New terminal, then run a
curl
command to add an SSH key to your local~/.ssh/config
:curl "https://gitlab.com/gitlab-org/gitlab-development-kit/-/raw/main/support/gdk-in-a-box/setup-ssh-key" | bash
To learn more about the script, you can examine the
setup-ssh-key
code. -
In the script, type
2
to select the VM installation. -
In VS Code, install the Remote - SSH extension:
-
Make sure that VS Code has access to the local network (Privacy & Security > Local Network).
-
Connect VS Code to the VM:
- Select Remote-SSH: Connect to host from the command palette.
- Enter the SSH host:
gdk.local
-
A new VS Code window opens. You can close the old window to avoid confusion. Complete the remaining steps in the new window.
-
In the VS Code terminal, run a
curl
command to configure Git in the GDK:curl "https://gitlab.com/gitlab-org/gitlab-development-kit/-/raw/main/support/gdk-in-a-box/first_time_setup" | bash
- Enter your name and email address when prompted.
- Add the displayed SSH key to your profile.
To learn more about the script, you can examine the
first_time_setup
code. -
In VS Code, select File > Open folder, and go to:
/home/debian/gitlab-development-kit/gitlab/
. -
Open GitLab in your browser:
http://gdk.local:3000
. -
Sign in with the username
root
and password5iveL!fe
. -
Continue to change the code with the GDK.
Shut down GDK VM
You can select the power icon ({power}) to shut down
the virtual machine, or enter the shutdown
command in the terminal.
Use the password debian
:
sudo shutdown now