• GitLab CE
  • Ubuntu LTS
  • Let's Encrypt
  • Git + CI

GitLab VPS HostingGit, code review and CI on your own server

Run GitLab Community Edition from GitLab's own package on a hardened KVM VPS, with HTTPS on your domain from Let's Encrypt. Repositories, merge requests and CI stay on your server, at a flat cost.

  • KVM virtualisation
  • NVMe storage
  • Root SSH access
  • Free one-time setup
  • 99.9% uptime SLA

systemctl list-units --type=service --state=active

  • gitlabGitLab Community Edition (Linux package)
  • nginxbundled web server, HTTPS
  • postgresqlbundled database
  • ufwfirewall: 22, 80, 443
  • fail2banSSH brute-force guard
  • unattended-upgradessecurity updates

Installed and secured before handover.

8 GBthe least GitLab runs on
16 GBsingle-node baseline
22 · 80 · 443ports GitLab uses
24 hlife of the initial root password file
01Why a VPS

Why Self-Host GitLab on a VPS

Hosted Git platforms charge per user and hold your code. Self-hosted GitLab gives a full platform at a flat server cost.

Code and history on your server

Repositories, issues and merge requests in a location you choose.

A full DevOps platform

Git, reviews, issues and CI/CD in one product.

Flat server cost

Add developers without a per-seat charge for the Community Edition.

Your rules

Your own sign-up policy, groups, permissions and integrations.

02The stack

How GitLab Is Set Up

One Linux package bundles the web server, the application and its database.

  1. Web server

    NGINX (bundled)

    HTTPS on your domain, with the certificate requested from Let's Encrypt.

  2. Application

    GitLab (Rails, Sidekiq, Gitaly)

    The web interface, background jobs and Git storage.

  3. Database

    PostgreSQL (bundled)

    Users, projects, issues and merge requests.

  4. Cache and queue

    Redis (bundled)

    Caching and background job queues.

  5. Repositories

    NVMe on the VPS

    The Git data and uploaded files.

05 REPOSITORIES NVMe on the VPS 04 CACHE AND QUEUE Redis (bundled) 03 DATABASE PostgreSQL (bundled) 02 APPLICATION GitLab (Rails, Sidekiq,… 01 WEB SERVER NGINX (bundled)

Engineer's notes

  1. GitLab's baseline for one machine is 16 GB RAM and 8 vCPU; it can run with at least 8 GB in a constrained setup.
  2. GitLab's guide advises disabling swap where possible, because swap slows it down badly under load.
  3. Ports 22, 80 and 443 are used: 22 serves Git over SSH, 80 and 443 the web interface and the certificate request.
  4. The initial root password is saved in /etc/gitlab/initial_root_password and the file is removed after 24 hours.
  • 443HTTPS, web interface
  • 80HTTP, Let's Encrypt and redirect
  • 22SSH, Git over SSH and admin
03Use cases

What You Can Run

Private Git repositories

Projects for a team or a company.

Merge requests and code review

Review before merging, with approvals.

CI/CD pipelines

Builds and tests with GitLab Runner, on this server or another.

Issue tracking and boards

Plan work next to the code.

A container registry

Store images for your deployments.

A package registry

Private packages for your projects.

04Sizing guide

Which Plan for Your GitLab Server

GitLab's documentation sets 16 GB and 8 vCPU as the single-node baseline and 8 GB as the least it can run on. VPS-1 is below that.

Recommended start

VPS-2

8 GB RAM and 75 GB NVMe: GitLab's constrained minimum.

vCores4
RAM8 GB
NVMe75 GB
See VPS-2
Recommended start

VPS-3

12 GB RAM, 6 vCores and 100 GB NVMe.

vCores6
RAM12 GB
NVMe100 GB
See VPS-3
Recommended start

VPS-4

24 GB RAM, 8 vCores and 200 GB NVMe: above the single-node baseline.

vCores8
RAM24 GB
NVMe200 GB
See VPS-4

A starting point, not a limit: every plan upgrades in place, keeping your data, IP address and configuration.

05After handover

Looking After Your GitLab Server

Everyday tasks after handover.

  1. Check every service

    Status of the bundled services.

    sudo gitlab-ctl status
  2. Read the initial root password

    Use it to sign in as root within 24 hours, then change it.

    sudo cat /etc/gitlab/initial_root_password
  3. Apply configuration changes

    After editing /etc/gitlab/gitlab.rb.

    sudo gitlab-ctl reconfigure
  4. Turn swap off if you can

    GitLab's guide advises it; make it permanent in /etc/fstab too.

    sudo swapoff -afree -h
  5. Watch the logs

    Useful when something fails.

    sudo gitlab-ctl tail

Example commands: adjust names, paths and versions to your project. Deploying and maintaining your application is yours to do, or ask us for a quote.

06Cheat sheet

GitLab commands you will use every week

Copy, paste, adjust the names. Each one is safe to run as your own user on the server.

Service status

sudo gitlab-ctl status

Apply gitlab.rb changes

sudo gitlab-ctl reconfigure

Follow all logs

sudo gitlab-ctl tail

Restart GitLab

sudo gitlab-ctl restart

Environment and version info

sudo gitlab-rake gitlab:env:info

Create a backup

sudo gitlab-backup create
07Compare

Hosted Git Platform or Your Own GitLab?

A hosted platform removes the server work. Your own GitLab keeps code on your server at a flat cost.

Hosted Git platform

  • PricingPer user, per month
  • Where code livesThe provider's servers
  • Upgrades and backupsHandled by the provider
  • CI minutesPlan limits apply
  • Server administrationHandled by the provider

GitLab VPS

  • PricingFlat server cost for Community Edition
  • Where code livesYour server, your location
  • Upgrades and backupsYours: updates and extra backups
  • CI minutesLimited by your own runners
  • Server administrationYours, after our free setup
Choose a VPS plan
08Handover

Your GitLab server

Free one-time setup before you get access. Here is what happens, and what you receive.

  1. Pick a plan and a location

    Resources that fit your workload, in the datacentre closest to your users.

  2. Tell us your GitLab setup

    Versions, database and domain: at order or right after.

  3. We install and secure it

    Server hardened, the stack installed and tested, HTTPS on your domain.

  4. You get root

    SSH to a working server, ready for your code and data.

Installed for you

  • GitLab Community Edition from GitLab's official package repository, on Ubuntu 22.04 or 24.04
  • EXTERNAL_URL set to your domain, with HTTPS from Let's Encrypt
  • Firewall open for SSH, HTTP and HTTPS
  • The initial root password left for you to read and change
  • SMTP for notification email is set up by you

Secured before handover

  • Non-root sudo user created for daily work
  • SSH key login, password login for root disabled
  • Firewall (UFW) open only for the ports you use
  • Fail2ban blocking repeated login attempts
  • Automatic security updates enabled
  • Free Let's Encrypt SSL on your domain
  • Timezone, swap and hostname configured

Not included (we say so up front)

  • Ongoing server administration
  • Application maintenance and updates
  • Debugging your code
  • Migrating existing sites or data
09Hardening and tuning

Security and Performance for GitLab

Security

  • Change the root password at once and turn on two-factor authentication.
  • Restrict sign-up (admin area) so strangers cannot create accounts.
  • Keep GitLab updated: security releases are frequent.
  • Back up with GitLab's own backup tool as well as daily VPS backups.

Performance

  • Give GitLab at least 8 GB of RAM; 16 GB is its single-node baseline.
  • Avoid swap where you can; it slows GitLab under load.
  • Run CI jobs on separate runners so builds do not starve the web interface.
  • Keep free disk space for repositories, artifacts and packages.

Built from the official documentation

VPS Plans

VPS Plans for GitLab

GitLab needs plenty of memory. VPS-2 (8 GB) is the smallest plan that meets its constrained minimum; VPS-4 (24 GB, 8 vCores) is above its single-node baseline.

VPS-1

Small websites, APIs, bots and development servers.

₹1,008 /mo
Get Started
  • 2 vCores
  • 4 GB RAM
  • 40 GB NVMe
  • 500 Mbps
  • Full root and SSH access
  • Free initial stack installation
  • Server hardening and firewall setup
  • Daily backup of the previous 24 hours
  • Unlimited traffic *
  • Anti-DDoS protection
  • Dedicated IPv4 and IPv6
  • KVM virtualisation

VPS-3

Busy stores, SaaS products and several projects.

₹2,748 /mo
Get Started
  • 6 vCores
  • 12 GB RAM
  • 100 GB NVMe
  • 2 Gbps
  • Full root and SSH access
  • Free initial stack installation
  • Server hardening and firewall setup
  • Daily backup of the previous 24 hours
  • Unlimited traffic *
  • Anti-DDoS protection
  • Dedicated IPv4 and IPv6
  • KVM virtualisation

VPS-4

High-traffic apps, large databases and agencies.

₹5,274 /mo
Get Started
  • 8 vCores
  • 24 GB RAM
  • 200 GB NVMe
  • 3 Gbps
  • Full root and SSH access
  • Free initial stack installation
  • Server hardening and firewall setup
  • Daily backup of the previous 24 hours
  • Unlimited traffic *
  • Anti-DDoS protection
  • Dedicated IPv4 and IPv6
  • KVM virtualisation

* Unlimited traffic in Europe and North America. In Mumbai, Singapore and Sydney a monthly allowance applies (VPS-1 500 GB, VPS-2/VPS-3 1 TB, VPS-4 3 TB), then speed is limited to 10 Mbps until the next month.

Prices exclude 18% GST, which is added to invoices for customers in India.

10Under the hood

Platform specs and locations

The same KVM platform on every plan; only CPU, RAM, storage and port speed change.

Virtualisation
KVM with reserved vCores and RAM
Storage
NVMe SSD on every plan
Network
Dedicated IPv4 and IPv6, 500 Mbps to 3 Gbps per plan
Operating systems
Ubuntu 26.04, 24.04 and 22.04 LTS · Debian 13, 12 and 11 · AlmaLinux · Rocky Linux · Fedora · FreeBSD
Access
Full root over SSH, key-based login
Backups
Automatic daily backup of the previous 24 hours; snapshots and longer retention on request
Protection
Always-on anti-DDoS mitigation
Availability
99.9% uptime SLA

Asia-Pacific

  • Mumbai
  • Singapore
  • Sydney

Europe

  • London
  • Limburg
  • Roubaix
  • Gravelines
  • Strasbourg
  • Milan
  • Warsaw

North America

  • Beauharnois

Availability per location changes with demand; we confirm your location before setup. In Mumbai, Singapore and Sydney each plan includes a monthly traffic allowance (VPS-1 500 GB, VPS-2 and VPS-3 1 TB, VPS-4 3 TB); beyond it, speed is limited to 10 Mbps until the next month.

GitLab VPS FAQs

Questions before you deploy

Not covered here? Ask an engineer before you order.

Ready when you are

Run Your Own GitLab

Choose a plan and we hand over GitLab on a hardened server with HTTPS on your domain.