If you are searching for a GitHub alternative, the reason usually falls into one of four buckets: you want to self-host, you want lower per-seat cost, you want to leave a US-hosted commercial platform, or your CI bill has become the real problem. The right answer differs for each, so this guide compares the main options on the things that decide it: pricing, self-hosting, built-in CI, how painful migration is, and how well each one triggers deployments.
One thing holds across every option below: your deployment workflow does not have to move with your repository. Any platform that sends a push webhook can trigger an automated deployment tool, so switching Git hosts rarely means rebuilding how you ship.
The short version
| Platform | Best for | Hosting | Free tier | Built-in CI |
|---|---|---|---|---|
| GitHub (baseline) | Ecosystem and default network effects | SaaS | Free, 2,000 Actions minutes/month | GitHub Actions |
| GitLab | One platform for repos, CI and security | SaaS or self-managed | Free, 400 compute minutes/month | GitLab CI/CD |
| Bitbucket Cloud | Teams already on Jira and Atlassian | SaaS | Free for up to 5 users, 50 build minutes | Bitbucket Pipelines |
| Gitea | Lightweight self-hosting | Self-hosted (MIT) | Free (self-hosted) | Gitea Actions (bring your own runner) |
| Forgejo | Community-governed self-hosting | Self-hosted (GPL v3+) | Free (self-hosted) | Forgejo Actions (bring your own runner) |
| Codeberg | Open-source projects, non-profit hosting | Hosted Forgejo | Free, public/FOSS focus | Woodpecker CI (access request) |
| Entire | Teams running many AI agents (early access) | Vendor-hosted | Core features free in early access | CI integrations |
Start with the baseline: what GitHub actually costs
Before comparing, it helps to know what you would be replacing. GitHub Free is $0, Team is $4 per user per month, and Enterprise is $21 per user per month. Actions minutes are 2,000, 3,000 and 50,000 per month respectively, and are free for public repositories. On the Free plan, private repositories get a limited feature set: protected branches, required reviewers, code owners and private-repo Pages need Team.
Pricing for CI changed in 2026. GitHub reduced hosted-runner prices by up to 39% from 1 January 2026, and a planned per-minute charge on self-hosted runners was postponed with no new date announced. If CI cost is what is pushing you to look elsewhere, check whether a cheaper runner is the real fix before migrating anything (see the short aside near the end).
GitLab: the all-in-one alternative
GitLab bundles repositories, CI/CD, issue tracking and security scanning in one product, and it is the closest like-for-like replacement for GitHub. If you are weighing the two directly, our GitLab vs GitHub comparison goes much deeper than this section.
- Pricing: Free is $0 with 400 compute minutes per month and a limit of 5 users per top-level group on GitLab.com. Premium and Ultimate are paid per-user tiers with more compute minutes (Ultimate is quote-based), and GitLab changes its pricing and AI add-ons often, so check its pricing page for current figures.
- Self-hosting: a self-managed tier is available, and our walkthrough on how to install and self-host GitLab on a VPS covers the practical side.
- CI: GitLab CI/CD, configured in
.gitlab-ci.yml. For a side-by-side with the other big CI systems see GitHub Actions vs GitLab CI vs Bitbucket Pipelines. - Migration: the built-in GitHub importer brings over repositories, branches, LFS, issues, pull requests, comments, labels, milestones, wiki and branch protection rules. Gaps: GitHub organisations are not migrated as groups, required status checks are not imported, and you need a classic personal access token.
- Gotcha for deploy triggers: a push that updates more than three branches or tags at once does not fire webhooks by default.
Bitbucket Cloud: the Atlassian option
Bitbucket makes sense if Jira is already where your team lives, because the issue linking is tighter than anything you can bolt onto another host.
- Pricing: Free for up to 5 users with 50 build minutes. Standard is $3.65 per user per month and Premium is $8. Atlassian changed Bitbucket Premium list prices from 13 October 2026, so check its pricing page for the current figure.
- Self-hosting: Bitbucket Cloud is a hosted service. If self-hosting is a requirement, Gitea, Forgejo or GitLab's self-managed tier are the better fit.
- CI: Bitbucket Pipelines. Build minutes and storage are shared per workspace, and extra capacity is $10 per month per 1,000 minutes.
- Migration: the built-in repository import takes a Git URL plus credentials or a token and moves the code. Atlassian's import page doesn't cover issues or pull requests, so plan to migrate those separately.
Gitea: lightweight and self-hosted
Gitea is a single Go binary that runs happily on a small VPS, which is why it is the default answer for I just want my own Git server
. The open-source edition is MIT-licensed with unlimited users and repositories. A paid Enterprise tier adds SAML SSO, audit logs and SLA support.
Gitea Actions is mostly compatible with GitHub Actions workflows, but you provide your own runner. If you want to try it, we have a guide to installing Gitea on a VPS and one on how to deploy from Gitea to your server automatically.
Forgejo: the community-governed fork
Forgejo started as a fork of Gitea in October 2022, after Gitea's domains and trademark moved to a for-profit company, and has been a hard fork since early 2024. It is governed by its contributors, with the non-profit Codeberg e.V. holding the domains. Forgejo v9.0 and later is GPL v3 or later (up to v8.0 it was MIT).
The practical differences: Forgejo Actions is not designed to be compatible
with GitHub Actions, so expect to adjust workflows (it falls back to .github/workflows if there is no .forgejo/workflows), and it also needs your own runner. Choose Forgejo over Gitea if community governance and a copyleft licence matter to you; choose Gitea if you want a commercial vendor behind it.
Codeberg: free hosting for open source
Codeberg is a non-profit-run host built on Forgejo, funded by donations and memberships. It is a good home for public open-source work and a poor one for commercial private code: it states it does not offer private hosting services, and private content is limited to roughly 100 MB for free and libre contributors only. Public works need a suitable licence.
Practical limits to know: 750 MiB of Git storage and 1.5 GiB for packages, LFS and attachments before you need to ask for more. CI runs on Woodpecker (access is by request and reviewed by a volunteer) or on hosted Forgejo Actions, which is limited and in open alpha.
Migrating from GitHub uses the Gitea/Forgejo migration form and moves issues, labels, wiki, releases and milestones; a GitHub token is needed for metadata and private repos.
Entire: a forge built for AI agents (early access)
Entire describes itself as the Git forge for agent-human collaboration
. It hosts repositories on a Git-compatible server, can mirror a repository from GitHub (so GitHub can stay your origin), and replaces pull requests with a review flow it calls Trails.
What to weigh before considering it:
- Stage: its pricing page calls the current pricing
early access
and refers to a preview period. Treat it as early. - Cost: code hosting, Trails and the CLI are free; you pay per token only for agent usage.
- Performance claims: Entire's own benchmark reports 418 pushes per second against 4.7 for GitHub. That comes from the vendor's own open-source benchmark tool, so read it as a vendor claim, not an independent result.
- Hosting: vendor-run regions only. No self-hosting option was listed.
- Company details: the site did not name a company, founders or funding when we checked.
It suits teams generating heavy agent traffic who are comfortable adopting an early product. It is a weaker fit if you need self-hosting, stable pricing or a long track record.
Which one should you pick?
- You want one platform and don't mind a vendor: GitLab.
- You live in Jira: Bitbucket Cloud.
- You want a tiny self-hosted server with a vendor behind it: Gitea.
- You want self-hosting with community governance: Forgejo.
- You publish open source and want non-profit hosting: Codeberg.
- You run lots of coding agents and accept early-stage risk: Entire.
- You are happy with GitHub and just want cheaper builds: keep GitHub and look at the runner layer.
Deploying from any of these? DeployHQ connects to GitHub, GitLab, Bitbucket and any self-hosted Git server, so you can start deploying free and keep the same pipeline whichever host you choose.
Deployment triggers: what changes when you switch hosts
GitHub, GitLab, Bitbucket, Gitea and Forgejo all send push webhooks, and Codeberg inherits them from Forgejo. Entire's webhook behaviour isn't covered here. The header your receiver validates differs by platform:
| Platform | Signature header |
|---|---|
| GitHub | X-Hub-Signature-256 |
| GitLab | X-Gitlab-Token (a plain secret) or an HMAC signing token |
| Bitbucket | X-Hub-Signature |
| Gitea | X-Gitea-Signature / X-Hub-Signature-256 |
| Forgejo | X-Forgejo-Signature (also sends Gitea and GitHub-compatible headers) |
If you deploy over SSH, check how each host handles read-only access first; our explainer on Git deploy keys across GitHub, GitLab and Bitbucket covers where they disagree. For ready-made setups see how to deploy from GitHub to your server and deploy from GitLab.
If the real problem is CI cost
Migrating a repository host to save on CI is a heavy fix. A lighter route is to keep your repo where it is and change where builds run, or to separate build from deploy. The GitHub Actions comparison linked in the table above shows how a dedicated deployment layer sits alongside Actions, and the CI/CD tools roundup lists the other options.
Whichever host you land on, you can keep deploying the same way. See DeployHQ's free plan and pricing and have your first automatic deployment running in minutes.
Questions about moving a deployment pipeline between Git hosts? Email support@deployhq.com or reach us on X at @deployhq.