Schlagwort-Archive: gitea

Gogs beerdigen

Es ist mal wieder so weit. Der Gogs-Entwickler Jiahua Chen (aka Unknwon) ist untergetaucht. Issues und Pull-Requests bleiben unbeantwortet. Schon seit über einem Jahr scheint es so, als wäre Gogs nur noch im Wartungsmodus. Dabei hatte ich mir durch den Fork Gitea auch im ursprünglichen Projekt durchaus neue Dynamik erhofft.

Am Ende sorgt das kindische Verhalten von Unknwon (keine Community zulassen, außer ihm keine anderen mit Commit-Rechten) dafür, dass Gogs in der Bedeutlungslosigkeit versinkt. Ist natürlich sein gutes Recht, aber auch ein bisschen Schade. Ich habe Gogs trotz meines Wechsels zu Gitea weiterhin im Auge behalten. Das gebe ich jetzt auf.

Wie man an den Commits und Pull-Requests bei Gitea sehen kann, ist inwischen wohl auch die chinesische Gogs-Communty zu Gitea gewechselt. Etwas bedenklich finde ich, dass das Go-Framework auf dem Gitea aufbaut, ebenfalls unter der Regentschaft von Unknwon steht. Will Gitea weiter wachsen ist auch da ein Fork oder gar der Umstieg auf ein populäreres Framework nötig. Immerhin sind die anderen Komponenten (wie z.B. das ORM XORM) sehr lebendig und z.T. arbeiten deren Entwickler auch an Gitea mit.

Bin auf jeden Fall gespannt, was 2018 für Gitea bringt.

Gitea oder Gogs statt Github und Gitlab

Update 01/2018: Gogs ist mal wieder seit mehreren Montaten tot bzw. der alleinige Entwickler nicht erreichbar. Ich kann nur ausdrücklich dazu raten auf den Fork Gitea zu setzen.

Ich habe mir den Github-Klon Gogs und dessen Fork Gitea näher angeschaut und bin hellauf begeistert. Weiter unten erkläre ich noch, wie ich Gogs bzw. Gitea TLS-verschlüsselt hinter Nginx laufen lasse. Nun aber erst mal zu Gogs und warum ich es brauche.

Github ist über die Jahre zum defacto-Standard für Opensource-Entwicklung geworden. Das liegt zum einen an den Features, die Github bietet (Pull-Requests, Issues, Wiki). Die Popularität rührt aber auch daher, dass diese Features sehr einfach gehalten sind. Das Issue-Tracking ist extrem rudimentär, alles andere ist aber für viele Overkill. Github hat das Mitmachen einfach gemacht.

Es gibt allerdings auch Gründe, die gegen die Nutzung von Github sprechen. Github selbst ist z.B. keine Opensource Software. Möchte man auch private Repositories erstellen, braucht man ein kostenpflichtiges Konto. Das habe ich zwar, aber trotzdem möchte ich nicht zwangsläufig das Schicksal meines Codes einer Firma überlassen, über die ich keine Kontrolle habe. Dank der Dezentralität von Git schadet es auch nicht mehrgleisig zu fahren (z.B. Mirror auf Github für Pull-Requests und issues).

Die erste Alternative, die ich mir angeschaut habe, war Gitlab. Komplett open source, ähnliche Features wie Github und dazu noch eine integrierte Plattform für Continuous Integration. Nach einem halben Tag Installation und Konfiguration (alles eher komplex) hat sich gezeigt, dass meine Hardware nicht leistungsstark genug ist und ich einen extra Server für Gitlab bräuchte. Wo Web, Mail, Seafile (mit ~100 aktiven Usern), Minecraft und diverse andere Dinge klaglos parallel laufen, läuft Gitlab nicht mal allein flüssig. Wie das auf einem Raspberry Pi laufen soll ist mir schleierhaft.

Der nächste Kandidat war dann schon Gogs und es konnte sofort überzeugen. Auf den ersten Blick bietet Gogs die gleichen Features wie Github. Zum Teil nicht ganz so poliert, manchmal wirkt es aber auch schicker. Gogs ist in Go geschrieben (Gogs = Go Git Service) und so leichtgewichtig (~20MB RAM), dass es sogar auf einem Raspberry Pi ordentlich läuft.

Und Gitea?

Gogs wurde vor kurzem geforkt. Nachdem der zentrale Entwickler wiederholt für Monate nicht erreichbar war hatte die Community genug und hat Gitea erstellt. Die Entwicklung beim Fork läuft schneller und transparenter, als es bei Gogs je der Fall war. Meine Empfehlung lautet also, Gitea statt Gogs einzusetzen. An Features muss man im Vergleich zu Git kaum Abstriche machen. Hier mal eine kleine unvollständige Aufstellung:

  • interner Issue Tracker (extern möglich)
  • internes Wiki (ebenso extern möglich)
  • protected branches
  • Git hooks
  • webhooks
  • deploy keys
  • signierte Commits
  • Authentifizierung auch über LDAP, SMTP, OAuth2, OpenID und PAM
  • 2FA
  • Support für DroneCI und andere


Weiterlesen