Forgejo: Leichte selbst gehostete Software-Schmiede
(forgejo.org)- Forgejo ist eine leichtgewichtige selbst gehostete Software-Schmiede für Teams, die ihre Entwicklungsplattform selbst betreiben möchten, und legt den Schwerpunkt darauf, den Aufwand für Installation und Wartung zu senken
- Es wird von einer Community unter dem Dach von Codeberg e.V. betrieben, und sowohl die Projekte als auch der Entwicklungsprozess bleiben vollständig auf Freier Software basiert
- Es bietet eine Umgebung, in die Nutzer mit GitHub-Erfahrung leicht wechseln können, und ist zugleich so konzipiert, dass Nutzer die Eigentümerschaft an der Plattform und die Produktivität der Zusammenarbeit selbst kontrollieren
- Es bietet einen großen Funktionsumfang und hält zugleich niedrige Serveranforderungen aufrecht; nach eigener Aussage benötigt es im Vergleich zu anderen Schmieden um eine Größenordnung weniger Ressourcen
- Mit Fokus auf Sicherheit, Skalierbarkeit, Föderation und Datenschutz zielt es auf verteilte kollaborative Entwicklung ab
Stellung und Betriebsmodell von Forgejo
- Forgejo ist eine leichtgewichtige selbst gehostete Software-Schmiede, mit der sich eine Software-Entwicklungsplattform auf dem eigenen Server betreiben lässt
- Ziel sind eine einfache Installation und Wartung bei geringem Administrationsaufwand
- Man kann ein Konto bei Codeberg oder einer anderen öffentlichen Instanz anlegen oder Forgejo direkt herunterladen und selbst hosten
- Betrieben wird es von einer inklusiven Community unter dem Dach von Codeberg e.V.
- Codeberg e.V. wird als demokratische Non-Profit-Organisation beschrieben
- Forgejo erklärt, dass es als ausschließlich Freie Software vertrauenswürdig ist
- Der Produktfokus liegt auf Sicherheit, Skalierbarkeit, Föderation und Datenschutz
- Die Unterschiede zu anderen Software-Schmieden lassen sich auf der Vergleichsseite nachlesen
Funktionsausrichtung und Mitwirkungsbereiche
- Forgejo verfolgt das Ziel, die Kontrolle über den Software-Entwicklungsprozess zurückzugewinnen, Projekte selbst zu hosten und Beteiligten zu helfen, sich gemeinsam auf die Bereitstellung hochwertiger Software zu konzentrieren
-
Benutzerfreundlichkeit und Betriebsaufwand
- Es wirbt mit einfacher Projektverwaltung und legt Wert auf eine Nutzererfahrung für Zusammenarbeit und Produktivität
- Es bietet GitHub-Nutzern eine vertraute Umgebung, damit sie auf eine Plattform wechseln können, die sie selbst besitzen
- Es senkt den Aufwand für Installation und Wartung, damit auch ohne Spezialkenntnisse eine eigene Software-Schmiede betrieben werden kann
-
Freie Software und verteilte Zusammenarbeit
- Es bietet viele Funktionen und behält zugleich ein niedriges Serverprofil bei
- Sowohl Forgejo selbst als auch der Projektentwicklungsprozess nutzen Freie Software
- Es zeigt eine Richtung auf, in der kollaborative Software-Entwicklung über eine verteilte Plattform möglich wird
-
Bereiche, in denen man beitragen kann
1 Kommentare
Meinungen auf Hacker News
Laut FAQ wird es forˈd͡ʒe.jo ausgesprochen; für Ohren aus dem Mittleren Westen der USA klingt es wie „4 Jay yo“. Auf Esperanto soll es „Forge“ bedeuten.
Es ist zwar ein Fork von Gitea, wird aber gemeinnützig betrieben und steht ohne Premium-Upsell vollständig unter einer freien Lizenz (GPL), was positiv ist. Mir gefällt auch, dass die Community-Kommunikation über Matrix und Mastodon läuft.
Codeberg scheint das zu verwenden, und äußerlich wirkt es wie Gitea/GitHub, was kein Problem ist. Den Quellcode findet man über das kleine Branch-Icon oben rechts; er wird auf Codeberg gehostet. Was ich heute gelernt habe: Codeberg selbst ist eine Forgejo-Instanz.
https://forgejo.org/2024-02-forking-forward/
https://v10.next.forgejo.org/explore/repos
https://codeberg.org/forgejo/forgejo
Soweit ich es verstehe, entstand der Fork, weil Gitea ein Unternehmen gegründet hat, das auf Anfrage von Firmen maßgeschneiderte Funktionen entwickelt; es gab nicht viele Anzeichen für so etwas wie einen Lizenzwechsel.
Das Fedora Project soll gerade dorthin wechseln: https://fedoramagazine.org/fedora-moves-towards-forgejo-a-unified-decision/
Ich habe nachgeschaut, warum Forgejo sich von Gitea abgespalten hat, und es wirkt wieder einmal wie ein Fall, in dem mittellose freie Open-Source-Schöpfer/-Maintainer von oben – und vielleicht auch von unten – unter die Räder geraten
Wenn man sich die Ankündigung zur Firmengründung von Gitea ansieht, konnten die Kosten offenbar nicht allein durch freie Open Source gedeckt werden, und es gab wohl wohlhabende Trittbrettfahrer, die die MIT-Lizenz ermöglichte
Entscheidend ist die Passage: „Über Jahre hinweg haben wir verschiedene Wege ausprobiert, um Maintainer und das Projekt zu unterstützen – Bounties, direkte Förderung, Zuschüsse und mehr. Viele großartige Einzelpersonen und einige Unternehmen waren sehr großzügig, aber manche Unternehmen erzielten Umsätze, die größer sind als das BIP mancher Länder, nutzten Gitea in Kernprodukten und gaben ihre Verbesserungen nicht zurück.“
Ich bin kein Fan von Bruce Perens, aber seine Aussage trifft das Problem genau: „Wir haben ein großartiges Unternehmenswohlfahrtsprogramm, und seine Nutzer sind die reichsten Unternehmen der Welt. Umgekehrt werden Entwickler kaum vergütet, wenn sie nicht für diese Unternehmen arbeiten.“
Umgekehrt regte sich die Community auf, als die Gründer ein Unternehmen gründeten; angeblich ging es weniger um die Firmengründung an sich, sondern darum, dass dieses Unternehmen Domain und Marke besaß. Das wirkt wie ein kleiner Grund, aber die Details kenne ich nicht
Jedenfalls sieht es außerhalb von Hobbyentwicklern und FAANG wie Beispiel #187 für das Scheitern von FOSS aus
Freie Software war ursprünglich eine ethische Bewegung und musste Einnahmequellen nicht priorisieren. Das Ziel war nicht nachhaltige Entwicklung, sondern die Freiheit der Nutzer. In der Aussage „Nutzer sollen die Freiheit haben, mit Software zu tun, was sie wollen“ steht nirgends „und einige Entwickler, die für dieses ethische Ziel arbeiten, müssen davon ein Gehalt beziehen können“
Laut der eigenen Geschichte der OSI begannen Menschen irgendwann zu glauben, dass ein offenes Entwicklungsmodell auch für Unternehmen grundsätzlich gut sei; Netscape stieg ein, und einige kamen zusammen, um freie Software als Open Source neu zu branden
http://web.archive.org/web/20071115150105/https://opensource.org/history/
Der Begriff FOSS fühlt sich ähnlich an wie amerikanischer Unternehmens-Buddhismus. So wie Achtsamkeit und Meditation aus ihrem ursprünglichen tiefen religiösen Kontext herausgelöst und zu Selbstoptimierungsprogrammen wurden, ist daraus etwas geworden, das die ursprünglichen Praktizierenden kaum wiedererkennen würden. Bei freier Software ging es nicht um nachhaltige Entwicklung, sondern darum, mit Nutzerfreiheit das Richtige zu tun; alles andere war ein Mittel zu diesem Zweck. Irgendwann wurde jedoch das Mittel zum Zweck, und nun wundert man sich, warum FOSS nicht selbstverständlich die Kosten deckt
Wer die Entwicklung richtig gelesen hat, ist GitLab. Das Unternehmen hat einen Gleichgewichtspunkt gefunden, an dem es sein Produkt auf Open-Source-Art anbietet und trotzdem die Betriebskosten deckt; es hat sowohl Vertrauen als auch Umsatz gewonnen, also gut gemacht
Wenn man von Open-Source-Arbeit leben will, muss man sie wie ein Geschäft betreiben und geeignete geschäftliche Instrumente nutzen. Sonst kann die eigene Arbeit irgendwann wie Ausbeutung auf einen selbst zurückfallen. Ich unterstelle keine böse Absicht, aber Fairness ist eine Frage des Gleichgewichts; wenn harte Arbeit einen selbst nicht angemessen behandelt, ist auch das unfair
Es ist schwer nachvollziehbar, wenn man zusätzliche Copyleft-Bedingungen in der Lizenz ablehnt und am Ende darauf hofft, dass Unternehmen aus gutem Willen so handeln, als gäbe es diese Bedingungen
Unternehmen wie Google mögen permissive Lizenzen und finanzieren sogar MIT/BSD-lizenzierte Alternativen zu verbreiteten Komponenten, etwa toybox
Forgejo ab v9 scheint tatsächlich unter der GPL zu stehen
Das Big-Tech-Schreckgespenst ist nützlich, wenn Open-Source-Projekte einen Lizenzwechsel rechtfertigen wollen, aber hier passt es nicht. Selbst normalerweise ist das schon wenig überzeugend, doch in diesem Fall scheinen nicht einmal die Maintainer selbst so etwas gesagt zu haben
Projekte wie MongoDB, ElasticSearch und Redis wurden populär, weil sie Open Source waren, und vermutlich konnten sie über Jahre hinweg auch Konkurrenz begrenzen, weil es schwer ist, mit kostenlos zu konkurrieren. Später haben sie den Nutzern dann gewissermaßen den Rücken gekehrt. Wäre MongoDB 1.0 ein kommerzielles Produkt gewesen, hätte es niemand genutzt; das Geld, das sie verdient haben, entstand also überhaupt erst dadurch, dass es Open Source war
Interessant an Forgejo ist, dass an Forge-Föderation gearbeitet wird
https://codeberg.org/forgejo/forgejo/issues/59#issuecomment-1652830
In einer idealen Welt würden auch GitHub und GitLab Föderation unterstützen, aber dazu wird es wohl eher nicht kommen
Als Alternative im gleichen Problemraum gibt es P2P-Ansätze wie https://radicle.xyz/
Eine nützliche Föderation zwischen Forgejo-Instanzen ließe sich schon mit OIDC und ein paar Webhooks ausreichend lösen. Zum Beispiel Zusammenarbeit zwischen Instanzen, Forks und Pull Requests. Warum eine Föderation zwischen Forgejo und Mastodon nötig sein sollte, ist mir nicht klar, und auch nicht, was das überhaupt bedeuten würde
Früher gab es bis 2023 auch jährliche Fortschrittsberichte, aber diese Website scheint ebenfalls nicht mehr erreichbar zu sein: https://web.archive.org/web/20240830030315/https://forgefriends.org/blog/2023/06/21/2023-06-state-forge-federation/
Trotzdem wurde Föderation zuletzt im monatlichen Update im Oktober erwähnt; dort wurde betont, dass Föderation die „höchste Priorität“ des Forgejo-Projekts war und auch künftig bleiben werde
https://forgejo.org/2024-10-monthly-update/#:~:text=Forgejo%20federation%20is%20and%20will%20always%20be%20the%20highest%20priority%20of%20the%20Forgejo%20project
Ein Git-Repository per HTTP oder SSH ins Netz zu stellen, ist sehr einfach, und auch E-Mail-basierte Code-Review-Flows werden unterstützt. Allerdings gefällt mir der Ansatz von git-appraise ziemlich gut, Reviews im Repository selbst zu speichern
https://github.com/google/git-appraise
Auch CI/CD-Pipelines lassen sich einfach integrieren, wenn sie durch Pushes ausgelöst werden können. Aber wir haben auf Git zentralisierte UIs gebaut und versuchen nun, diese UIs miteinander zu integrieren. Wenn man bedenkt, dass Git bereits dezentral ist, wirkt das wie ein Schritt in die falsche Richtung
Zugehörige Inhalte: https://gitlab.com/groups/gitlab-org/-/epics/11247#why
Derzeit spiegele ich über mein selbst gehostetes Forgejo, github.com und gitlab.com hinweg, und die Forgejo-Instanz ist eher Teil meines Self-Hosting-Hobbys als unverzichtbare Infrastruktur
GitLab Cells scheint ebenfalls in diese Richtung gehen zu können, und im Designdokument wird Föderation erwähnt
https://handbook.gitlab.com/handbook/engineering/architecture/design-documents/cells/
Ich bin im Laufe der Jahre von Gogs zu Gitea und dann weiter zu Forgejo gewechselt, und es ist wirklich hervorragende Software.
In 90 % der Fälle reicht es völlig, private Git-Repositories auf einem SSH-Server abzulegen. Wenn man nur ein Chezmoi-Repository an einem Ort haben möchte, auf den alle eigenen Rechner zugreifen können, bringt die Forgejo-Familie nicht viel zusätzlich.
Aber für die restlichen 10 %, also wenn man Code privat mit ein paar Freunden teilen möchte, ist es großartig. Kostenlos ist besser als ein kostenpflichtiger GitHub-Plan, und wenn man es wegen dieser 10-%-Projekte ohnehin betreibt, kann man den Rest genauso gut als persönliches Referenz-Git-Repository nutzen.
Es hat auch Kanban und einen Code-Editor.
Der Wechsel zu Gitea war eine echte Erleichterung, und als Fedora Forgejo als Repository-Server auswählte, wurde ich auf Forgejo aufmerksam.
Meine Anforderungen sind einfach: im Grunde ein zentraler Dateispeicher für Notizen und Quellcode. Ich habe eine Migration von Gitea 1.21 auf Forgejo 9 getestet, und sie verlief reibungslos.
Ich denke ernsthaft über den Umstieg nach, überlege aber noch, welche Seite langfristig besser unterstützt wird und sich besser für kostenlose Nutzung eignet.
Ehrlich gesagt dürfte mein nächster Schritt entweder Forgejo mit Forgejo Actions für CI/CD (https://forgejo.org/docs/next/user/actions/) sein – oder der komplette Sprung ins tiefe Ende und zurück zu Jenkins.
Die Tagline ist nicht besonders aussagekräftig. Erst nach ein- bis zweimal Scrollen auf der Hauptseite wurde klar, wozu es dient, nämlich als selbst gehostete GitHub-Alternative.
Da „forge“ im Software-Kontext mehrere Bedeutungen haben kann, wäre es besser, das weiter oben klar zu sagen.
Technisch hätte man damalige Systeme wie Redmine wohl ebenfalls als Forge bezeichnen können, aber danach scheint sich der Begriff etabliert zu haben.
Siehe: https://en.wikipedia.org/wiki/Forge_(software)
Bei „forge“ denke ich an ein Werkzeug, das Rohmaterial in ein fertiges Produkt verwandelt – etwa Werkzeuge in einer Schmiede, die Eisen in ein Hufeisen verwandeln.
Als Software-Metapher würde eher etwas passen, das Text-Quellcode in ausführbare Binärdateien verwandelt, also ein Compiler oder Interpreter.
GitHub und SourceForge verschieben Quellcode von einem Ort an einen anderen. Wenn man die Metapher überdehnt, ist es eher eine Kombination aus Laden und Lieferdienst. Der Quellcode bewegt sich, wird aber nicht umgeformt.
Aus Sicht eines alten C/C++-Entwicklers fühlt sich „forge“ als Begriff für einen selbst gehosteten Git-Server daher ziemlich seltsam an.
Nachdem ich versucht hatte, GitLab CE weiter zu betreiben, und mit dessen hohem CPU- und Speicherverbrauch zu kämpfen hatte, bin ich zu Forgejo gewechselt und wurde nicht enttäuscht.
Es läuft als rootless Container und verbraucht kaum RAM und CPU. Auch Updates funktionieren einfach mit einem einzigen
podman pull.Inzwischen lasse ich auch Actions laufen, um Jekyll und Ähnliches auszuführen und statische Websites kontinuierlich zu aktualisieren.
Ich mag es, meine eigene Forge zu haben, in die ich Repositories, Issues usw. aus anderen Forges wie GitHub und GitLab importieren kann, und freue mich auf die kommende breitere Fediverse-Integration auf ActivityPub-Basis.
Eine dezentrale und dennoch verbundene Herangehensweise an Code-Hosting wollte ich schon immer, und jetzt fühlt es sich so an, als wären wir fast dort.
Ich bin über die Jahre von GitHub → selbst gehostetem GitLab → Gitea → Forgejo gewechselt und bereue es nicht.
Forgejo ist großartig, und sobald Föderation fertig ist, dürfte es noch besser werden. Wenn verteilte Forks und Pull Requests über mehrere Instanzen hinweg möglich werden, löst das das Fragmentierungsproblem selbst gehosteter Lösungen.
Gitea hat mein Vertrauen verloren, als es einen VC-finanzierten kommerziellen Ableger gründete; genau deshalb wurde Forgejo geforkt.
Das Einzige, was ich von GitLab verloren habe, ist die integrierte CI/CD-Plattform. Ich konnte die Pipelines aber zu Drone CI migrieren und per Webhooks triggern. Je nachdem, wie komplex die GitLab-Pipelines sind, ist das allerdings nicht immer eine mögliche Option.
Jedenfalls wollte ich keinen GitLab-Server hosten, der für ein paar kleine Projekte 5 GB RAM frisst. Forgejo verbraucht selbst unter Lastspitzen etwa 500 MB RAM.
Mich würde interessieren, wie die Code-Review-Erfahrung ist. Ich vermute, sie ist ähnlich wie bei Gitea, aber ich habe beide nicht ausprobiert.
Ich habe kürzlich bei GitHub ein ziemlich ernsthaftes Code-Review gemacht, und als Code-Review-Tool wirkte es eher wie eine Spielzeugversion. Wenn man nicht das gesamte Source-Control-Modell auf dieses Tool zuschneidet, scheint es für ernsthafte Engineering-Arbeit unbrauchbar zu sein, und dann werden andere Faktoren geopfert, die die Historienverwaltung beeinflussen.
Ich bin vor allem an Gerrit gewöhnt; das Grundmodell ist sinnvoll, aber es hat viele Ecken und Kanten und auch Performance-Probleme.
Wenn ich plötzlich darüber nachdenke, glaube ich, dass ich noch nie ein Review-Tool benutzt habe, das mir wirklich gefallen hat. Ich frage mich, ob die Branche sich einfach ohne ein ordentliches Tool durchwurstelt.
Meiner Erinnerung nach war GitLab etwas besser als GitHub, aber ich weiß es nicht mehr genau.
Ist das vielleicht als Antwort auf die Frage „Was ist Forgejo?“ gemeint: „Forgejo ist eine leichtgewichtige, selbst hostbare Software-Forge. Sie ist einfach zu installieren, wartungsarm und tut, was sie tun soll“?
Natürlich muss nicht alles auf Englisch zugeschnitten sein, und es heißt zwar, es sei Esperanto, aber andere Teile der Website sind es nicht, daher werden die meisten es wohl nicht so interpretieren.