{"id":31137,"date":"2026-06-12T16:25:29","date_gmt":"2026-06-12T14:25:29","guid":{"rendered":"https:\/\/contabo.com\/blog\/?p=31137"},"modified":"2026-06-12T16:35:50","modified_gmt":"2026-06-12T14:35:50","slug":"gitea-vs-forgejo","status":"publish","type":"post","link":"https:\/\/contabo.com\/blog\/gitea-vs-forgejo\/","title":{"rendered":"Gitea vs Forgejo 2026: What&#8217;s the Difference and Which to Self-Host?"},"content":{"rendered":"\n<p>Gitea and Forgejo are two lightweight, self-hosted Git platforms that look almost identical \u2014 because one began as a fork of the other. Forgejo split from Gitea in late 2022 over how the project was governed, and the two have been diverging since. They remain highly compatible today, so the real choice is less about features and more about governance: a company-backed project versus a community-run one.<\/p>\n\n\n\n<div class=\"wp-block-uagb-advanced-heading uagb-block-976ad3b8\"><h2 class=\"uagb-heading-text\">Quick Verdict<\/h2><\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Choose Gitea if you want the company-backed project with the broadest ecosystem and the most familiarity.<\/li>\n\n\n\n<li>Choose Forgejo if community, non-profit governance and a privacy-forward direction matter to you \u2014 or if you&#8217;re already using Codeberg, which runs on Forgejo.<\/li>\n\n\n\n<li>They&#8217;re close enough that most users could run either; pick on governance and values more than on a feature checklist.<\/li>\n<\/ul>\n\n\n\n<table style=\"border-collapse: collapse; width: 100%; margin: 1em 0;\">\n  <thead>\n    <tr style=\"background-color: #f2f2f2;\">\n      <th style=\"border: 1px solid #ddd; padding: 10px; text-align: left;\">Dimension<\/th>\n      <th style=\"border: 1px solid #ddd; padding: 10px; text-align: left;\">Gitea<\/th>\n      <th style=\"border: 1px solid #ddd; padding: 10px; text-align: left;\">Forgejo<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td style=\"border: 1px solid #ddd; padding: 10px;\"><strong>Origin<\/strong><\/td>\n      <td style=\"border: 1px solid #ddd; padding: 10px;\">Original project (forked from Gogs in 2016)<\/td>\n      <td style=\"border: 1px solid #ddd; padding: 10px;\">Forked from Gitea in late 2022<\/td>\n    <\/tr>\n    <tr>\n      <td style=\"border: 1px solid #ddd; padding: 10px;\"><strong>Governance<\/strong><\/td>\n      <td style=\"border: 1px solid #ddd; padding: 10px;\">Company-backed<\/td>\n      <td style=\"border: 1px solid #ddd; padding: 10px;\">Community \/ non-profit (Codeberg e.V.)<\/td>\n    <\/tr>\n    <tr>\n      <td style=\"border: 1px solid #ddd; padding: 10px;\"><strong>Licensing<\/strong><\/td>\n      <td style=\"border: 1px solid #ddd; padding: 10px;\">Open-source<\/td>\n      <td style=\"border: 1px solid #ddd; padding: 10px;\">Open-source (FOSS-focused)<\/td>\n    <\/tr>\n    <tr>\n      <td style=\"border: 1px solid #ddd; padding: 10px;\"><strong>Compatibility<\/strong><\/td>\n      <td style=\"border: 1px solid #ddd; padding: 10px;\">\u2014<\/td>\n      <td style=\"border: 1px solid #ddd; padding: 10px;\">Highly compatible with Gitea; migration documented both ways<\/td>\n    <\/tr>\n    <tr>\n      <td style=\"border: 1px solid #ddd; padding: 10px;\"><strong>Notable direction<\/strong><\/td>\n      <td style=\"border: 1px solid #ddd; padding: 10px;\">Broad ecosystem, widely deployed<\/td>\n      <td style=\"border: 1px solid #ddd; padding: 10px;\">Federation (ActivityPub) and Forgejo Actions, community-led<\/td>\n    <\/tr>\n    <tr>\n      <td style=\"border: 1px solid #ddd; padding: 10px;\"><strong>Footprint<\/strong><\/td>\n      <td style=\"border: 1px solid #ddd; padding: 10px;\">Lightweight (Go)<\/td>\n      <td style=\"border: 1px solid #ddd; padding: 10px;\">Lightweight (Go)<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n\n\n<div class=\"wp-block-uagb-advanced-heading uagb-block-6d1a9b27\"><h3 class=\"uagb-heading-text\">The Fork Story<\/h3><\/div>\n\n\n\n<p>Forgejo emerged in October 2022, after the Gitea project&#8217;s direction was handed to a commercial entity. A group of contributors, concerned about community control, forked the codebase under the umbrella of Codeberg e.V., a German non-profit, and named it Forgejo. It began as a close &#8216;soft fork&#8217; that tracked Gitea closely, then in early 2024 became a hard fork \u2014 meaning its codebase is now free to diverge rather than mirror Gitea line for line. People genuinely want this backstory when choosing between the two, because it explains everything else about how they differ.<\/p>\n\n\n\n<div class=\"wp-block-uagb-advanced-heading uagb-block-b65e1938\"><h3 class=\"uagb-heading-text\">Governance &amp; Licensing<\/h3><\/div>\n\n\n\n<p>This is the real differentiator. Forgejo is governed by a community structure under a non-profit, with the explicit goal of keeping the project controlled by the people who use it. Gitea is backed by a company, which can mean faster commercial investment but also the corporate direction that prompted the fork in the first place. Both are open-source and free to self-host; if who steers the project matters to you, that&#8217;s the axis to decide on.<\/p>\n\n\n\n<div class=\"wp-block-uagb-advanced-heading uagb-block-322fdb64\"><h3 class=\"uagb-heading-text\">Features &amp; Compatibility<\/h3><\/div>\n\n\n\n<p>At the surface level the two are still very close \u2014 the interface is nearly identical and container images are largely interchangeable, so Forgejo can serve as a drop-in replacement for Gitea, with migration documented in both directions. Where they&#8217;ve diverged, Forgejo has pushed community-driven work such as ActivityPub-based federation and its own Actions runner ahead of Gitea. Treat the newer federation features as opt-in rather than a production default. For day-to-day Git hosting, you&#8217;d struggle to tell them apart.<\/p>\n\n\n\n<div class=\"wp-block-uagb-advanced-heading uagb-block-5f5cd0e3\"><h3 class=\"uagb-heading-text\">Releases &amp; Momentum<\/h3><\/div>\n\n\n\n<p>Both projects ship regular releases and are actively maintained. Since the hard fork, Forgejo cherry-picks selectively from Gitea rather than tracking it automatically, and steers its own roadmap through community governance. Gitea continues its own active release cadence with broad adoption behind it. Neither is stagnant; they&#8217;re simply moving in directions set by different kinds of stewardship.<\/p>\n\n\n\n<div class=\"wp-block-uagb-advanced-heading uagb-block-687a6fa6\"><h3 class=\"uagb-heading-text\">Which Should You Choose?<\/h3><\/div>\n\n\n\n<p>Choose Gitea if you want the company-backed project with a broad ecosystem and maximum familiarity. Choose Forgejo if you prefer community governance, align with Codeberg, or value a FOSS-first, privacy-forward direction. Because the two remain so compatible, you can also start on one and migrate later with relatively little friction \u2014 so this is a decision you can revisit rather than a one-way door.<\/p>\n\n\n\n<div class=\"wp-block-uagb-advanced-heading uagb-block-90ffb231\"><h3 class=\"uagb-heading-text\">How to Self-Host Your Pick on a VPS<\/h3><\/div>\n\n\n\n<p>Both run well on a modest virtual private server \u2014 they&#8217;re lightweight Go applications that don&#8217;t demand much RAM. A VPS gives you root access to install either, control over your repositories, and EU data-residency options. Contabo&#8217;s Core VPS line, with its strong RAM-per-Euro value, comfortably hosts either project. Because Forgejo is largely a drop-in for Gitea, the same setup approach applies to both; the linked Gitea Docker guide below works as a starting point for either.<\/p>\n\n\n\n<div class=\"wp-block-uagb-advanced-heading uagb-block-fe61891e\"><h2 class=\"uagb-heading-text\">FAQ<\/h2><\/div>\n\n\n\n<div class=\"schema-faq wp-block-yoast-faq-block\"><div class=\"schema-faq-section\" id=\"faq-question-1780482465805\"><strong class=\"schema-faq-question\">What is the difference between Gitea and Forgejo?<\/strong> <p class=\"schema-faq-answer\">Forgejo is a community-governed fork of Gitea, run under a non-profit, while Gitea is company-backed. They remain highly compatible in features and interface. The main practical difference is governance \u2014 who controls the project&#8217;s direction \u2014 rather than day-to-day functionality.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1780482478154\"><strong class=\"schema-faq-question\">Why did Forgejo fork from Gitea?<\/strong> <p class=\"schema-faq-answer\">Forgejo was created in late 2022 after the Gitea project&#8217;s stewardship moved to a commercial entity. Contributors who wanted the project to stay under community control forked it under the non-profit Codeberg e.V. In early 2024 it became a hard fork, free to diverge from Gitea&#8217;s codebase.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1780482491241\"><strong class=\"schema-faq-question\">Can I migrate from Gitea to Forgejo?<\/strong> <p class=\"schema-faq-answer\">Yes. Forgejo is designed to be highly compatible with Gitea, and migration is documented in both directions. In many setups it can act as a drop-in replacement. As with any migration, back up your data first and test the upgrade path before switching a production instance.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1780482505460\"><strong class=\"schema-faq-question\">Is Forgejo a drop-in replacement for Gitea?<\/strong> <p class=\"schema-faq-answer\">For most current deployments, yes \u2014 the database and interface are highly compatible, and container images are largely interchangeable. As Forgejo continues to diverge after its hard fork, check the release notes for any version-specific differences before relying on exact compatibility.<\/p> <\/div> <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Gitea and Forgejo are two lightweight, self-hosted Git platforms that look almost identical \u2014 because one began as a fork of the other. Forgejo split from Gitea in late 2022 over how the project was governed, and the two have been diverging since. They remain highly compatible today, so the real choice is less about [&hellip;]<\/p>\n","protected":false},"author":78,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1535],"tags":[4449,2370,4447,4455,4446,4444,602,4445,3178,896],"ppma_author":[4285],"class_list":["post-31137","post","type-post","status-publish","format-standard","hentry","category-comparisons","tag-codeberg","tag-devops-tools","tag-forgejo","tag-git-server","tag-gitea","tag-github-alternatives","tag-open-source","tag-self-hosted-git","tag-self-hosting-2","tag-vps-hosting"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Jie Guo","author_link":"https:\/\/contabo.com\/blog\/author\/jieguo\/"},"uagb_comment_info":0,"uagb_excerpt":"Gitea and Forgejo are two lightweight, self-hosted Git platforms that look almost identical \u2014 because one began as a fork of the other. Forgejo split from Gitea in late 2022 over how the project was governed, and the two have been diverging since. They remain highly compatible today, so the real choice is less about&hellip;","authors":[{"term_id":4285,"user_id":78,"is_guest":0,"slug":"jieguo","display_name":"Jie Guo","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/4e0d981b06988d6d456834e9d55bc9e713e918fa8444325543d14f448154106b?s=96&d=mm&r=g","author_category":"","user_url":"","last_name":"Guo","first_name":"Jie","job_title":"","description":""}],"_links":{"self":[{"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/posts\/31137","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/users\/78"}],"replies":[{"embeddable":true,"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/comments?post=31137"}],"version-history":[{"count":2,"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/posts\/31137\/revisions"}],"predecessor-version":[{"id":31139,"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/posts\/31137\/revisions\/31139"}],"wp:attachment":[{"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/media?parent=31137"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/categories?post=31137"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/tags?post=31137"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=31137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}