In October 2024, we announced introducing a storage quota in a blog post which also shares a little more background. The goal is to leave more resources for the free/libre software projects that we all love, while reducing our spendings on abusive content and fighting it.

We are now proceeding with our plans, and these limits will be enabled soon. We are preparing for slowly applying restrictions starting Friday May 16, 2025. Our goal is to reduce friction for our users as much as possible, by automatically granting exceptions for many use cases.

In short: What you need to know

If your storage usage per user or organization remains well below the limits stated below, you won't need to check or ask for an exception:

  • Git repository storage: 750 MiB
  • LFS, Packages, Releases, Attachments: Additional 1.5 GiB
  • Additionally, the total size of "non-promoted" content, that is repositories that are for personal use (e.g. "my website", "my dotfiles") as well as private repositories, should not exceed 100 MiB

You can check your personal quota usage in the User Settings and your per-org quotas in the respective section of the org settings anytime.

We plan to experiment with automation to grant users with more resources for their projects, so as to both reduce friction on their end and to reduce the manual review effort on our end.

If you are approaching a quota limit, or want to migrate a large project to Codeberg before your limit is automatically raised, you can request an exception using the form in Codeberg-e.V./requests.

How it will be done

The quota implementation in Forgejo is rather new and has not yet been tested at scale. We expect to face some inconveniences during the rollout and ask you to report any issues you encounter to us. Over the past Forgejo releases, the quota feature has already been improved by the community, for example with a visual overview. If you want to help, consider contributing improvements in the domain of error handling and user tooling (early warnings, finding large files, managing storage etc).

The primary blocker for enabling the quota configuration is the human effort required to review requests and manage exceptions. Our workflow for managing exceptions and special requests is not yet very smooth and hardly scalable in the current form.

We have decided to use heuristics to automatically manage quota for the majority of our users. It might take various factors into consideration, such as the age of the user account, contributions to well-known projects, membership within Codeberg e.V. groups and popularity of owned/contributed projects.

Manual review will still happen, both to detect storage abuse and to grant exceptions. Especially new users that intend to start or migrate large projects will probably have to contact us first.

Why we need to limit storage size

Years ago, when Codeberg started small, we had the vision to empower everyone with the resources they need. We do not "charge" users based on their usage, which makes us distinct from commercial Git hosting providers that monetize the resources of their users to make profit. We hoped small projects would require little resources, and large projects would simply claim more.

From time to time, we check how people use our resources. When we think that projects use an unreasonable or otherwise needlessly excessive amount of resources, we handle such situations on a case-by-case basis, attempting to contact the projects' maintainers and/or enforcing limits.

Over the years, this approach turned out to be more challenging than initially expected. Many large and legitimate projects build awesome things with comparatively low resources (sometimes with as little as a few Megabytes) and make an active effort to minimize their impact. Unfortunately, not all people are that considerate with their impact.

Despite this, our storage backend is in a decent state. Thanks to your donations, storage capacities are not an issue right now. However, to keep Codeberg sustainable in the long-term, we are introducing the quotas now to support our current and future growth in users and members.

Further, storage is not only costly when saving it to disks, it is also costly when serving it to the world. Apart from the proliferation of AI scrapers and other big data crawlers that externalize their costs (as nicely outlined in this article by Drew DeVault), our infrastructure is also frequently abused as a content delivery network. For example, people regularly abuse Codeberg Pages for sharing warez/pirated content; some of whom invest a lot of effort to "fly under the radar".

While we'd love to invest our volunteer time into more productive efforts, playing this cat-and-mouse game is inherent to running an online platform that hosts user-generated content. We will continue to improve our detection and handling methods.

On a more positive note...

Instead of hosting pirated games, there is definitely a place for free and open-source video games on Codeberg. Many of these game projects are actively looking for your help! Here is a selection of recent picks:

  • Librerama, an arcade compilation of very small, fast-paced mini-games.
  • Hurry Curry!, a game about preparing and serving food quickly (multiplayer).
  • Liblast, a libre multiplayer FPS game and framework built using Godot game engine and a fully open-source tool chain.
  • Veloren, an action-adventure role-playing game set in a vast fantasy world. It can be translated using Codeberg's Weblate instance.
  • Various Luanti mods and related content (formerly Minetest) such as Mineclonia, Oasis Minigames and other minigames that are looking for translations
  • Widelands, a free, open source real-time strategy game with singleplayer campaigns and a multiplayer mode.
  • FreeRCT, a free and open source game which captures the look, feel and gameplay of the popular games RollerCoaster Tycoon 1 and 2.
  • Spaceships, an early-development free-as-in-freedom multiplayer game.
  • Parallel Overhead, a colorful endless runner game where you take control of the ships Truth and Beauty on a groundbreaking trip through hyperspace.