Ich habe kürzlich einen dedizierten Server erworben und muss mehrere Repositorys von einem Hosting-Dienst für die Quellcodeverwaltung darauf verschieben. Da ich nicht viel Erfahrung in der Serververwaltung habe, habe ich jedoch keine Ahnung, wie ich sie effektiv organisieren kann. Was ich suche -
- Subdomains svn.host.com, hg.host.com, git.host.com, die über SSH-Schlüssel die Wurzeln der verschiedenen Repos bilden
- Einfache Erstellung neuer Repositorys
- Authentifizierung mithilfe der Server-Unix-Benutzerliste, jedoch mit projektbezogenen Berechtigungen, optionaler schreibgeschützter öffentlicher Zugriff für einige der Repos
Leider führt mich jeder Suchbegriff, den ich bei Google versuche, zu kommerziell gehosteten Lösungen und nicht zu Anleitungen zum Aufrollen meiner eigenen. Ich brauche so etwas wie eine abgespeckte gehostete Lösung, ohne dass Benutzer ihre eigenen Repos erstellen können.
Irgendwelche Vorschläge, Tutorials oder Skriptlösungen, wo Sie mit der Forschung beginnen können? Eine Open-Source-Lösung für eine Verwaltungsschnittstelle, um dies zu handhaben (oder zumindest für einige wäre perfekt ...
SVN kann mit Apache WebDAV in einem vhost unter Verwendung der Unix-Authentifizierung und der eigenen ACLs auf Benutzerebene von Subversion durchgeführt werden. Ich weiß nichts über Quecksilber oder Idiot, aber ich würde hoffen, dass sie auch in DAV eingebunden werden können.
quelle
Wenn Sie SSH verwenden möchten , müssen Sie die Schlüssel grundsätzlich einschränken, indem Sie die
authorized_keys
Datei auf dem Server bearbeiten . Für Mercurial sind die wichtigsten Möglichkeiten, dies zu tun:Sie können das
contrib/hg-ssh
Skript verwenden, um die Befehle einzuschränken, die Benutzer ausführen können, wenn sie mit SSH angemeldet sind. Die Datei enthält einen Header, der die Verwendung erklärt, aber Sie fügen im Grunde hinzuvor dem Schlüssel in der
authorized_keys
Datei. Dadurch wird der Schlüssel eingeschränkt, sodass er nur zum Drücken und Ziehen in das angegebene Repository verwendet werden kann.Sie können auch das Mercurial-Server- Tool eines Drittanbieters verwenden , wenn Sie etwas wie gitois möchten . Auf diese Weise können Sie Benutzer und ihre Zugriffsrechte verwalten, indem Sie Dateien in einem speziellen Administrator-Repository bearbeiten.
Im Mercurial-Wiki finden Sie einige ähnliche Tools für SSH.
Für HTTP gibt es
Das integrierte
hgweb
(schnelle) CGI- oder WSGI-Skript, das mit Mercurial geliefert wird. Das behandelt Pushs und Pulls, erlaubt aber nicht die Erstellung neuer Repositorys - melden Sie sich dafür beim Server an.Das RhodeCode- Projekt eines Drittanbieters . Auf diese Weise erhalten Sie ein Bitbucket-ähnliches Web-Frontend für Mercurial, in dem Sie Benutzer und ihre Zugriffsrechte konfigurieren können. Es unterstützt die LDAP-Authentifizierung, sodass Sie sie in Ihre vorhandene Unix-Benutzerdatenbank einbinden können.
Weitere Informationen finden Sie auf der Seite zum Veröffentlichen von Repositorys .
quelle
SCM-Manager könnte perfekt für Ihre Bedürfnisse sein:
quelle
RhodeCode ist ein Open-Source-Repository-Browser / Verwaltungstool mit integriertem Push / Pull-Server, LDAP / AD, Berechtigungssystem und Volltextsuche.
Sie können es hier live sehen: http://demo.rhodecode.org/
quelle