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
homelabrepository (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.