Codeberg: A Community-Owned Future for Open Source

Codeberg: A Community-Owned Future for Open Source

By Pashalis Laoutaris Category: GitHub Alternatives 3 min read

Editor’s Note: This article is part of our definitive guide to GitHub Alternatives. Click here to read the main overview.

Table of Contents

Part I: The “Why” of Codeberg - A Movement, Not Just a Platform

A. Introduction: What is Codeberg?

Codeberg is a non-profit, community-driven platform for hosting, developing, and collaborating on free and open-source software (FOSS). It is operated by Codeberg e.V., a registered non-profit association based in Berlin, Germany. The platform’s core mission is to provide a reliable and independent home for the creation, archiving, and preservation of code and its development process, intentionally avoiding dependencies on commercial or proprietary services.

B. The Genesis: A Reaction to a Changing Landscape

The idea for Codeberg was born out of a growing concern within the open-source community regarding the commercialization of software development platforms. A significant catalyst was Microsoft’s acquisition of GitHub in 2018, which prompted developers to seek alternatives that were not controlled by large corporations.

Founded in 2019, Codeberg e.V. was established to offer a platform free from the pressures of commercial interests. A key decision was to base the organization and its infrastructure in the European Union. This provides a legal framework that can protect projects from issues like bad-faith DMCA takedown requests common under U.S. law and ensures data is handled under the EU’s strong privacy regulations.

C. The Core Philosophy: Freedom, Privacy, and Community

Codeberg is built on a foundation of principles that set it apart from for-profit competitors. It is a humane, non-commercial, and privacy-respecting alternative, committed to the ideals of the free software movement. This is underscored by a strict policy requiring all hosted projects to be under an OSI/FSF-approved license. This dedication to FOSS aims to resolve the paradox of volunteer-driven open source projects contributing value to closed, commercial platforms.

Part II: Under the Hood: The Technology Stack

A. The Forgejo Foundation

Codeberg is powered by Forgejo, a community-managed, self-hostable software forge that is a fork of Gitea. This choice is significant as it means Codeberg’s core infrastructure is itself free and open-source software. Codeberg e.V. serves as the custodian of the Forgejo project, ensuring it remains 100% Free Software. Forgejo is designed to be lightweight, efficient, and easy to maintain, providing a familiar Git-based environment for developers.

B. The Extended Ecosystem: More Than Just a Git Host

Codeberg has expanded its offerings to provide a comprehensive development ecosystem:

Codeberg Pages: A service for hosting static websites directly from a Git repository, much like GitHub Pages.

Woodpecker CI: A free and open-source Continuous Integration/Continuous Delivery (CI/CD) engine for automating software builds, tests, and deployments.

Weblate Integration: A collaborative platform to help projects with the important work of software localization and translation.

Package Registry: Support for hosting various software packages and container images.

Part III: Getting Started: Practical “How-To” Guides

A. How-To: Migrating Your Project from GitHub to Codeberg

Migrating from GitHub is a straightforward process thanks to Codeberg’s built-in tools.

  1. Create a Codeberg Account: The first step is to register on Codeberg.org.

  2. Generate a GitHub Personal Access Token: In your GitHub developer settings, create a “classic” Personal Access Token. You only need to grant it the “repo” scope, which allows the migration tool to access your repositories.

  3. Use the Built-in Migration Tool: On Codeberg, click the ”+” icon in the top right and select “New Migration”.

  4. Enter Repository Details: Paste your GitHub repository’s HTTPS URL. For authentication, use your GitHub username and the personal access token you just created as the password.

  5. Select Items and Begin: Choose which elements you want to import (e.g., issues, pull requests, releases, milestones) and start the migration. The tool will handle the rest.

  6. Update Your Local Repository: Once the migration is complete, update your local Git clone to point to its new home on Codeberg:

    git remote set-url origin <your-new-codeberg-repo-url>
  7. (Optional) Bulk Migration: For those with many repositories, community-developed scripts are available to automate the migration process.

B. How-To: Publishing a Website with Codeberg Pages

Codeberg Pages makes it simple to host a static website for your project or your user profile.

Simple Method (for a user/organization site):

  1. Create a public repository named exactly pages.
  2. Add your static content, including an index.html file, CSS, and JavaScript.
  3. Push your changes to the default branch. Your website will be live at: {username}.codeberg.page.

Advanced Method (for a project-specific site):

  1. In your project’s repository, create a new branch named pages. A good way to do this is with git switch --orphan pages to create a branch with no history.
  2. Push your static site’s build output (e.g., the public or dist folder) to this pages branch.
  3. Your site will be available at: {username}.codeberg.page/{repository-name}/.

Using a Custom Domain:

  1. In the root of your Pages repository (or pages branch), create a file named .domains.
  2. Add your custom domain (e.g., www.my-project.org) to this file.
  3. In your DNS provider’s settings, add a CNAME record pointing your domain to {username}.codeberg.page..

C. How-To: Setting Up CI/CD with Woodpecker CI

Woodpecker CI allows you to automate your development workflow.

  1. Request Access: Because CI resources are computationally intensive, you must first request access to Codeberg’s shared Woodpecker instance. This is done by filling out a request form to prevent abuse.

  2. Create a .woodpecker.yml file: In the root of your repository, create this file to define your CI/CD pipeline. The syntax is straightforward YAML.

  3. Define Your Pipeline: The YAML file specifies the steps to execute, often using Docker images. For example, a simple pipeline to build a project might look like this:

    pipeline:
      build:
        image: peaceiris/mdbook:latest
        commands:
          - mdbook build

    This conceptual example uses an mdbook image to build a book project.

  4. Add Secrets: For sensitive information like API tokens needed for deployment, use Woodpecker’s secrets manager in the web UI. Do not hardcode them in your .woodpecker.yml file.

  5. Push to Trigger: Commit and push your .woodpecker.yml file. Woodpecker will automatically detect it and run your pipeline.

Part IV: Codeberg in Action: Project Showcase and Community

A. Real-World Examples

Codeberg project

Codeberg is home to a growing number of diverse open-source projects. Notable examples include:

Forgejo: The very software that powers Codeberg is developed on Codeberg itself, a testament to the platform’s capabilities.

FFmpeg: The renowned multimedia framework is in the process of moving its development to a self-hosted Forgejo instance, highlighting the platform’s robustness for large-scale projects.

BookStack: The popular open-source documentation and wiki software officially lists Codeberg as one of its homes.

Countless Individual Projects: Many developers have moved their personal blogs, tools, and libraries to Codeberg, drawn by its ethos and feature set.

The Software Freedom Conservancy has also endorsed Codeberg as a recommended alternative in its “Give Up GitHub” campaign, further boosting its visibility and adoption.

B. A Community of Contributors

One of Codeberg’s greatest strengths is its active and supportive community. Users can get help and collaborate through project issue trackers and the central Codeberg Community repository.

Part V: The Non-Profit Heart: Governance and Sustainability

Codeberg project

A. A Democratic and Transparent Model

Codeberg is operated by Codeberg e.V., a German non-profit association. This structure ensures that the platform is governed by its community. Members of the association have voting rights and can influence the platform’s direction and budget in an annual assembly.

B. Sustainable and User-Funded

Codeberg’s operations are funded entirely by donations and membership fees, ensuring its independence from corporate interests. This model prioritizes long-term stability and service to the community over profit-driven growth. The organization is transparent about its finances, often sharing details in monthly newsletters. While its budget is modest compared to corporate giants, this focus on sustainable operation gives users confidence that the platform will not suddenly disappear.

Part VI: How to Get Involved

There are several ways to support Codeberg’s mission:

Become a User: The most direct way to contribute is to host your own FOSS projects on Codeberg.

Contribute to the Code: You can help with the development of Forgejo, Codeberg Pages, or other parts of the ecosystem.

Join the Non-Profit: Become a paying member of Codeberg e.V. to provide financial support and gain a vote in its governance. Membership starts at €24 per year, with a discounted rate available.

Donate: Make a one-time or recurring donation to help cover operational costs for servers and infrastructure.

VII. Conclusion: Why an Independent Forge Matters

In an era where digital infrastructure is increasingly centralized and controlled by a few large corporations, Codeberg stands out as a vital alternative. It is more than just a code hosting platform; it is a demonstration that a community-owned, democratically-governed, and non-profit model is not only possible but sustainable. By providing a home for FOSS projects that is itself built on free software and dedicated to user freedom, Codeberg helps ensure that the future of software development remains open, collaborative, and independent.

FAQ Section

Q: Is Codeberg completely free to use? A: Yes, hosting unlimited public and private repositories for free and open-source software is free. The platform is funded by optional donations and memberships.

Q: What license do my projects need to have? A: Your projects must use a Free and Open Source Software (FOSS) license approved by the Free Software Foundation or the Open Source Initiative.

Q: Can I host private repositories on Codeberg? A: Yes, you can have private repositories. However, they are still expected to contain FOSS, for example, for projects that are not yet ready for a public release. The primary mission of Codeberg is to support public FOSS development.

Q: How stable and well-funded is Codeberg? A: Codeberg operates on a sustainable non-profit model funded by donations and membership fees. The organization maintains financial reserves to ensure long-term operation. As of July 2020, it reported having a runway of approximately 12 years with expenses frozen.

Q: What is the relationship between Codeberg, Forgejo, and Gitea? A: Codeberg runs on Forgejo software. Forgejo is a “hard fork” of Gitea, meaning it started from Gitea’s code but is now developed independently. This fork was created by the community behind Codeberg to ensure the software’s development remained community-driven and aligned with non-profit goals. Codeberg e.V. is now the custodian of the Forgejo project.

Q: What is the storage limit for repositories? A: There is no fixed limit, but the platform operates on a fair-use policy. The team may review projects with unusually high resource usage (e.g., over 750 MB for Git storage or 1.5 GB for packages/LFS) to ensure stability for all users.


References

Codeberg. (n.d.). What is Codeberg? Retrieved from https://codeberg.org/

Forgejo. (n.d.). Beyond coding. We forge. Retrieved from https://forgejo.org/

Wikipedia. (2024). Codeberg. Retrieved from https://en.wikipedia.org/wiki/Codeberg

Noted. (2024, August 12). Forgejo - Powerful Self-Hosted Git Service. Retrieved from https://noted.lol/forgejo-powerful-self-hosted-git-service/

SourceForge. (2025). Forgejo Reviews. Retrieved from https://sourceforge.net/software/product/Forgejo/

Reddit. (2022, March 4). Anybody tried this? codeberg.org: free non-profit gitea-based github alternative including pages. Retrieved from https://www.reddit.com/r/opensource/comments/t6j5h9/anybody_tried_this_codebergorg_free_nonprofit/

Codeberg Documentation. (n.d.). Frequently Asked Questions. Retrieved from https://docs.codeberg.org/faq/

Reddit. (2025, August 7). FFmpeg is switching development from mailing list to Git forge “Forgejo”. Retrieved from https://www.reddit.com/r/linux/comments/16z14z9/ffmpeg_is_switching_development_from_mailing_list/

YouTube. (2024, March 6). Community-led GitHub alternative | Codeberg in a nutshell. Retrieved from https://www.youtube.com/watch?v=k_B1Z_wYg5g

Dyer, N. (2024, December 22). Codeberg. Retrieved from https://nathandyer.me/blog/codeberg

Codeberg e.V. (n.d.). Join Codeberg e.V.. Retrieved from https://join.codeberg.org/

Codeberg Documentation. (n.d.). Codeberg Pages. Retrieved from https://docs.codeberg.org/pages/

Codeberg Documentation. (n.d.). Working with Codeberg’s CI. Retrieved from https://docs.codeberg.org/ci/

Mewes, C. (2025, March 14). Migrating from GitHub to Codeberg (Forgejo/Gitea) – Notes. Retrieved from https://christoph.mewes.dev/notes/migrating-from-github-to-codeberg/

Rahul’s Blog. (2024, May 10). Github to Codeberg Bulk Migration Script. Retrieved from https://blog.rgm.io/posts/2024/05/10/github-to-codeberg-bulk-migration-script/

Polimetro. (2025, March 5). What is Codeberg and why it’s the best option over GitHub?. Retrieved from https://polimetro.com/en/what-is-codeberg-and-why-its-the-best-option-over-github/

Wikipedia (German). (2024). Codeberg. Retrieved from https://de.wikipedia.org/wiki/Codeberg Taggart Tech. (2025, March 31). How and Why to Ditch GitHub. Retrieved from https://taggart-tech.com/how-and-why-to-ditch-github

dont reinvent велосипед. (2020, November 4). how to migrate your GitHub repository to Codeberg. Retrieved from https://www.dont-reinvent-the-wheel.org/blog/how-to-migrate-your-github-repository-to-codeberg/

Forgejo. (n.d.). Main Page. Retrieved from https://forgejo.io/

codeberg.page. (n.d.). Codeberg Pages - static pages for your projects. Retrieved from https://codeberg.page/

Codeberg Blog. (2019, January 1). Codeberg.org launched! Retrieved from https://blog.codeberg.org/codeberg-launched.html

reinhard.codes. (2024, November 19). CI pipelines with Woodpecker. Retrieved from https://reinhard.codes/2024/11/19/ci-pipelines-with-woodpecker/

Liberapay. (n.d.). codeberg’s profile. Retrieved from https://liberapay.com/codeberg

GitHub. (n.d.). Effortlessly migrate GitHub repositories to Codeberg!. Retrieved from https://github.com/a-borg/github-to-codeberg-migration

Artyom Bologov. (n.d.). Codeberg Pages with SSL and Custom Domain. Retrieved from https://aartaka.me/blog/codeberg-pages-with-ssl-and-custom-domain.html

Mark Pitblado. (2024, March 17). Deploying mdbook to codeberg pages using woodpecker CI. Retrieved from https://notes.markpitblado.me/deploying-mdbook-to-codeberg-pages-using-woodpecker-ci

Hacker News. (2024, June 23). Is Codeberg.org financially sustainable relying on member fees? Any precedents?. Retrieved from https://news.ycombinator.com/item?id=36446729

Sagristá, T. (2022, July 4). Hello, Codeberg Pages. Retrieved from https://tonisagrista.com/blog/2022/hello-codeberg-pages/

Codeberg Documentation. (n.d.). Welcome. Retrieved from https://docs.codeberg.org/

Woodpecker CI. (n.d.). Getting started. Retrieved from https://woodpecker-ci.org/docs/development/getting-started

GitHub. (2023, July 18). Recommended setup for Woodpecker-CI pipelines? Retrieved from https://github.com/squidfunk/mkdocs-material/discussions/5729

GitHub. (n.d.). free-for-dev. Retrieved from https://github.com/ripienaar/free-for-dev


Back to All Posts
Share this post:
Share on Twitter
Share on LinkedIn
Share on Reddit
Share on Facebook
Copy Link
Copied!