GitLab Community Edition 19.3.1 DevOps
Free credit available Limited time

GitLab hosting, with the omnibus config already written.

GitLab CE 19.3.1, the open source DevOps platform, deploys as a one-click template onto a dedicated server Selfhost.dev provisions, secures and runs, across six locations on three continents.

One container, TLS and your own domain. One of the slowest deploys in the catalog and worth the wait.

One click. One container. The template deploys in about 25 minutes.

+$5.00 added at signup · deployment choice preserved · no card

What the one click sets up, before the first push.
The short version

What is GitLab hosting?

What it is

GitLab Community Edition running on a server you control instead of GitLab.com: repositories, merge requests, issues and CI, with the code, the database and every artefact on your machine.

Who it is for

Teams past GitLab.com Free's five users or whose code must stay on infrastructure they choose.

When to use it

When source code has to stay on infrastructure you can point at. Not when you need working email on day one.

What we set up for you

GitLab Docker, with the omnibus config already done

GitLab Docker guides pull gitlab/gitlab-ce:latest, read a root password from a file GitLab deletes after 24 hours and leave the proxy and memory settings to you. On this template each of those is set before the container first boots, the same way every time, on a server with root access over SSH.

The proxy configuration GitLab usually gets wrong

external_url is your HTTPS address with nginx["listen_https"] = false and listen_port = 80. That exact combination makes GitLab emit https:// clone URLs while its internal nginx listens on plain HTTP behind a terminating proxy. Get it wrong and every clone URL it hands out is unusable.

The stack, end to end

Callers

Your team, Git clients and CI

Edge

TLS and routing

Your project server
Omnibus container

GitLab CE 19.3.1

Inside the image

PostgreSQL

Inside the image

Redis

Platform secret

Root password

What the Docker guide has you doOn this template
Pull gitlab/gitlab-ce:latestPinned to gitlab-ce:19.3.1-ce.0; it moves only when you move it
Read initial_root_password, deleted after 24 hoursGITLAB_ROOT_PASSWORD set before first boot
Set external_url behind your proxyHTTPS clone URLs from the first boot
Tune memory so CE fits the serverPrometheus off, Puma and Sidekiq sized for 8 GB
Wire ten SMTP variables into the configLeft out: one empty value stops GitLab booting
Close public sign upgitlab_signup_enabled = false
Install a proxy and a certificateTLS issued and renewed; 22, 80 and 443 open, plus an SSH port if you request one
Your repositories go here. Deploy the stack
Server

GitLab server requirements

GitLab server requirements start at 8 GB of RAM. GitLab's own docs put the baseline at 16 GB and 8 vCPU. They say it can run with at least 8 GB in memory-constrained setups, not the 4 GB some guides quote. This template enforces 8 GB and ships the tuning that makes that work, on a server in your own account.

What GitLab needs

Memory
8 GB, a hard floor; smaller servers are refused
CPU
x86 or ARM
Database and cache
PostgreSQL and Redis, bundled inside the image
Tuning for 8 GB
Prometheus off, Puma 2 workers, Sidekiq concurrency 9
Room beside it
GitLab is one heavy workload; most teams give it the server
Mail
Off; smtp_enable = false is in the omnibus config
Inbound SSH
Only with a public port you request
Server size: 8 GB, enough for GitLab. Deploy on an 8 GB server
Quickstart

How to deploy GitLab in 3 steps

The template deploys in about 25 minutes, most of it GitLab's own migrations.

  1. Choose GitLab and an 8 GB server

    Pick one of six locations and submit. Smaller servers are refused: 8 GB is a floor the platform enforces.

  2. Wait out the migrations

    The container runs GitLab's full migration suite before the interface answers. Don't restart it midway; an interrupted migration usually needs a fresh deployment.

  3. Sign in as root and make it yours

    Use the password the console set at deploy. Add your domain from Settings, create your first group and add an SMTP relay before inviting the team.

Deploy GitLabStep 1 starts in the console.
Launch GitLab
Billing

GitLab hosting cost

GitLab hosting cost here is one server rate: that is what self hosted GitLab pricing comes down to. CE is free software and the template adds no fee. Users, repositories and CI minutes never change the bill. A European 8 GB server runs it, billed by the hour against prepaid credits; the rate depends on the machine and its location.

$0.03
/hr, about $23 a month at 730 hours
European 8 GB server, $0.03/hr Deploy GitLab
What else you pay for
ItemCost
GitLab CE, the software$0. It is free and open source
Its bundled PostgreSQL and Redis$0
HTTPS certificate and custom domain$0
Users, seats or contributors$0 at any number
Bandwidth$0. Traffic is included in the server price
Optional daily backups+20% of the server price
ServerRAM, cores, diskWhereRateAbout a month
cx33 (recommended)8 GB, 4 cores, 80 GBEurope$0.03/hr$23.36
cax21 (ARM)8 GB, 4 cores, 80 GBEurope$0.04/hr$29.20
cx43 (room to grow)16 GB, 8 cores, 160 GBEurope$0.06/hr$43.22
ccx138 GB, 2 cores, 80 GBUS$0.16/hr$119.28
cpx328 GB, 4 cores, 160 GBSingapore$0.19/hr$135.63

Monthly figures assume 730 hours.

If your balance reaches zero

With a card on file or a past top-up, the server is powered off and held for 24 hours. GitLab stays offline until a top-up in that window restarts it. Welcome-credit-only servers are deleted at zero with their backups, so keep a gitlab-backup create archive elsewhere.

Price it in your own location, no signup.

GitLab.com

GitLab.com vs GitLab hosting on your own server

GitLab.com Free is hosted and genuinely good up to five users per top-level group. From the sixth you need Premium, priced per user and billed annually. CE on your own server has no Premium features, but a European 8 GB server is $23.36 a month for any headcount.

GitLab.com FreeGitLab.com PremiumGitLab CE here
Price$0Per user, billed annually$23.36/mo for the server
Users5 per top-level groupUnlimited licensedUnlimited
CI compute400 minutes/mo10,000 minutes/moYour own server, no meter
Where the code livesGitLab's infrastructureGitLab's infrastructureA server you chose, in one of six locations
Premium featuresNoYesNo; CE does not contain them

GitLab.com plans and compute minutes from about.gitlab.com/pricing. Ultimate is priced on request. Ours is a European 8 GB server at 730 hours.

When GitLab.com is the better choice

If your team needs working email on day one or Premium features such as merge approvals and epics, GitLab.com is the better call. It is hosted, free up to five users and maintained by the people who write GitLab.

Your side

What we run and what you run

Selfhost.dev runs

  • The server, its OS and its provisioning
  • The container, the proxy and the HTTPS hostname
  • TLS certificates and renewal
  • Optional whole-server backups
  • The 8 GB floor

You run

  • GitLab CE and when to upgrade it
  • Your groups, projects and permissions
  • SMTP, which you add yourself
  • Exports you take yourself
  • CI runners and whether to add more
We run the server; GitLab's administration, upgrades and support stay with you. Run it here
Status

What every GitLab deployment gets

  • Every service is health-checked every 60 seconds.
  • A stalled deploy is retried automatically, not abandoned.
  • A deploy is never reported done until the URL actually answers, which matters on a first boot that runs GitLab's migrations before it answers.
  • Your version does not move. gitlab-ce:19.3.1-ce.0 is pinned. A floating tag is how a live GitLab gets dragged onto a new major and runs an irreversible migration.
  • GitLab never boots on a documented default password. Public sign-up ships closed.
~25 min to deploy

GitLab's template deploys in about 25 minutes. That is the platform's own budget, not an estimate.

Notes

GitLab hosting limitations

  1. No email until you add a relay. smtp_enable = false is in the omnibus config, so resets and invitations won't send. Our self host GitLab guide has the full SMTP block.
  2. 8 GB and a slow first boot. Smaller servers are refused and the template takes about 25 minutes to deploy. Never restart it mid-provision.
  3. Registry, Pages and SSH need setup. The container registry and Pages are off. Git over SSH needs a public port you request; HTTPS clone and push work from the first boot.

None of these a dealbreaker? The template deploys in about 25 minutes.

Launch GitLab
Backups

GitLab backup and restore

GitLab backup and restore works two ways: a daily image of the whole server and GitLab's own gitlab-backup archive of repositories, database, uploads and CI artefacts. Every clone your team holds is a copy of the code too; the archive is what brings back the issues, merge requests and settings.

MethodWhat it coversWhere it lives
Daily server backup (optional, +20%)The whole server, last 7 keptWith the server; deleted with it
gitlab-backup create over SSHRepositories, database, uploads, CI artefactsWherever you copy it
Your team's Git clonesThe code itselfEvery developer's machine

Restoring

gitlab-backup restore brings an archive back onto any GitLab of the same version.

Sizing

Working out what a GitLab server costs?

Send yourself the sizing and the monthly figure for an 8 GB machine in your own location, plus the SMTP options that work with a self hosted GitLab. One email, no newsletter.

Help

Frequently asked questions

Is GitLab free if you host it yourself?

Yes. GitLab Community Edition is free and open source, with no user limit and no licence to buy. What costs money is the server it runs on: here a European 8 GB machine billed by the hour. Premium and Ultimate features are separate paid GitLab products and aren't part of CE. See pricing.

Where do I find the GitLab root password?

In the console, from deployment. This template sets the root password before GitLab first boots, so you never hunt for the initial_root_password file that GitLab's Docker guide points to and which GitLab deletes on the first restart after 24 hours. Sign in as root, then create your own admin account.

How much RAM does a GitLab server need?

At least 8 GB. GitLab's own docs put the baseline at 16 GB and 8 vCPU and say it can run with 8 GB in memory-constrained setups. This template enforces the 8 GB floor and turns off Prometheus, with Puma and Sidekiq sized down, which is what makes CE comfortable on 8 GB.

How do I move an existing GitLab here?

From another self-managed instance, run gitlab-backup create, copy the archive across and restore it here with the same GitLab version. From GitLab.com, use per-project export and import each file from the new-project screen. Repositories, issues and merge requests come across; CI variables and registry images do not.

Does this include Premium or Ultimate features?

No. This template runs Community Edition. Merge approvals, epics, advanced roles and security dashboards are licensed features CE does not contain. No hosting arrangement adds them. If your team needs those, a GitLab plan is the answer; it's a licensing decision rather than a hosting one.

Can I use my own domain for GitLab?

Yes. GitLab starts on a generated HTTPS hostname. You add your own domain afterwards from the resource Settings screen: set the DNS records and verify with a TXT record, then the certificate is issued for you. GitLab's external_url follows it, so every clone URL stays correct.

Can GitLab send email from this deployment?

No, not without work from you. SMTP is hardcoded off, so password resets and member invitations won't deliver until you edit GitLab's omnibus configuration in the container and reconfigure. Our guide on how to self host GitLab by hand has the full SMTP block and the one empty value that stops GitLab booting.

Self host GitLab. We will run the server.

  • GitLab CE, free software, unlimited users
  • A European 8 GB server, about $23 a month, bandwidth included
  • Root SSH and gitlab-backup create, yours to take elsewhere
Launch GitLab

About Selfhost.dev

Selfhost.dev is a managed self hosting platform for developers and small teams. Open source apps and databases on dedicated servers you control, billed by the hour, in six locations across three continents.

Best for: GitLab, Jenkins, Grafana, MinIO and managed PostgreSQL, MySQL, Redis, ClickHouse, OpenSearch and Kafka.