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.).
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.
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.
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.
Unterstützung für Git und/oder Mercurial. Unterstützung für beide ist ein Plus. Nur Git.
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.
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.
Pull-Requests (auch bekannt als Merge-Request) : Vorhanden.
Verwaltungstools: Repositories erstellen, Zugriff gewähren : Alles über die Weboberfläche, mit einer netten Suche nach Benutzern und der Möglichkeit, Benutzergruppen zu definieren.
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?
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.
Vorzugsweise Forking von der Web-UI : vorhanden.
Läuft vorzugsweise unter Linux : Offensichtlich ;-)
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
Wir verwenden Atlassian Stash zusammen mit Jira für die Problemverfolgung.
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
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.
.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.Ich würde Tuleap vorschlagen
Plus (da es sich um ein vollständiges ALM handelt, ist es nicht auf die Codeverwaltung beschränkt)
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 .
Berechtigungen :
stable
Zweig verwenden) in einem funktionierenden Zustand, sodass ein Upgrade hauptsächlich eine Frage des Ausführens git pull
und etwaiger ausstehender Datenbankmigrationen ist.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).
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 :
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
RhodeCode Enterprise 3 ( https://rhodecode.com ) erfüllt 9 von 10 Ihrer Anforderungen:
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.
Deveo hat eine der besten UI/UXs, die es gibt
Deveo unterstützt beides, zusätzlich zu Subversion (SVN)
Sowohl SSH als auch HTTPS werden unterstützt.
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.
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.
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.
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.
Sie können die meisten Inhalte in Deveo durchsuchen.
Forking wird von der Benutzeroberfläche unterstützt.
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:
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.)
Sytse Sijbrandij
Thyamarkos
Nathan Osmann
Stefan Steiger
Warren P
Benutzer3791372
Thomas Weller
Broko
iBug