GitLab: Complete Self-Hosted DevOps Platform
Last updated on

GitLab: Complete Self-Hosted DevOps Platform

GitLab bundles the entire software delivery pipeline into one application: repositories, issues, merge requests, CI/CD, a container registry, package hosting, and security scanning.

The integration argument

Assembling the same capability from separate tools means Gitea plus Woodpecker CI plus a registry plus an issue tracker, each with its own authentication and upgrade cycle. GitLab has them share a permission model, a UI, and a database, and CI configuration lives in the repository it builds. For a team, that coherence is worth real money.

Be realistic about resource requirements

This is the heaviest application in most self-hosted catalogues. GitLab officially recommends 4 CPU cores and 8GB of RAM as a starting point, and it will use them: Puma, Sidekiq, PostgreSQL, Redis, Gitaly, and several other components run continuously. Attempts to run it on a Raspberry Pi or a 2GB VPS end in swap thrashing. Upgrades also require following the documented version path rather than jumping releases.

If your requirement is repository hosting with issues, Gitea or Forgejo do that on a fraction of the hardware.

Community Edition versus Enterprise

GitLab is open-core. CE covers repositories, CI/CD, registry, and issues comprehensively. Enterprise adds approval rules, advanced security scanning, portfolio management, and support. Check which edition a feature belongs to before building a workflow around it.

Runners

CI executes on runners registered to the instance, which can be on the same machine or elsewhere. Keeping runners on separate hosts is worth doing: builds are the workload most likely to exhaust memory or disk, and taking the forge down with them is avoidable.

License

GitLab CE is released under the MIT License.