Am Puls von Microsoft

Codeberg – eine freie Alternative zu GitHub?

Codeberg - eine freie Alternative zu GitHub?

Einige Entwickler fragen sich hinsichtlich GitHub: Wieso sollte man, wenn man freie Software entwickelt, eine proprietäre Plattform mit einem goldenen Käfig nutzen? Die aus Berlin stammende Plattform Codeberg versucht diesen Umstand sachlich zu lösen, und dies bald dank Activity Pub Unterstützung auch föderiert.

Der Leitfaden

Statt einer Gewinnorientierung verfolgt Codeberg eine Mission: Modernes Git-Hosting frei von kommerziellen Interessen, Datenkraken und Vendor Lock Gedanken. Diese Mission unterteilen die Verantwortlichen in drei Hauptpunkte.

Non-Profit

Codeberg ist keiner Firma angeschlossen, sondern liegt in der Hand der dahinter liegenden Community, des eingetragenen Vereins Codeberg aus Berlin. Dieser steht jedem offen, um als (Förder-) Mitglied beizutreten.

Gemeinschaft

Codebergs Selbstverständnis ist mehr als nur Git-Hosting. Es sieht sich als Sammelpunkt für alle Entwickler freier Software und allen anderen, welche dazu beitragen möchten.

In Zukunft wird dieser Gedanke noch weiter ausgebaut. Codeberg wird in absehbarer Zeit mittels dem Activity Pub Protokoll einen föderierten Ansatz ermöglichen. Somit lassen sich auch anderweitig betriebene Instanzen miteinander verbinden, so wie es bereits auch schon bei Mastodon und anderen Plattformen der Fall ist.

Respekt

Die Plattform setzt keine (Werbe-) Tracking Cookies ein und verspricht, keine Daten zu verkaufen und keine Dienstleister für ihre Infrastruktur zu verwenden, welche dies eventuell tun. Codeberg hostet sich auf Servern innerhalb der Europäischen Union selbst.

Nach meiner kurzen Erfahrung wird in der Codeberg Community auch der Respekt untereinander großgeschrieben, das gilt sowohl für die Mitglieder als auch für Neulinge und auch auf Mastodon oder Matrix.

Codeberg vs. Forgejo vs. Gitea vs. Gogs vs. Git

Ein Wunder der Open Source und Fork-Kultur. Die Plattform sitzt, wie üblich in der IT, auf den Schultern von bereits existierenden Größen der Branche. Dies ist nicht verwunderlich, da man somit eine Mehrwert schaffende Standardisierung schafft, in dem man beispielsweise Git als Versionskontrollsystem (SCM) verwendet. Dennoch ist vor allem der Zusammenhang von Gog zu Gitea zu Forgjo zu Codeberg sehr spannend, da es die Stärken freier Software aufzeigt. Gefällt dir etwas nicht, dann mach dein eigenes Ding daraus und verbessere es nach deinen Leitsätzen.

Git

Git wurde 2005 von Linus Thorvalds entwickelt, dem Macher hinter dem Linux Kernel. Es ist der defacto Standard für eine verteilte Versionskontrolle, welche auch anderen Diensten wie GitHub oder GitLab als Unterbau dient. Theoretisch ist Git dezentral, benötigt also keinen singulären Dienst, welcher es bündelt. Dieses Paradox dient oft als Nachteil, wenn man all die hierauf aufbauenden Dienste verwendet.

Gitea

2016 vom Gogs Projekt abgespalten, da der Hauptentwickler hinter Gogs in den Augen der Community Fortschritte und Verbesserungen gebremst oder gar geblockt hat. Seitdem zählt Gitea zu den beliebtesten Code-Plattformen, wenn man etwas Leichtgewichtiges sucht, das sich mit vertretbarem Aufwand auch selbst betreiben lässt.

Forgejo

Soft-Fork von Gitea. Grund war, dass eine Firma hinter Gitea gegründet wurde, welche kostenpflichtigen Dienste rund um die Applikation anbietet, was wiederum der Community nicht gefiel und deswegen 2022 abgespalten wurde. Forgejo versucht weiterhin, eine simpel zu administrierende, aber auch zu benutzbare Oberfläche zu sein, welche sich im Aussehen stark an den großen Spielern im Marktsegment wie GitHub und GitHub anlehnt.

Codeberg

Codeberg ist ein Dienst beziehungsweise Produkt auf Basis von Forgejo mit zusätzlichen Funktionen wie “Codeberg Pages”. Finanziert wird Codeberg durch einen dahinterstehenden, eingetragenen und nicht gewinnorientierten Verein, dem “Codeberg e.V.” aus Berlin.

Go

All die oben erwähnten Applikationen, außer Git, sind größtenteils in der seit 2012 als stabil markierten, multi-paradigmatischen Programmiersprache Go geschrieben.

Gemacht und gedacht für freie Projekte

Der wohl größte Unterschied zu den meisten anderen Plattform ist, dass Codeberg, klar kommuniziert, durch und durch für Freiheit steht. Nicht nur in der Finanzierung, sondern auch in den dort angebotenen Quelltexten.

Jedes Repository muss frei sein und unter einer von der OSI oder FSF genehmigten Lizenz stehen. Beispiele hierfür sind unter anderem die MIT, Apache 2.0+ oder GPL 3.0+ Lizenzierungen von Projekten. Für nicht quelltextbezogene Inhalte wie Dokumentationen, Diagramme und dergleichen ist etwa die Creative Commons (CC) Lizenz erlaubt.

Wie immer bestätigen Ausnahmen die Regel, wenn es sich beispielsweise um unter Markenschutz stehende Logos von Projekten oder deren Sponsoren handelt.

Ich bin ein Verfechter von FOSS und Co. Dennoch nutze ich „private” Repositories zumeist als einen Weg, um Projekte erst dann anderen zu zeigen, wenn ich dafür keinen Code-Scham mehr habe oder es eine vernünftige Dokumentation gibt, ich es aber dennoch außerhalb meines Entwicklungssystems gesichert ablegen möchte. Dieser Vorgang ist auf Codeberg durch die oben genannte Reglementierung zwar noch möglich, steht aber zur Diskussion.

Für Codeberg würde das bedeuten, dass Open wirklich Open und in diesen Sinne Public bedeutet.

Der Verzicht auf Tracking, Werbung und kostenpflichtige Angebote erfordert ein funktionierendes Spendensystem. Anders als bei anderen FOSS Gruppen scheint dies bei Codeberg – laut eigenen Angaben – auf sehr stabilen finanziellen Beinen für mehr als eine Dekade in der Zukunft zu stehen. Dennoch schadet bei aktiver Nutzung eine gutgemeinte, finanzielle oder auch tatkräftige Unterstützung dem Projekt wohl nicht. Von der Community, für die Community.

Der Test

Um mir selbst eine erste Meinung bilden zu können, verwendete ich Codeberg für ein Beispielprojekt, um mich auch mit den inkludierten Funktionen wie Pages oder der CI, den GitHub Actions von Codeberg,  vertraut zu machen. Hierzu erstelle ich einen drwindows Account auf Codeberg und fügte ein Repository für eine Codeberg Page hinzu.

Registrierung

Der Anmeldeprozess ist simpel und intuitiv und es werden nicht mehr Daten als unbedingt nötig abgefragt. Keine Kreditkarte, keine Telefonnummern oder andere persönliche Daten sind Bestandteil der Registrierung. Allerdings wurden in meinem Fall auch keine Anstalten gemacht, eine Zwei-Faktor-Authentifizierung zu aktivieren. Generell ermöglicht der Dienst, seinen Account mit 2FA via Einmalpasswort oder mittels Hardwareschlüssel zu sichern.

Erstes Repository

Wer einmal eine Code-Hosting-Plattform benutzt hat, wird auch hier keine Probleme haben, das erste Repository anzulegen.
Für alle, die bereits auf anderen Diensten ihre Quelltexte liegen haben, bietet Codeberg auch Migrationshilfen an. Unterstützt werden natürlich die Großen wie GitHub und GitLab, aber auch für mich noch unbekannte Seiten wie one.dev oder Codebase.

Issues und Co.

Auch bei diesem Thema hält sich Codeberg, beziehungsweise Forgjo, an bereits Vertrautes und aus anderen Diensten Erlerntes. So lässt sich in einem Issue, auch Ticket genannt, neben einer Überschrift auch ein formatierter Erklärtext eingeben und selbstverständlich gibt es die Möglichkeiten, dieses Ticket anderen Benutzern zuzuweisen, mit Tags zu versehen und es Milestones und Projekten zuzuordnen.
Weiterhin bietet die Plattform an, Vorlagen für die Erstellung von Issues zu erstellen, um beispielsweise bei einem Fehlerfall benötigte Informationen gleich mit abzufragen. Eine Liste möglicher Templates findet man in der Dokumentation von forgejo.

Codeberg Pages

Wir bei Dr. Windows haben schon öfter unsere Basteleien auf GitHub Pages abgelegt. Hierbei handelt es sich um ein Hosting von statischen Webseiten innerhalb eines Repository Kontext. Manche erinnern sich eventuell noch an unseren “PowerShell + Issues = Blog”-Beitrag aus dem Jahre 2020. Codeberg bietet auch dieses Feature, welches noch nicht in der darunterliegenden Software forgejo eingebaut ist – dementsprechend nennt es sich auch “Codeberg Pages”. In meinem Test verlief dies einwandfrei, bis auf zum Zeitpunkt des Tests lahmende Seitenaufrufe, dies wurde mittlerweile durch potentere Hardware beseitigt.

Codeberg Actions

Ähnlich wie bei den Pages bietet auch Codeberg eine CI – also Continuous Integration an. Hierbei setzt das Projekt auf die quelloffene Woodpecker CI. Bislang ist dieses Feature der Plattform nur mit Einladung beziehungsweise Erlaubnis nutzbar – allerdings kenne ich keinen Nutzer, der hier abgelehnt wurde, solange dieser die Nutzung ernst meint.

Weiteres

Codeberg bietet eine Reihe weiterer Funktionen an. Über einen Editor, um auf der Plattform direkt Dateien anzulegen und zu bearbeiten, Pull Requests, Wikis, Releases, Swim-Lane Projekte oder auch eine Paket Registry ist alles da. Somit sind alle grundlegenden Features, die man von einer modernen Plattform rund um Quelltext-Hosting erwartet, gegeben. Wer sich ein Bild verschaffen will, der kann bei großen Repositories wie Forgejo einmal durchnavigieren.

Mein Fazit

Kurz gesagt, ist Codeberg auf jeden Fall einen Blick wert! Ich finde es persönlich sehr lobenswert, dass eine Gruppe von Menschen hergeht und eine Plattform nach deren Leitfäden aufzieht.

Mich freut es, dass Codeberg innerhalb dieser Blase von Open Source Enthusiasten mittlerweile zu einem “Go To” geworden ist. Mich freut es ebenso, dass das Projekt auf finanziell soliden Beinen steht. Dennoch werde ich nicht dorthin migrieren. Für mich ist GitHub, auch wegen der dortigen Community und auch weil ich damit einfach vertraut bin, weiterhin mein zentraler Ort, an dem ich beruflich, aber auch privat meine Softwareprojekte ablegen werde. Hierzu zählt auch, dass ich aus beruflichen Beweggründen viel mit Oberflächengestaltung zu tun habe und für mich GitHub einfach übersichtlicher ist.

Dennoch muss ich sagen: Wenn ich jemals einen Drang zum Wechseln verspüren sollte, wäre Codeberg meine erste Anlaufstelle, die ich erneut evaluieren würde.

Über den Autor

Tobias Scholze

Tobias Scholze

Bayrischer Open Source- und Community-Enthusiast, Verfechter des neuen Microsoft und Wandler zwischen den Betriebssystemwelten. #communityrocks Von Herzen ein Nerd mit der festen Überzeugung, dass man gemeinsam und durch den Einsatz von moderner IT die Welt für jeden ein Stückchen besser machen kann.

Anzeige