Self-hosting GitLab the easy way

Self-hosting GitLab the easy way

Yulei Chen - Content-Engineerin bei sliplane.ioYulei Chen
5 min

GitLab is the all-in-one DevOps platform for version control, CI/CD pipelines, issue tracking, and code review. GitLab's SaaS plans start free, but pricing ramps up fast as your team grows - the Premium plan costs $29/user/month, and features like advanced security scanning and compliance are locked behind the Ultimate tier at $99/user/month.

Sliplane is a managed container platform that makes self-hosting painless. With one-click deployment, you can get GitLab CE up and running in minutes - no server setup, no reverse proxy config, no infrastructure to maintain.

Prerequisites

Before deploying, ensure you have a Sliplane account (free trial available).

GitLab is a resource-heavy application. We recommend deploying it on a server with at least 4 vCPU cores and 4 GB RAM. Smaller servers may work for personal use but will feel slow under load.

Quick start

Sliplane provides one-click deployment with presets.

SliplaneDeploy GitLab >
  1. Click the deploy button above
  2. Select a project
  3. Select a server. If you just signed up you get a 48-hour free trial server
  4. Click Deploy!

GitLab takes a few minutes to initialize on first boot. Don't worry if you see a 502 error right after deployment - just give it 2-3 minutes while it runs database migrations and compiles assets.

About the preset

The one-click deploy above uses Sliplane's GitLab preset. Here's what it includes:

  • GitLab Community Edition (gitlab/gitlab-ce) - the free, open-source version
  • Pinned to version 18.10.3 for stability (check Docker Hub for newer versions)
  • Three persistent volumes for configuration, logs, and application data
  • Pre-configured to work behind Sliplane's reverse proxy (TLS termination handled automatically)
  • Root password auto-generated and available in your environment variables

Next steps

Once GitLab is running on Sliplane, access it using the domain Sliplane provided (e.g. gitlab-xxxx.sliplane.app).

Default credentials

Log in with:

  • Username: root
  • Password: Check the GITLAB_ROOT_PASSWORD environment variable in your Sliplane dashboard

Change the root password immediately after first login under User Settings > Password.

Key environment variables

You can customize your GitLab instance by adding or editing environment variables in the Sliplane dashboard:

VariableDescriptionDefault
GITLAB_ROOT_PASSWORDInitial root user passwordAuto-generated
EXTERNAL_URLPublic URL of your GitLab instanceSet automatically
GITLAB_OMNIBUS_CONFIGRuby config overrides for GitLab OmnibusNginx settings
TZContainer timezoneUTC

Configuring SMTP

To enable email notifications, append SMTP settings to the GITLAB_OMNIBUS_CONFIG environment variable. For example:

nginx['listen_https'] = false; nginx['listen_port'] = 80; gitlab_rails['smtp_enable'] = true; gitlab_rails['smtp_address'] = "smtp.gmail.com"; gitlab_rails['smtp_port'] = 587; gitlab_rails['smtp_user_name'] = "your-email@gmail.com"; gitlab_rails['smtp_password'] = "your-app-password"; gitlab_rails['smtp_domain'] = "smtp.gmail.com"; gitlab_rails['smtp_authentication'] = "login"; gitlab_rails['smtp_enable_starttls_auto'] = true;

Make sure to keep the existing nginx['listen_https'] = false; nginx['listen_port'] = 80; settings when adding SMTP config. Otherwise, GitLab will try to handle TLS itself and conflict with Sliplane's reverse proxy.

See the GitLab SMTP configuration docs for provider-specific examples.

Persistent storage

The preset mounts three volumes:

VolumeMount pathPurpose
gitlab-config/etc/gitlabGitLab configuration files (gitlab.rb, gitlab-secrets.json)
gitlab-logs/var/log/gitlabService log files
gitlab-data/var/opt/gitlabGit repositories, database, uploads, CI artifacts

Your data is safe across redeployments and updates. For backup strategies, check out 4 easy ways to backup Docker volumes.

Logging

GitLab writes logs to /var/log/gitlab inside the container, which is persisted in the gitlab-logs volume. You can also view container-level output through Sliplane's built-in log viewer. For more tips on working with container logs, see how to use Docker logs.

Troubleshooting

If GitLab shows 502 errors on first boot, just wait a few minutes. GitLab runs database migrations and compiles assets during initial startup, which can take 2-5 minutes depending on your server size.

If you run into persistent memory issues or crashes, make sure your server has at least 4 GB RAM. GitLab's official recommendation is 4 cores and 4 GB RAM as a minimum for up to 500 users.

Cost comparison

GitLab needs more resources than a typical web app, so we're comparing servers with 4 vCPU cores and 8 GB RAM:

ProvidervCPU CoresRAMDiskEstimated Monthly CostNotes
Sliplane48 GB80 GB~€29charge per server
Render48 GB80 GB~$85–$120VM Pro
Fly.io48 GB80 GB~$55–$70VM + volume
Railway48 GB80 GB~$50–$120Usage-based

FAQ

Can I use GitLab CI/CD with the Community Edition?

Yes. GitLab CE includes full CI/CD pipeline support. You can define .gitlab-ci.yml pipelines and automate builds, tests, and deployments. The main differences between CE and EE are around advanced security scanning, compliance features, and premium support.

How do I set up GitLab Runners?

GitLab Runners execute your CI/CD jobs. You can register a runner through Admin Area > CI/CD > Runners in the GitLab UI. For a Docker-based runner, you could deploy one as a separate service on Sliplane and connect it to your GitLab instance. Check the GitLab Runner docs for setup instructions.

How do I update GitLab?

Change the image tag in your service settings on the Sliplane dashboard and redeploy. Check Docker Hub for the latest stable version. Always read the upgrade path docs before jumping multiple major versions - GitLab requires sequential major version upgrades.

Are there alternatives to GitLab?

Popular self-hosted alternatives include Gitea (lightweight, Go-based), Forgejo (community fork of Gitea), and OneDev (built-in CI/CD). If you only need Git hosting without CI/CD, Gitea or Forgejo are much lighter on resources.

How much RAM does GitLab actually need?

GitLab officially recommends 4 CPU cores and 4 GB RAM as the minimum for up to 500 users. For a small team (under 20 users), 4 GB works fine. If you plan to run CI/CD pipelines on the same server, 8 GB or more gives a much smoother experience.

Self-host GitLab now - It's easy!

Sliplane gives you all the tools you need to run GitLab without server hassle.