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.
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
Project Links
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