---
title: "Deploy GitLab"
description: "Self-hosted GitLab CE 19.5: Git, merge requests, issues, CI/CD. Sign-up off"
category: "Other"
url: https://railway.com/deploy/gitlab-1
---

# Deploy GitLab

Self-hosted GitLab CE 19.5: Git, merge requests, issues, CI/CD. Sign-up off

**[Deploy GitLab on Railway](https://railway.com/template/gitlab-1)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/gitlab-1/manifest.json

- **Creator:** Agaz Self-Host
- **Category:** Other

## Template content

### GitLab https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/gitlab.svg

- **Image:** gitlab/gitlab-ce:19.5.4-ce.0@sha256:fde2dacdec6307a142c3f28bc07c62e534bccf47bc7ffb3a4e81a90e1cf0c5b7
- **Start command:** `/bin/sh -c 'echo IyEvYmluL2Jhc2gKIyBHaXRMYWIgQ0Ugb24gUmFpbHdheTogc3RhcnQgd3JhcHBlciAoSEVSLTE5MzIpLiBSdW5zIGJlZm9yZSB0aGUgaW1hZ2UncyBvd24gL2Fzc2V0cy9pbml0LWNvbnRhaW5lci4Kc2V0IC1lClI9L3Zhci9vcHQvZ2l0bGFiLy5yYWlsd2F5ICAgICAgICAgICMgZXZlcnl0aGluZyBsaXZlcyBvbiB0aGUgb25lIFJhaWx3YXkgdm9sdW1lICgvdmFyL29wdC9naXRsYWIpCm1rZGlyIC1wICIkUi9ldGMiICIkUi9sb2ciICIkUi93d3ciCnJtIC1mICIkUi93d3cvcmVhZHkiICAgICAgICAgICAgICAgICMgaGVhbHRoIGNoZWNrIHN0YXlzIHJlZCB1bnRpbCB0aGlzIGJvb3QgaXMgcmVhZHkKIyBSYWlsd2F5IGdpdmVzIG9uZSB2b2x1bWUgcGVyIHNlcnZpY2U6IGtlZXAgL2V0Yy9naXRsYWIgKGdpdGxhYi5yYiwgZ2l0bGFiLXNlY3JldHMuanNvbiwgU1NIIGhvc3Qga2V5cykKIyBhbmQgL3Zhci9sb2cvZ2l0bGFiIG9uIGl0IHRocm91Z2ggc3ltbGlua3MuCmZvciBwYWlyIGluIC9ldGMvZ2l0bGFiOmV0YyAvdmFyL2xvZy9naXRsYWI6bG9nOyBkbwogIHNyYz0ke3BhaXIlJToqfTsgZHN0PSIkUi8ke3BhaXIjIyo6fSIKICBpZiBbICEgLUwgIiRzcmMiIF07IHRoZW4KICAgIGlmIG1vdW50cG9pbnQgLXEgIiRzcmMiOyB0aGVuIGVjaG8gInJhaWx3YXk6ICRzcmMgaXMgYSBtb3VudCBwb2ludCwgbGVmdCBpbiBwbGFjZSI7IGNvbnRpbnVlOyBmaQogICAgY3AgLWFuICIkc3JjLy4iICIkZHN0LyIgMj4vZGV2L251bGwgfHwgdHJ1ZQogICAgcm0gLXJmICIkc3JjIiAmJiBsbiAtcyAiJGRzdCIgIiRzcmMiCiAgZmkKZG9uZQpleHBvcnQgUE9SVD0iJHtQT1JUOi04MH0iCmNhdCA+IC90bXAvcmFpbHdheS1naXRsYWIucmIgPDwnUlVCWScKdXJsID0gRU5WWydHSVRMQUJfRVhURVJOQUxfVVJMJ10udG9fcwp1cmwgPSAiaHR0cHM6Ly8je0VOVlsnUkFJTFdBWV9QVUJMSUNfRE9NQUlOJ119IiBpZiB1cmwuZW1wdHk/ICYmICFFTlZbJ1JBSUxXQVlfUFVCTElDX0RPTUFJTiddLnRvX3MuZW1wdHk/CnVybCA9ICdodHRwOi8vbG9jYWxob3N0JyBpZiB1cmwuZW1wdHk/CmV4dGVybmFsX3VybCB1cmwKbGV0c2VuY3J5cHRbJ2VuYWJsZSddID0gZmFsc2UKbmdpbnhbJ2xpc3Rlbl9wb3J0J10gPSBFTlZbJ1BPUlQnXS50b19pCm5naW54WydsaXN0ZW5faHR0cHMnXSA9IGZhbHNlCm5naW54Wydwcm94eV9zZXRfaGVhZGVycyddID0geyAnWC1Gb3J3YXJkZWQtUHJvdG8nID0+ICdodHRwcycsICdYLUZvcndhcmRlZC1Tc2wnID0+ICdvbicgfSBpZiB1cmwuc3RhcnRfd2l0aD8oJ2h0dHBzOi8vJykKbmdpbnhbJ2N1c3RvbV9naXRsYWJfc2VydmVyX2NvbmZpZyddID0gImxvY2F0aW9uID0gL2Fzc2V0cy9yYWlsd2F5X2hlYWx0aCB7XG4gIGRlZmF1bHRfdHlwZSB0ZXh0L3BsYWluO1xuICBhbGlhcyAvdmFyL29wdC9naXRsYWIvLnJhaWx3YXkvd3d3L3JlYWR5O1xufVxuIgpwdW1hWyd3b3JrZXJfcHJvY2Vzc2VzJ10gPSAwCnB1bWFbJ3BvcnQnXSA9IDgwOTAKc2lkZWtpcVsnY29uY3VycmVuY3knXSA9IDEwCnNpZGVraXFbJ21ldHJpY3NfZW5hYmxlZCddID0gZmFsc2UKcHJvbWV0aGV1c19tb25pdG9yaW5nWydlbmFibGUnXSA9IGZhbHNlCmdpdGxhYl9rYXNbJ2VuYWJsZSddID0gZmFsc2UKcG9zdGdyZXNxbFsnc2hhcmVkX2J1ZmZlcnMnXSA9ICcyNTZNQicKZ2l0bGFiX3JhaWxzWydlbnYnXSA9IHsgJ01BTExPQ19DT05GJyA9PiAnZGlydHlfZGVjYXlfbXM6MTAwMCxtdXp6eV9kZWNheV9tczoxMDAwJyB9CmdpdGFseVsnZW52J10gPSB7ICdNQUxMT0NfQ09ORicgPT4gJ2RpcnR5X2RlY2F5X21zOjEwMDAsbXV6enlfZGVjYXlfbXM6MTAwMCcsICdHSVRBTFlfQ09NTUFORF9TUEFXTl9NQVhfUEFSQUxMRUwnID0+ICcyJyB9ClJVQlkKIyBZb3VyIG93biBHSVRMQUJfT01OSUJVU19DT05GSUcgdmFyaWFibGUgKFNNVFAsIGV0Yy4pIGlzIGFwcGxpZWQgYWZ0ZXIgdGhlc2UgZGVmYXVsdHMuCmV4cG9ydCBHSVRMQUJfT01OSUJVU19DT05GSUc9ImZyb21fZmlsZSAnL3RtcC9yYWlsd2F5LWdpdGxhYi5yYic7ICR7R0lUTEFCX09NTklCVVNfQ09ORklHOi19IgojIEZpcnN0IGJvb3Qgb25seTogY2xvc2Ugb3BlbiBzaWduLXVwIGFuZCBvZmZlciBIVFRQUyBjbG9uZSBVUkxzIG9ubHkgKG5vIFNTSCBvbiBSYWlsd2F5KS4KIyBUaGUgaGVhbHRoIGNoZWNrIHR1cm5zIGdyZWVuIG9ubHkgYWZ0ZXIgdGhhdCwgc28gUmFpbHdheSBuZXZlciByb3V0ZXMgdHJhZmZpYyB0byBhbiBvcGVuIGluc3RhbmNlLgooCiAgdW50aWwgY3VybCAtZnNTIC1vIC9kZXYvbnVsbCAiaHR0cDovLzEyNy4wLjAuMTokUE9SVC91c2Vycy9zaWduX2luIjsgZG8gc2xlZXAgNTsgZG9uZQogIGlmIFsgISAtZiAiJFIvaGFyZGVuZWQiIF07IHRoZW4KICAgIHVudGlsIC9vcHQvZ2l0bGFiL2Jpbi9naXRsYWItcmFpbHMgcnVubmVyICJBcHBsaWNhdGlvblNldHRpbmcuY3VycmVudF93aXRob3V0X2NhY2hlLnVwZGF0ZSEoc2lnbnVwX2VuYWJsZWQ6IGZhbHNlLCBlbmFibGVkX2dpdF9hY2Nlc3NfcHJvdG9jb2w6ICdodHRwJyk7IEdpdGxhYjo6Q3VycmVudFNldHRpbmdzLmV4cGlyZV9jdXJyZW50X2FwcGxpY2F0aW9uX3NldHRpbmdzIjsgZG8gc2xlZXAgMTU7IGRvbmUKICAgIHRvdWNoICIkUi9oYXJkZW5lZCIKICAgIHNsZWVwIDY1ICAgIyBsZXQgdGhlIHBlci1wcm9jZXNzIHNldHRpbmdzIGNhY2hlICg2MCBzKSBleHBpcmUKICBmaQogIGVjaG8gb2sgPiAiJFIvd3d3L3JlYWR5IjsgZWNobyAicmFpbHdheTogR2l0TGFiIGlzIHJlYWR5IgopICYKZXhlYyAvYXNzZXRzL2luaXQtY29udGFpbmVyCg== | base64 -d > /tmp/railway-start.sh && exec bash /tmp/railway-start.sh'`
- **Health check:** /assets/railway_health
- **Public domain:** Yes

## Documentation

# Deploy and Host GitLab CE on Railway

GitLab Community Edition is the open-source, self-hosted DevOps platform from GitLab Inc. It combines Git repository hosting, merge requests, issue boards, wikis, built-in CI/CD pipelines (runners connect separately) and a package registry in one web application, so a team can keep its code and its workflow on its own server.

## About Hosting GitLab CE

GitLab CE ships as the official Omnibus image, which bundles Puma, Sidekiq, Gitaly, Workhorse, NGINX, PostgreSQL and Redis in one container. Hosting it means giving that container enough memory (about 3 GB in use, 4 GB recommended), keeping its data, configuration and encryption keys on persistent storage, and pointing its external URL at the public domain. This template runs the pinned official image as one Railway service with one volume, sets the external URL from the Railway domain, trims Puma, Sidekiq and the bundled monitoring stack to fit a modest plan, creates the `root` admin with a generated password, and closes public sign-up before the first request is served.

## Common Use Cases

* Private Git hosting for a team or company, with merge requests and code review
* Issue tracking, boards, milestones and wikis next to the code
* CI/CD pipelines with your own GitLab Runner connected over HTTPS

## Dependencies for GitLab CE Hosting

* The official `gitlab/gitlab-ce` Docker image (Omnibus package, PostgreSQL and Redis bundled)
* One Railway volume mounted at `/var/opt/gitlab`

### Deployment Dependencies

* GitLab Docker install docs: https://docs.gitlab.com/install/docker/
* GitLab CE image on Docker Hub: https://hub.docker.com/r/gitlab/gitlab-ce
* GitLab releases: https://about.gitlab.com/releases/categories/releases/
* Running GitLab in a memory-constrained environment: https://docs.gitlab.com/omnibus/settings/memory_constrained_envs/

### Implementation Details

* **Image:** `gitlab/gitlab-ce:19.5.4-ce.0`, pinned by digest.
* **Login:** user `root`, password in the service variable `GITLAB_ROOT_PASSWORD` (generated at deploy). It only applies on the first boot; change it later in GitLab itself.
* **One volume:** Railway gives a service one volume, so the start command keeps `/etc/gitlab` (including `gitlab-secrets.json` and the SSH host keys) and `/var/log/gitlab` inside `/var/opt/gitlab/.railway` through symlinks. Your repositories, database and encryption keys survive redeploys.
* **Safe first boot:** on the first start the wrapper turns off public sign-up and sets clone URLs to HTTPS only, then turns the health check (`/assets/railway_health`) green. The first boot takes about 2–7 minutes. You can re-enable sign-up under Admin &gt; Settings &gt; General.
* **Your own settings:** add a `GITLAB_OMNIBUS_CONFIG` variable (for example SMTP settings); it is applied after the template's defaults. Set `GITLAB_EXTERNAL_URL` if you attach a custom domain.
* **Git over SSH** is not exposed; use HTTPS with a personal access token. Plan for 4 GB of RAM or more.

## Why Deploy GitLab CE on Railway?


Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying GitLab CE on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.



## Similar templates

- [Rocky Linux](https://railway.com/deploy/rocky-linux) — Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀
- [Foundry Virtual Tabletop](https://railway.com/deploy/X5tR6G) — A Self-Hosted & Modern Roleplaying Platform
- [Letta Code Remote](https://railway.com/deploy/letta-code-remote) — Run a Letta Code agent 24/7. No inbound ports, just deploy.

Open this page in a browser: https://railway.com/deploy/gitlab-1
