All three will hold your code safely. They differ in what they ask of you: GitLab asks for a real server and monthly care, GitHub asks for trust in the cloud, and Gitea asks for almost nothing - and hands back a smaller platform.
Teams choose this tool by fashion and pay for the choice for years. Strip the logos away and the decision rests on three questions. Where is your code allowed to live? Who will maintain the platform - honestly, with a name attached? And how much platform beyond Git hosting - CI pipelines, a container registry, planning boards - will your team genuinely use every week? Answer those three and the winner usually names itself.
👆 Features, weight and custody of your code. Every option is respectable - you are choosing which currency you would rather pay.
Repositories, merge requests, built-in CI/CD, a container registry and issue planning, all in one login, running on your hardware, with the data never leaving your building. That completeness is why the video exists, and for a team that uses the whole platform it replaces three or four separate services. The price is real and recurring: a proper virtual machine with a 4 GB RAM floor, monthly updates that follow a set path, backups you must test, and certificates to renew. Self-hosted GitLab is not a product you install; it is a small part-time job you accept - happily, if the platform earns it.
GitHub asks for no server at all. There is nothing to patch, back up or size, the free tier covers private repositories for small teams, and you get the largest ecosystem in the industry - integrations, third-party tools, and a workflow every new hire already knows. The trade is custody: your code lives on someone else's computers, under their rules, reachable only through the internet. For most small teams that trade is perfectly rational. It becomes a deal-breaker only where a client contract, a regulator, or your own policy says the source code stays inside your walls.
Gitea is the answer when you want your code at home without adopting a platform's appetite. It is a single small program that runs happily in a few hundred megabytes of RAM - an old mini PC or the tiniest VM is plenty - and still gives you clean Git hosting with pull requests, code review, issues and its own CI system. What you give up is breadth: no deep platform sprawl, a smaller ecosystem, fewer enterprise comforts. What you gain is a server you can maintain in minutes a month. A community fork named Forgejo also exists, if you want the same lightness with a fully open governance model.
Code must stay in-house, the team uses CI and a registry, and someone named will own maintenance - choose GitLab. Nobody wants the maintenance job, and cloud custody is acceptable - choose GitHub, and spend the saved hours on your product. Code stays in-house, the team is small, and needs are honestly modest - choose Gitea. One rule overrides all three: a platform nobody updates is the worst option on the table. An unmaintained GitLab, exposed and ageing, is a worse home for your code than a small Gitea that is current - every single time.
Watch the GitLab route end to end in the video - seeing the install honestly is the fastest way to judge whether your team wants to own it.
▶️ Watch Full VideoYes. Community Edition is open source and free for commercial use. Paid GitLab tiers add enterprise features and vendor support, but the free edition is already a complete platform for most small teams.
Only custody and control: client rules that keep code in-house, an office network that works offline, or heavy CI you would rather run on your own machines. Self-hosting because it feels cooler is not a reason to adopt a maintenance job.
Your code moves easily whenever you like; project history and workflows do not. If you already know you need GitLab's CI and registry, start there. If you are unsure, Gitea's tiny cost makes it a safe first step.