Selbst gehosteter Ersatz für Github

Ich brauche einen selbst gehosteten Ersatz für Github. Es ist entscheidend, dass es in einem Firewall-Intranet ohne Zugriff auf das Internet funktioniert (z. B. Stile, Lizenzprüfungen usw.).

  1. Relativ gute Web-UI: Quellcode und Commit-Browsing sind ein Muss.
  2. Unterstützung für Git und/oder Mercurial. Unterstützung für beide ist ein Plus.
  3. SSH-Shell (Repositorys müssen über ssh zugänglich sein, anstatt nur über http, obwohl zumindest git alle Operationen über http relativ gut unterstützt)
  4. Berechtigungen: mind
    • private/öffentliche Repositories
    • Lesezugriff und Vollzugriff
    • Gleicher Berechtigungssatz für die Web-Benutzeroberfläche und für SSH (beim Erteilen/Ändern von Berechtigungen sollte dies für beide widergespiegelt werden)
    • vorzugsweise Integration in LDAP (sowohl Benutzer als auch Gruppen für Berechtigungen)
  5. Pull-Requests (auch bekannt als Merge-Request)
  6. Verwaltungswerkzeuge: Repositories erstellen, Zugriff gewähren
  7. Einfacher Issue-Tracker: Tickets erstellen, kommentieren, schließen, Tags/Labels
  8. Suchen Sie vorzugsweise nach Tickets, Benutzern, Projekten, Dateinamen und im Quellcode
  9. Vorzugsweise Forking von der Web-UI
  10. Läuft vorzugsweise unter Linux

Muss entweder Open Source sein (was bedeutet, dass es in Ordnung ist, wenn einige kleinere Funktionen fehlen) oder erschwinglich (> 2400 € / Jahr für 30 Benutzer sind zu teuer).

Ich weiß, es gibt mindestens:

Aber ich habe keine Erfahrungen mit diesen - diese Liste ist in keiner Weise von Antworten ausgeschlossen. Da ich jedoch bereits weiß, dass es einige Alternativen gibt, suche ich nicht nach einer Liste möglicher Lösungen, sondern nach Empfehlungen, die auf dem basieren, was Sie verwendet und ausprobiert haben. Ich kann auch eine Suchmaschine verwenden, sodass es nicht erforderlich ist, Antworten mit nur kopiertem Inhalt vom ersten Treffer an zu posten.

Antworten (11)

Wir verwenden GitLab seit über einem Jahr, um Projekte meiner Studenten zu hosten.

TL;DR;EDIT: Früher gab es eine Demo , aber jetzt fehlt sie. Sie können sich kostenlos registrieren und einige öffentliche Repositories erstellen.

Ich muss sagen ich bin echt zufrieden.

Da eine Iteration Ihrer Anforderung auf dieser Website empfohlen wird, werde ich genau das tun.

  1. Relativ gute Web-Benutzeroberfläche : Sie können Quelle und Verlauf, Statistiken (global und pro Benutzer) und Diagramme von Commits (wie "Netzwerk" auf Github) durchsuchen. Sie können jede Commit-Zeile über die GUI kommentieren, das ist eine großartige Funktion! Sorry, aber ich kann keine Screenshots liefern, ich müsste sie manuell anonymisieren. Im Allgemeinen ist es ähnlich wie Github.

  2. Unterstützung für Git und/oder Mercurial. Unterstützung für beide ist ein Plus. Nur Git.

  3. SSH-Shell (Repositorys müssen über ssh zugänglich sein, anstatt nur über http, obwohl zumindest git alle Operationen über http relativ gut unterstützt) : Es ist wie in Github. HTTP für Nur-Lese-Zugriff, SSH für Lese-/Schreibzugriff.

  4. Berechtigungen: mind

    • private/öffentliche Repositories : Es ist da.

    • Nur-Lese- und Vollzugriff : Sie können Rollen definieren (ich glaube, die Standardwerte sind Master, Entwickler, Reporter, Gast).

    • Gleicher Berechtigungssatz für die Web-Benutzeroberfläche und für SSH (beim Erteilen/Ändern von Berechtigungen sollte dies für beide widergespiegelt werden) : Ich glaube, es funktioniert genau so, aber da ich derzeit keinen Administratorzugriff habe, ist es schwer zu testen. Aber noch einmal, es ist wie Github.

    • vorzugsweise Integration in LDAP (sowohl Benutzer als auch Gruppen für Berechtigungen) : Wir haben das. Alle loggen sich über ldap ein, Mitarbeiter mit mehr Privilegien als Studenten. ABER ich kann nicht wirklich sagen, ob das sehr einfach war, es ist einfach möglich.

  5. Pull-Requests (auch bekannt als Merge-Request) : Vorhanden.

  6. Verwaltungstools: Repositories erstellen, Zugriff gewähren : Alles über die Weboberfläche, mit einer netten Suche nach Benutzern und der Möglichkeit, Benutzergruppen zu definieren.

  7. Einfacher Issue-Tracker: Tickets erstellen, kommentieren, schließen, Tags/Labels : Ja, es ist da. Ich bin mir nicht sicher, was du mit harten Tags meinst, konnte so etwas nicht sehen. Meilensteine?

  8. Suchen Sie vorzugsweise nach Tickets, Benutzern, Projekten, Dateinamen und Inside-Quellcode : Dies wäre wahrscheinlich die am wenigsten ausgefallene Funktion von Gitlab. Sie können nach Benutzern/Projekten/Gruppen suchen, Sie können den Inhalt von Dateien finden, aber keinen Dateinamen. Ich finde es ziemlich ungeschickt.

  9. Vorzugsweise Forking von der Web-UI : vorhanden.

  10. Läuft vorzugsweise unter Linux : Offensichtlich ;-)

  11. Upgrade-Prozess : Es ist ziemlich einfach, wenn Sie Ihr System kennen. Jede Version hat ihre eigene Upgrade-Anleitung, die sich immer ein wenig auf die empfohlene Standardkonfiguration bezieht (dh Pfade, Benutzer, Befehle usw.). Wenn Sie ein (in ihren Begriffen) nicht standardmäßiges System haben und Ihr Setup anpassen, müssen Sie eine Weile damit verbringen, alles aufzumotzen, aber es ist nie kompliziert - hauptsächlich ein neuer Klon, führen Sie ein paar Skripte aus und Sie wieder fertig. Hatte nie Probleme, aber ich habe schon vor langer Zeit aufgehört, den Prozess zu verfolgen. UPDATE Gitlab enthält jetzt (ab 6.4.2) ein einfaches Upgrade-Skript . Angenommen, Sie haben das Standard-Systemlayout, besteht der eigentliche Upgrade-Prozess jetzt aus einem einzigen Befehl.

Es wird jeden Monat mit einer neuen Version aktiv weiterentwickelt, also ist es definitiv einen Versuch wert. Es ist Open Source, kostenlos für die kommerzielle Nutzung.

Eine Internetverbindung ist nicht erforderlich, damit Gitlab funktioniert. Sie benötigen Internet, um Gitlab einzurichten, da es seine Abhängigkeiten von RubyGems herunterlädt. Alternativ können Sie einen RubyGems-Spiegel erstellen oder die Installation auf einem anderen Server durchführen und das vollständige Installationsverzeichnis (standardmäßig /home/git/) auf diesen Server kopieren.

Bildschirmfoto

gitlab-Repository-Seite ab Version 8.11, August 2016

GitLab bietet jetzt Pakete an, die Sie ohne Internetverbindung herunterladen und installieren können und die erste in der Frage aufgeführte Anforderung erfüllen. Siehe about.gitlab.com/downloads
Ich abonniere auch die GitLab-Lösung – ich betreibe seit mehr als 10 Jahren umfangreiche Entwicklungs- und Versionskontrollsysteme und hoste und verwalte sowohl Stash in meiner Firma als auch GitLab auf meinem persönlichen VPS. Stash ist für eine große Anzahl von Entwicklern kostspielig und funktioniert nicht, ohne sich mit einem Lizenzserver zu verbinden, um die Lizenz zu überprüfen. GitLab ist etwas komplizierter zu installieren, aber es lohnt sich auf jeden Fall - es kommt den GitHub-Funktionen ohne Einschränkungen am nächsten und erfüllt alle Ihre Anforderungen auch in der kostenlosen (Community-)Edition.
Außerdem unterstützt GitLab den Schreibzugriff über HTTPS.
Ich würde stattdessen GoGS (gogs) verwenden. Erstens bin ich jeder Software überdrüssig, die einen Preis-/Kauf-Button mit einer "kostenlosen" (Lockin) Edition und einer Enterprise Edition mit kritischen Funktionen (Hooks) hat. Zweitens, weil dies eine Abhängigkeit zu Ruby hinzufügt, mit allen Sicherheitslücken, die in Ruby enthalten sind. GoGS fügt keine Abhängigkeiten hinzu (abgesehen von der C-Laufzeitbibliothek, die auch Ruby verwendet, zusammen mit so ziemlich allem). Und Go hat eine hervorragende Sicherheitsbilanz, außerdem verknüpft es nicht mehr als die atomaren Abhängigkeiten, die Sie tatsächlich benötigen (weniger Code - mehr Sicherheit).
GitLab entwickelt sich in einem unglaublichen Tempo und ist zu meinem bevorzugten Versionskontrollserver-Tool geworden. Ich bin sogar von Mercurial auf Git umgestiegen, um GitLab nutzen zu können. Zwei Daumen weit nach oben.
Gitlab ist mittlerweile zu aufgebläht und zu träge geworden
Die Verwaltung von Gitlab ist ein Chaos. Ich habe versucht, 4,5 Stunden ohne Erfolg zu installieren.
@ThomasWeller Ich wollte es deshalb nicht speziell installieren, ich wollte einen schnellen und einfachen Weg, dies zu tun. Dann fand ich heraus, dass TurnkeyLinux eine Appliance dafür hat. ISO- oder VM-Image. Sie richten einfach die Passwörter und Grundeinstellungen beim ersten Start ein. Ich teste es gerade und es sieht super vielversprechend aus. turnkeylinux.org/gitlab
Muss GitLab CE (oder EE, wenn Sie bereit sind zu zahlen) empfehlen!

Wir verwenden Atlassian Stash zusammen mit Jira für die Problemverfolgung.

Versteck

Stash kostet 10 US-Dollar für 10 Benutzer, 1.800 US-Dollar für 25 Benutzer, 3.300 US-Dollar für 50 Benutzer, 6.000 US-Dollar für 100 Benutzer und 12.000 US-Dollar für 500 Benutzer. Stash selbst beinhaltet kein Issue-Tracking, aber eine separate Issue-Tracking-Lösung, Jira, wird von Atlassian unter demselben Lizenzmodell vertrieben.

Natürlich nach Ihren Wünschen

  1. Das müssen Sie selbst entscheiden, aber ich hatte bisher keine Probleme mit der Web-Benutzeroberfläche. Es ist in hohem Maße erweiterbar mit Unterstützung für Plugins und einer REST-API .
  2. Stash unterstützt nur Git.
  3. Stash unterstützt http, https und ssh.
  4. Mehrere Benutzer (eingeschränkt durch Lizenz) und Berechtigungssystem.
  5. Vollständiges Repository-Management einschließlich Pull-Requests.
  6. Vollständige Verwaltungstools, öffentlich zugängliche Repositories (ohne Konto zugänglich), Benutzer-Repositories und Projekt-Repositories mit Zugriffsrechten.
  7. Integration mit Jira-Problemverfolgung.
  8. Suchen Sie nach Repository, Commit, Problem und Datei.
  9. Fork-Projekt-Repositorys, Benutzer-Repositorys usw.
  10. Verfügbar unter Linux, Windows und OS X (nur zu Evaluierungszwecken) .
Irgendwelche Probleme mit Stash? Insgesamt gute Antwort.
@Olli Nicht viele, die mir einfallen. Der Preis ist der Hauptnachteil. Für eine erfolgreiche Installation ist außerdem eine kompatible Oracle Java- oder OpenJDK-Installation und eine unterstützte Datenbankinstallation erforderlich. Siehe unterstützte Plattformen für weitere Details.
Es gibt nur ein Problem, bei dem Sie kein Repository von Github über die Webschnittstelle forken können. Sie bieten eine konsolenbasierte Lösung! Die meisten Benutzer haben diese Funktion bereits angefordert, aber niemand hat zugehört.
GitLab ist bei den Funktionen weit voraus und umfasst ein Kanban-Issue-Board, Issue-Tracking und kontinuierliche Integration in einem praktischen Paket. Und es ist kostenlos, GitLab CE auf Ihrem eigenen Server bereitzustellen. Und wenn Sie für den Support bezahlen möchten, ist GitLab EE billiger als Stash.

Gogs (Go Git Service) ist ein schmerzloser, selbst gehosteter Git-Service, der in Go geschrieben wurde. Eine Alternative wäre der von der Community betriebene Fork Gitea .

Ich habe dieses ausprobiert und fand es ziemlich ansprechend. Einfache Benutzeroberfläche, Funktionen, die fast dem entsprechen, was ich von einem GitHub-Look erwarten würde, und Betreuer, der darauf bedacht ist, Funktionen zu implementieren und Fehler zu beheben. Die Installation ist kinderleicht. Legen Sie die Binärdatei in einem Ordner ab und rufen Sie sie über die Befehlszeile auf. Die Erstkonfiguration erfolgt über eine Konfigurationsdatei. Und es hat Git- und Web-Hooks. Wie auch immer, ich hoffe, das Folgende beantwortet die Frage, wenn auch etwas spät.

  1. Relativ gute Web-UI: Quellcode und Commit-Browsing sind ein Muss. - beide vorhanden
  2. Unterstützung für Git und/oder Mercurial. Unterstützung für beide ist ein Plus. - Unterstützt nur Git
  3. SSH-Shell (Repositorys müssen über ssh zugänglich sein, anstatt nur über http, obwohl zumindest git alle Operationen über http relativ gut unterstützt) - sowohl SSH als auch HTTP, soweit ich das beurteilen kann
  4. Berechtigungen: mind
    • private/öffentliche Repositories - beides
    • Nur-Lesen und Vollzugriff - Ich bin mir nicht sicher, ob es sich um einen Nur-Lesen-Zugriff handelt, ich habe noch nicht versucht, es für ein Repo einzurichten, und ich konnte die Einstellungen nach einem kurzen Blick nicht finden
    • Gleicher Berechtigungssatz für die Web-Benutzeroberfläche und für SSH (beim Erteilen/Ändern von Berechtigungen sollte dies auf beide übertragen werden) - dasselbe: Ich habe SSH noch nicht verwendet (nur im LAN zugänglich)
    • vorzugsweise Integration in LDAP (sowohl Benutzer als auch Gruppen für Berechtigungen) - dies ist entweder bereits integriert oder wird gerade integriert
  5. Pull-Requests (auch bekannt als Merge-Request) – ofc
  6. Verwaltungswerkzeuge: Repositories erstellen, Zugriff gewähren - ja
  7. Einfacher Issue-Tracker: Erstellen von Tickets, Kommentieren, Schließen, Tags/Labels – die übliche Funktion vorhanden
  8. Suchen Sie vorzugsweise nach Tickets, Benutzern, Projekten, Dateinamen und Quellcode im Inneren - keine Suche nach dem, was ich auf der Commit-Benutzeroberfläche pro Repo unterscheiden kann
  9. Vorzugsweise Forking von der Web-UI - UI-Funktion vorhanden, aber ich habe sie nie verwendet
  10. Läuft vorzugsweise unter Linux - es läuft auf allem, was dagegen kompiliert werden kann. Binär und Quelle verfügbar.
Wenn Sie Gogs verwenden, möchten Sie vielleicht stattdessen Gitea installieren . Es ist eine von der Community verwaltete Gabel von Gogs So Gogs, aber besser. HN- Post.
Sieht nett aus, aber definitiv fehlt noch die Dokumentation. Ich habe es zB nicht geschafft, vorhandene Barebone-Repos damit zu verknüpfen. Ich hätte gerne die WebUI, möchte aber über das bereits vorhandene Setup über die git@-URL pushen. Ich kann das mit Repositories machen, die über Gogs/Gitea erstellt wurden (die dieselben Barebones verwenden), aber die Installation bemerkt diese Änderungen nicht. Scheint, dass es einen Datensatz in seiner Datenbank führt, aber ich habe auch keine Möglichkeit zum Synchronisieren gefunden. Das heißt, der Push ist erfolgreich, aber die WebUI spiegelt ihn nicht wider. Macht für mich keinen Sinn. Hier muss ich etwas übersehen haben.
OK, habe es anders hinbekommen. Empfohlene Lektüre: Installation von Gitea unter Debian (leicht zu lesen und zu befolgen, kann auch auf Gogs angewendet werden). Lange: So hosten Sie Ihren eigenen privaten GitHub mit Gogs . Was ich vermisst habe: 1) Importieren Sie Ihren SSH-Schlüssel über die WebUI (fügen Sie ihn nicht selbst zu hinzu .ssh/authorized_keys), 2) Erstellen/Initialisieren Sie das Repo über die WebUI (nicht manuell über git init). Dann scheint es gut zu funktionieren. Ich habe jedoch noch keine Möglichkeit gefunden, ein vorhandenes Barebone-Repo zu übernehmen.
Sie haben mir einige weitere Stunden der Suche erspart, wie ich SSH zum Laufen bekomme @Izzy. Ein Jahr später ist die Dokumentation immer noch ein Chaos.

Ich würde Tuleap vorschlagen

Tuleap 7 meldet

  1. Web-Benutzeroberfläche: derzeit unter schwerem Heben (Hauptversion in ein paar Wochen fällig, Sie können eine frühe Vorschau auf der Demo-Site haben )
  2. git, subversion und sogar cvs werden unterstützt
  3. SSH- und HTTPS-Zugriff
  4. Gruppenbasierte Zugriffskontrolle, Repo für Repo (Lesen, Schreiben, Zurückspulen). Kann LDAP- oder AD-unterstützt sein, ist aber nicht obligatorisch
  5. Codeüberprüfung und Gating werden mit Gerrit-Integration geliefert (nur ALM kann mit nativem Upstream-Gerrit ausgeführt werden)
  6. Webbasierte Verwaltung mit Projekt/Repo-Paradigma. Keine Abhängigkeit vom zentralen Administrator
  7. Umfassendes Tracking-System. Kann so einfach wie nötig sein, kann aber auch für CMM/ITIL/ISO-Compliance verwendet werden (auf derselben Plattform, ohne zusätzliches Tool oder Plan).
  8. Die Suche ist gut für Tickets, aber eine große Verbesserung wird derzeit durch die Unterstützung von ElasticSearch unterstützt.
  9. Web Fork (persönliches Repo und projektübergreifendes Repo)
  10. Läuft unter Linux (RHEL/Centos 6 wird für Prod empfohlen)

Plus (da es sich um ein vollständiges ALM handelt, ist es nicht auf die Codeverwaltung beschränkt)

  • Nativ mit Jenkins für kontinuierliche Integration integriert
  • Dokumenten-Management
  • Instant Messaging (Jabber/XMPP)
  • Liste, Forum und Neuigkeiten
  • Sehr aktive Entwicklung (monatliche Veröffentlichung, praktischer Upgrade-Prozess: 2 Befehle, 1 Minute Ausfallzeit).
  • Wird bereits von großen Branchengrößen verwendet (kann nicht offengelegt werden, ist aber auf Mailinglisten leicht zu finden...)

Es ist 100 % Open Source (GPLv2) und Sie können professionellen Support von Enalean erhalten.

Vollständige Offenlegung: Ich bin Teil des Entwicklerteams, also wahrscheinlich nicht 100 % fair ;)

Ich verwende Phabricator , der mit Phabricator selbst entwickelt wurde .

Phabricator-Homepage

  1. Relativ gute Web-Benutzeroberfläche : Sie können Code, Commits, Diffs durchsuchen und nach Aufgaben mit bestimmten Parametern suchen. So ziemlich jede App ermöglicht es Ihnen, eine benutzerdefinierte Suche nach ihren Daten durchzuführen.
  2. Unterstützung für Git und/oder Mercurial : Es gibt Unterstützung für Git, Mercurial und Subversion;
  3. SSH-Shell (Repositorys müssen über ssh zugänglich sein, anstatt nur über http, obwohl zumindest git alle Operationen über http relativ gut unterstützt) : Für SVN kann ich das nicht sagen, weil ich es nicht getestet habe, aber für Mercurial und Git you kann jedes Repository so konfigurieren, dass es sowohl für HTTP als auch für SSH separat schreib- oder schreibgeschützt ist;
  4. Berechtigungen :

    • private/öffentliche Repositories : Scheck;
    • Nur-Lese- und Vollzugriff : Sie können auf derselben Seite konfigurieren, wer das Projekt anzeigen und wer darauf zugreifen kann:

    Phabricator-Repo-Berechtigungen

    • Gleicher Berechtigungssatz für Web-UI und für SSH (beim Erteilen/Ändern von Berechtigungen sollte dies auf beiden widergespiegelt werden) : Siehe oben;
    • vorzugsweise Integration in LDAP (sowohl Benutzer als auch Gruppen für Berechtigungen) : Für Benutzer haben Sie es. Bei Gruppen/Berechtigungen bin ich mir nicht so sicher;
  5. Pull-Requests (alias Merge-Request) : Ja, und Sie können sie auch über die Befehlszeile erstellen, was wirklich die bevorzugte Methode ist;
  6. Verwaltungswerkzeuge: Repositories erstellen, Zugriff gewähren : Siehe Bild zu Punkt 4. Sie können jedem erlauben, Repositories zu erstellen, wenn Sie möchten, oder nur bestimmten Benutzern/Gruppen erlauben, dies zu tun;
  7. Einfacher Issue-Tracker: Tickets erstellen, kommentieren, schließen, Tags/Labels : Es ist da. Sie erstellen Aufgaben in Manifest , was es Ihnen ermöglicht, sie mit Projekten (dem „Phabricator-Äquivalent“ von Tags) zu kategorisieren, sie in Arbeitstafeln zu platzieren und benutzerdefinierte Felder für alle Ihre Tracking-Zwecke zu erstellen;
  8. Suchen Sie vorzugsweise nach Tickets, Benutzern, Projekten, Dateinamen und Inside-Quellcode : Fast jede Anwendung ermöglicht es Ihnen, eine Suche nach ihren Daten durchzuführen. Commits werden ebenfalls durchsucht, und für Mercurial und Git gibt es eine Codesuche pro Repository;
  9. Vorzugsweise Forking von Web UI : nicht vorhanden, obwohl Phabricator nicht auf die gleiche Weise wie GitHub verwendet werden soll. Sie führen kein separates Repository, um Änderungen nach oben zu senden (siehe Differential und Arcanist );
  10. Läuft vorzugsweise unter Linux : Ja, es läuft unter Linux. Außerdem ist es sehr einfach, auf neue Versionen zu aktualisieren. Das Phabricator-Projekt HEAD befindet sich fast immer (insbesondere wenn Sie den stableZweig verwenden) in einem funktionierenden Zustand, sodass ein Upgrade hauptsächlich eine Frage des Ausführens git pullund etwaiger ausstehender Datenbankmigrationen ist.
Es hat auch eine wirklich schöne Kanban-Arbeitstafel zum Verwalten von Aufgaben.
> Gültig ab 1. Juni 2021: Phabricator wird nicht mehr aktiv gepflegt.

Ich habe in den letzten Wochen Gitstack ausprobiert . Ich habe es noch nicht vollständig erforscht (ah, die Zeit ist immer so kurz). Ich werde hauptsächlich Screenshots aus ihrer Funktionsliste verwenden, da ich mich gerade auf dem falschen Computer befinde (und im falschen Netzwerk FWIW).

  1. Relativ gutes Web-UI: Quellcode und Commit-Browsing sind ein Muss: Vernünftig - zumindest sind mir bisher keine Probleme begegnet.Web-Commit-Ansicht
  2. Unterstützung für Git und/oder Mercurial: Unterstützt nur Git.
  3. SSH-Shell (Repositorys müssen über ssh zugänglich sein, anstatt nur über http, obwohl zumindest git alle Operationen über http relativ gut unterstützt): nur http . Hat volle Unterstützung für Git Push Pull usw. (zumindest angekündigt, dass ich diese Funktionen noch nicht ausprobiert habe).
  4. Berechtigungen: Es hat mehrere Benutzer, die unterschiedliche Berechtigungen haben können. Ich nehme an, Sie könnten einen Benutzertitel „öffentlich“ und dann verschiedene private Benutzer haben und diesen Benutzern Berechtigungen für die Repos erteilen, um dies zu erreichen. AFAIK unterstützt jedoch beispielsweise nicht das Umschalten zwischen Privat und Öffentlich mit einem Klick. Unterstützt auch LDAP.
  5. Pull-Requests (auch bekannt als Merge-Request): Ja EDIT: Tut mir leid, das falsch gelesen zu haben; Nein, AFAIK unterstützt keine Pull-Anforderungen.
  6. Verwaltungstools: Repositories erstellen, Zugriff gewähren: Ja
  7. Einfacher Issue-Tracker: Tickets erstellen, kommentieren, schließen, Tags/Labels: Leider nicht .
  8. Suchen Sie vorzugsweise nach Tickets, Benutzern, Projekten, Dateinamen und Inside-Quellcode: Ich denke nur nach Commit-Nachrichten - nicht auf meinem Gitstack-Computer/Netzwerk, kann es also jetzt nicht bestätigen.
  9. Vorzugsweise Forking von der Web-UI: Glaube nicht - habe es nicht versucht, erinnere mich aber nicht an eine solche Option.
  10. Läuft vorzugsweise unter Linux: Nur Windows

GitStack ist Open Source und der Quellcode befindet sich auf github . Veröffentlicht unter GPL, wie auf der Funktionsseite angegeben - alle Funktionen derzeit, obwohl sie in Zukunft möglicherweise neue Funktionen zu den kostenpflichtigen Versionen und nicht zur kostenlosen Version hinzufügen, aber ab der Veröffentlichung im November 2013 ist dies noch nicht geschehen.

Apropos Preis :

  • Kostenlos: Alle Features, kein Support (auch "Community"-Support), maximal 2 Benutzerkonten.
  • 5 Benutzer: 150 $, E-Mail-Support.
  • 10 Benutzer: 300 $, es ist auch kostenlos für 1 oder 2 Benutzer; 150 $/Jahr für 5 Benutzer oder 300 $ für 10 Benutzer – für mehr Benutzer kontaktieren Sie sie .
  • Unternehmen: E-Mail-, Telefon- und Remote-Support, Preis: Kontaktieren Sie sie.

UPDATE 2015: Gitorious wird in GitLab integriert, siehe GitLab-Antwort .

Gitorious ist eine Git-Hosting- und Collaboration-Software, die Sie selbst installieren können.

Es ist Open Source und Sie können es auf gitorious.org ausprobieren

Gitorious UI

  1. Relativ gute Web-Benutzeroberfläche: Durchsuchen von Quellcode und Commit, Erstellen und Verwalten von Projekten und Repositories.
  2. Unterstützung für git
  3. SSH-Shell: ja
  4. Berechtigungen: ja
  5. Pull-Requests: ja
  6. Verwaltungstools: ja
  7. Einfacher Issue-Tracker: nein, kann aber in Trac integriert werden
  8. Suche: ja
  9. Forking von der Web-UI: ja
  10. Läuft unter Linux: ja
Haben Sie Gitorious verwendet (selbst installiert)? Habt ihr Erfahrungen damit? Wie gut funktioniert die Streckenintegration? Sie kennen 3) und 4) nicht? Bitte lesen Sie diesen Meta-Beitrag .
Das Beste ist, dass Benutzergruppen global sind, sodass Sie sie projektübergreifend wiederverwenden können – im Gegensatz zu Github, wo Sie für jede Organisation neue Gruppen erstellen müssen.

RhodeCode Enterprise 3 ( https://rhodecode.com ) erfüllt 9 von 10 Ihrer Anforderungen:

  1. Relativ gute Web-UI: JA
  2. Unterstützung für Git und/oder Mercurial: JA, unterstützt sogar beide plus Subversion
  3. SSH-Shell: JA, mit Plugin möglich
  4. Berechtigungen: JA, vollständiges Berechtigungssystem für Unternehmen mit Berechtigungsdelegierung, Berechtigungsgruppen, Vererbung, LDAP/AD-Unterstützung usw.
  5. Pull-Requests: JA, inklusive serverseitiger Merges und eigener, flexibler Workflows
  6. Verwaltungstools: JA
  7. Einfacher Issue-Tracker: NEIN, aber einfache Integration mit allen Issue-Trackern
  8. Vorzugsweise suchen: JA, vollständige Suche über alles
  9. Vorzugsweise Forking von der Web-UI: JA
  10. Läuft vorzugsweise unter Linux: JA, läuft sogar unter Windows

RhodeCode Enterprise ist für 10 Benutzer, NGOs und EDUs kostenlos. Es ist in Python geschrieben, wird in der Produktion von mehr als 10.000 Organisationen verwendet und wurde von diesen Organisationen über mehr als 3 Jahre gehärtet und optimiert.

Haftungsausschluss: Ich bin Mitbegründer von RhodeCode.

Da es weder in der Frage noch in den vorherigen Antworten aufgeführt ist, gibt es auch Deveo , das die Anforderungen unterstützt. Es gibt eine kostenlose Stufe, die wir für 5 Benutzer einführen, danach beträgt der Preis 36 €/Benutzer/Jahr.

  1. Relativ gute Web-UI: Quellcode und Commit-Browsing sind ein Muss.

Deveo hat eine der besten UI/UXs, die es gibt

  1. Unterstützung für Git und/oder Mercurial. Unterstützung für beide ist ein Plus.

Deveo unterstützt beides, zusätzlich zu Subversion (SVN)

  1. SSH-Shell (Repositorys müssen über ssh zugänglich sein, anstatt nur über http, obwohl zumindest git alle Operationen über http relativ gut unterstützt)

Sowohl SSH als auch HTTPS werden unterstützt.

  1. Berechtigungen: mind
    • private/öffentliche Repositories
    • Lesezugriff und Vollzugriff
    • Gleicher Berechtigungssatz für die Web-Benutzeroberfläche und für SSH (beim Erteilen/Ändern von Berechtigungen sollte dies für beide widergespiegelt werden)
    • vorzugsweise Integration in LDAP (sowohl Benutzer als auch Gruppen für Berechtigungen)

Alle oben genannten Anwendungsfälle werden unterstützt. In Deveo sind Repositories innerhalb von Projekten gruppiert, was bedeutet, dass Sie Backend- und Frontend-Repositories im selben Projekt haben können. Es gibt eine differenzierte Zugriffskontrolle, die sowohl auf Projektebene als auch auf Repository-Ebene verwendet werden kann. Dasselbe Berechtigungsschema gilt natürlich sowohl für Repositories als auch für die Web-UI. Deveo kann in LDAP/AD integriert werden und zusätzlich können Sie Deveo so konfigurieren, dass es sich bei einem SAML 2.0-basierten Single-Sign-On-Dienst authentifiziert.

  1. Pull-Requests (auch bekannt als Merge-Request)

Pull-Requests werden derzeit innerhalb desselben Repositorys unterstützt. Sie können eine Reihe von Genehmigungen festlegen, die erforderlich sind, bevor die Änderungen zusammengeführt werden können, und sogar einen bestandenen Build für den Zweig verlangen, bevor die Zusammenführung durchgeführt werden kann.

Geben Sie hier die Bildbeschreibung ein

  1. Verwaltungswerkzeuge: Repositories erstellen, Zugriff gewähren

Deveo unterstützt mehrere Zugriffsebenen zum Erstellen von Repositories und Gewähren von Zugriff. Die Zugriffskontrolle ist rollenbasiert, wodurch sie einfach zu verstehen und zu verwenden ist.

  1. Einfacher Issue-Tracker: Tickets erstellen, kommentieren, schließen, Tags/Labels

Deveo hat einen integrierten Issue-Tracker, der Trello ähnelt. Sie können Meilensteine ​​erstellen, die sich wie Trello-Boards verhalten, und die Probleme per Drag & Drop von einem Zustand in einen anderen ziehen. Es besteht die Möglichkeit, die Probleme zu kommentieren, Anhänge hinzuzufügen, Personen zuzuweisen, die Probleme zu kennzeichnen und vieles mehr.

Geben Sie hier die Bildbeschreibung ein

  1. Suchen Sie vorzugsweise nach Tickets, Benutzern, Projekten, Dateinamen und im Quellcode

Sie können die meisten Inhalte in Deveo durchsuchen.

  1. Vorzugsweise Forking von der Web-UI

Forking wird von der Benutzeroberfläche unterstützt.

  1. Läuft vorzugsweise unter Linux

Alle gängigen Linux-Distributionen werden unterstützt (Debian, CentOS, Ubuntu, RedHat)

Ich bin mit Deveo verbunden

Update: Es scheint, dass RhodeCode NICHT wirklich Closed Source ist, es hat eine Community Edition (Open Source) und einige Features (Enterprise) sind Closed Source. Angesichts dessen bin ich mir nicht sicher, wie aktiv die Kallithea-Gabel bleiben würde.

Kallithea begann als Open-Source-Fork von RhodeCode, der Fork wurde gestartet, weil RhodeCode Closed Source wurde. Kallithea ist frei.

Es unterstützt Git- und Mercurial-Repositories. Es hat, nicht überraschend, die gleiche Benutzeroberfläche wie die Ausgabe 2013 von RhodeCode.

Hauptwebsite:

https://kallithea-scm.org

Dies ist eine Ergänzung zu Piotr Zierhoffers GitLab-Antwort .

Auch ich habe mich (in den letzten Jahren) mit Lösungen dafür befasst und GitLab in Bezug auf Funktionen, Benutzerfreundlichkeit und Lizenz als am besten geeignet befunden. Ich war angenehm überrascht, wie ähnlich es GitHub ist. Die oben gepostete Antwort ist hervorragend.

Was ich hinzufügen möchte, ist, dass Sie es nicht unbedingt von Grund auf neu installieren oder den gehosteten Dienst (oder einen Drittanbieter wie GitHost) verwenden müssen. Es gibt einige VPS- und Cloud-Hosting-Anbieter, die „One-Click“-Setups für GitLab haben, und es gibt Bilder und Container für Amazon Web Services und Docker.

Zum Beispiel habe ich kürzlich den VPS-Hosting-Anbieter zu DigitalOcean gewechselt und war froh, dass sie ein One-Click-„Droplet“ für GitLab haben (sowie Tutorials für die One-Click- und manuelle Installation). Was das Cloud-Hosting betrifft, so ist Amazon EC2 sehr erschwinglich und ich habe viele Tutorials und mindestens ein paar beliebte Bilder für GitLab gesehen.

Nochmals Entschuldigung dafür, dass dies eine separate Antwort ist – ich hoffe, es macht Ihnen nichts aus. Ich wollte es wirklich erwähnen, da es für Leute von Wert sein kann, die nach der kostengünstigsten Möglichkeit suchen, die in der akzeptierten Antwort empfohlene Software auszuführen.

(Wenn jemand eines davon verwendet, wäre es interessant zu wissen, wie es in Bezug auf Einrichtung, Wartung und Leistung funktioniert hat.)