Infrastructure / DevOps Mar 2026

GitLab Self-Hosted:
Full DevOps Platform

A self-hosted GitLab CE instance running on a cloud VPS, replacing a previous Forgejo setup. Built to gain hands-on experience with production-grade DevOps tooling and infrastructure management.

GitLab Self-Hosted

Why I Built This

I was running Forgejo as my self-hosted Git platform — it worked great, but as a DevOps student I wanted to learn the tooling that's actually used in the industry. GitLab is one of the most widely adopted DevOps platforms, offering built-in CI/CD, issue tracking, container registries, and more — all in one place. So I decided to migrate.

"The goal wasn't just to swap one Git UI for another. GitLab CE gives me a full DevOps platform to experiment with — pipelines, runners, environments, and deployment workflows. Running it self-hosted means I own the entire stack and get hands-on experience managing a production-grade application with real resource constraints."

Key Features

Dockerized Deployment

GitLab CE running in Docker Compose for easy management, backups, and reproducibility.

Resource-Optimized Configuration

Tuned for a lightweight cloud server by disabling unnecessary services (monitoring, container registry, exporters) and optimizing the web server for minimal resource usage.

HTTPS with Auto-Renewed Certificates

Secured with Let's Encrypt via Certbot, with Nginx as a reverse proxy handling SSL termination.

SSH Git Access

Configured for SSH-based Git operations on a custom port, with clone URLs automatically reflecting the correct connection details.

Swap Memory

Added swap space as a safety net for a memory-intensive application running on a budget server.

Architecture

User → HTTPS

→ Nginx (SSL termination via Let's Encrypt)

→ GitLab CE (Docker) :80

User → SSH

→ GitLab SSH (Docker)

Tech Stack

GitLab CE Docker Compose Nginx Let's Encrypt PostgreSQL Redis Ubuntu 24.04 LTS Certbot

Project Details

Type

Infrastructure / DevOps

Status

Live & Running

Hosting

Cloud VPS

Stack

GitLab CE, Docker, Nginx, Let's Encrypt

Replaces

Previous Forgejo instance

Access

HTTPS + SSH

Tags

#GitLab #SelfHosted #Docker #DevOps #CI/CD #Nginx #LetsEncrypt #Linux