Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

ADR 0001: Use Codeberg as Public Git Host

Status

Accepted

Context

The homelab project requires a public git repository to host its architecture documentation, infrastructure-as-code (IaC), and potentially public-facing service configurations. This host serves as the “public face” of the project and must align with the project’s values regarding open source, privacy, and community-driven infrastructure.

While a self-hosted instance (e.g., Forgejo/Gitea) will be used for internal management and private code, a reliable public host is needed for:

  • Public visibility and collaboration.
  • External CI/CD triggers (e.g., for documentation deployment).
  • Mirroring and redundancy for critical configurations.

Decision

We will use Codeberg as the primary public git host for the homelab project.

Codeberg is chosen because:

  • It is based on Forgejo (a community fork of Gitea), which aligns with our internal management plane preferences.
  • It is a non-profit, community-driven platform that prioritizes privacy and freedom.
  • It provides a reliable, high-performance environment for hosting public repositories without the commercial baggage of larger platforms.

Consequences

  • The homelab repository (and associated subprojects) will be maintained on Codeberg.
  • Automation for documentation deployment (mdBook) will be integrated with Codeberg’s CI/CD (Woodpecker or Forgejo Actions) or triggered by Codeberg webhooks.
  • Public contributions and issues will be managed via the Codeberg interface.
  • Secret management must be strictly enforced to ensure no private credentials are leaked to the public Codeberg repositories.