Last updated: March 2026
GitKraken Self-Hosted Server runs on a Linux virtual machine (CentOS, Ubuntu, or RHEL7) inside Docker containers. To begin, you’ll first need to install Docker.
GitKraken Desktop Self-Hosted and On-Premise Serverless versions are sold separately from standard subscriptions. To purchase, visit our On-Premise Pricing page.
Quick Start
Install GitKraken Self-Hosted Server on a Linux machine using Docker and Docker Compose.
- Install Docker CE and Docker Compose on your Linux host (CentOS, Ubuntu, or RHEL7). Follow the platform-specific steps in the sections below, or refer to the official Docker documentation.
- Start Docker:
sudo systemctl start docker. - Extract
GitKrakenEnterpriseServer.zipinto a directory on your host machine. - Load the Docker images:
sudo sh loadImages.sh. - (Optional) Edit
docker-compose.ymlto change the port (default: 3000) and set theGITKRAKEN_ENTERPRISE_URLto your server’s address. - Create the directory for GitKraken Desktop releases and extract
release.zipinto it (default path:./gk-data/release). - From the directory containing
docker-compose.yml, start the server:sudo docker-compose up. - Open
http://localhost:3000(or your configured URL) in a browser to complete the setup.
For offline installations, download Docker CE and Docker Compose on a machine with internet access, transfer the packages to your server, and install them manually before proceeding.
Install Docker CE on CentOS
These instructions are based on the official Docker documentation.
With internet access
-
Install required packages:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 -
Set up the stable repository:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo -
Update the yum package index:
sudo yum makecache fast -
Install Docker:
sudo yum install docker-ce -
Configure the Docker daemon:
{ "storage-driver": "devicemapper" }Edit or create the
/etc/docker/daemon.jsonfile with the above content. -
Start Docker:
sudo systemctl start docker -
Switch to root user:
sudo su -
Download Docker Compose:
curl -L https://github.com/docker/compose/releases/download/1.14.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose -
Apply executable permissions:
sudo chmod +x /usr/local/bin/docker-compose -
Proceed to the installation section.
Without internet access
-
Download Docker CE and Docker Compose on a different machine.
-
Transfer the packages to the target server.
-
Install the packages:
sudo yum install /path/to/docker-ce-selinux-package.rpm sudo yum install /path/to/docker-ce-package.rpm -
Move and rename Docker Compose:
sudo mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose -
Change permissions:
chmod +x /usr/local/bin/docker-compose -
Configure the Docker daemon as previously described.
-
Start Docker:
sudo systemctl start docker -
Continue to the installation section.
Install Docker CE on Ubuntu
Refer to the official Docker documentation.
With internet access
-
Install required packages:
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common -
Add Docker’s GPG key:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - -
Verify the key:
sudo apt-key fingerprint 0EBFCD88 -
Set up the stable repository:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" -
Update the apt package index:
sudo apt-get update -
Install Docker:
sudo apt-get install docker-ce -
Switch to root user:
sudo su -
Download Docker Compose:
curl -L https://github.com/docker/compose/releases/download/1.14.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose -
Apply executable permissions:
sudo chmod +x /usr/local/bin/docker-compose -
Proceed to the installation section.
Without internet access
-
Download Docker CE package from a machine with internet access.
Check your version:
lsb_release -a -
Download Docker Compose:
-
Transfer both files to the host server.
-
Install Docker:
sudo dpkg -i /path/to/package.deb # Example: sudo dpkg -i docker-ce_17.06.0-ce-0-ubuntu_amd64.deb -
Move and rename Docker Compose:
sudo mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose -
Apply executable permissions:
sudo chmod +x /usr/local/bin/docker-compose
Install Docker CE on RHEL7
With internet access
-
Install required packages:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 -
Set up the Docker repository:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo -
Update the yum package index:
sudo yum makecache fast -
Install Docker:
sudo yum install --setopt=obsoletes=0 docker-ce-17.03.2.ce-1.el7.centos.x86_64 docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch -
(Optional) To view available Docker versions:
yum list docker-ce --showduplicates | sort -r -
Configure the Docker daemon:
{ "storage-driver": "devicemapper" }Edit or create the
/etc/docker/daemon.jsonfile with the above content. -
Start Docker:
sudo systemctl start docker -
Switch to root user:
sudo su -
Download Docker Compose:
curl -L https://github.com/docker/compose/releases/download/1.14.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose -
Apply executable permissions:
sudo chmod +x /usr/local/bin/docker-compose -
Proceed to the installation section.
Without internet access
-
Download Docker CE and Docker Compose packages from a machine with internet access.
- Docker CE for CentOS (select both the docker-ce-selinux and the docker-ce package of the same version, e.g., 17.03.1)
- Docker Compose
-
Transfer the files to the host server.
-
Install Docker:
sudo yum install /path/to/docker-ce-selinux-package.rpm sudo yum install /path/to/docker-ce-package.rpm -
Move Docker Compose to the appropriate directory:
sudo mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose -
Apply executable permissions:
sudo chmod +x /usr/local/bin/docker-compose -
Configure the Docker daemon:
Edit or create the /etc/docker/daemon.json file:
{
"storage-driver": "devicemapper"
}
-
Start Docker:
sudo systemctl start docker -
Proceed to the installation section.
Install GitKraken Self-Hosted Server
-
Extract the
GitKrakenEnterpriseServer.zipfile into a directory of your choice. All subsequent commands assume you are operating within this directory. -
Load the Docker images:
sudo sh loadImages.sh -
Configure the port on which GitKraken Self-Hosted should run. By default, it runs on port 3000. To change it, edit the
docker-compose.ymlfile:
Find the ports section under gk-enterprise-controller:
ports:
- "3000:3000"
Change the first value to your desired port. For example, to use port 80:
ports:
- "80:3000"
Update the GITKRAKEN_ENTERPRISE_URL in both the gk-enterprise-controller and gk-services sections:
environment:
GITKRAKEN_ENTERPRISE_URL: http://localhost:80
-
(Optional) To access GitKraken Self-Hosted from outside the server, update
GITKRAKEN_ENTERPRISE_URLwith your domain:environment: GITKRAKEN_ENTERPRISE_URL: http://gitkraken.example.com:80 -
Configure the folder where GitKraken Desktop releases will be stored. The default path is
./gk-data/release. To change this, update the volume undergk-enterprise-controller:volumes: - /your/custom/path:/controller/release -
Create the directory you specified for storing releases on the host machine.
-
Extract
release.zipinto the directory you created in step 6. -
In the directory containing
docker-compose.yml, start the application:sudo docker-compose up- To run in detached mode:
sudo docker-compose up -d
- To run in detached mode:
- For CentOS or RHEL7, you may need to use the full path:
sudo systemctl start docker.service sudo /usr/local/bin/docker-compose up
- Visit
http://localhost:3000(or the configured URL/port) in your browser to complete the setup.