Hosting mehrerer Repositorys (svn, hg, git)

8

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 -

  1. Subdomains svn.host.com, hg.host.com, git.host.com, die über SSH-Schlüssel die Wurzeln der verschiedenen Repos bilden
  2. Einfache Erstellung neuer Repositorys
  3. 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 ...

Kornel Kisielewicz
quelle

Antworten:

6

Ich benutze nur Git, also werde ich zumindest versuchen, dir dabei zu helfen:

Wenn Sie keine Probleme beim Verwalten Ihrer Repos über die Befehlszeile sehen, sollte Gitosis den Trick ziemlich gut machen.

Wenn Sie wirklich ein Webinterface benötigen, können Sie sich repo.or.cz ( http://repo.or.cz/w/girocco.git ) oder gitorious ( http://gitorious.org/gitorious ) ansehen. . Repo.or.cz ist hässlicher, aber es ist viel einfacher zu installieren (gitorious ist Open Source, aber es ist auch die Software, die gitorious.org antreibt - sie haben nicht viel Anreiz, nette Anweisungen zu schreiben).

Hier ist eine umfassendere Liste von Optionen: https://git.wiki.kernel.org/index.php/GitHosting

Mit jeder dieser Optionen können Sie auf einfache Weise neue Repositorys erstellen.

Nun ein Wort der Vorsicht: Sie sollten NIEMALS die Unix-Server-Benutzerliste für Repository-Berechtigungen verwenden. Es ist leicht genug, sich damit zu beschäftigen, und die Ergebnisse sind leicht katastrophal (Gitosis verwendet eine einfache Dateikonfiguration und SSH-Schlüssel. Sollte den Trick für Sie tun).

Eine andere Sache, ich verstehe nicht, warum Sie Subversion-, HG- und Git-Repositorys benötigen. Die meisten Projekte verwenden nur eine dieser Optionen. Möchten Sie näher erläutern, warum?

Tiago Fassoni
quelle
Ich habe mehrere Projekte, die in mehreren Repositories gehalten werden. Viele Committer sind nicht besonders technisch versiert und daher wären hg und git ein Problem für sie, daher halte ich mich an die offeneren Projekte. Persönlich verwende ich HG als SCM meiner Wahl. Ich habe auch ein paar Projekte für meine Freunde zu Gast und einige von ihnen verwenden Git als SCM ihrer Wahl. Keine Möglichkeit, alle zufrieden zu stellen, wie es scheint :)
Kornel Kisielewicz
1
Könnten Sie auch näher auf die Gefahren der Verwendung der Unix-Benutzerliste für Repo-Berechtigungen eingehen?
Kornel Kisielewicz
3
Warum die Verwendung einer Unix-Benutzerliste für Repositorys eine schlechte Sache ist: Verlust der Granularität, Verlust der Portabilität. Wenn Sie die Repos auf einen anderen Server ändern müssen, müssen Sie die gesamte Unix-Benutzerliste verschieben. Wenn Sie Administratorberechtigungen delegieren möchten, müssen Sie Root-Berechtigungen erteilen. Wenn Sie bei gitosis den Server ändern möchten, müssen Sie nur das Repo klonen. Wenn Sie Administratorrechte delegieren möchten, müssen Sie nur den Benutzer zur Gruppe gitosis-admin hinzufügen.
Tiago Fassoni
just_testing, vereinbart, gültige Punkte :)
Kornel Kisielewicz
2

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.

draeath
quelle
1

Wenn Sie SSH verwenden möchten , müssen Sie die Schlüssel grundsätzlich einschränken, indem Sie die authorized_keysDatei auf dem Server bearbeiten . Für Mercurial sind die wichtigsten Möglichkeiten, dies zu tun:

  • Sie können das contrib/hg-sshSkript 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 hinzu

    $ command="hg-ssh path/to/repo"
    

    vor dem Schlüssel in der authorized_keysDatei. 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 .

Martin Geisler
quelle
1

SCM-Manager könnte perfekt für Ihre Bedürfnisse sein:

Der einfachste Weg, um Ihre Git-, Mercurial- und Subversion-Repositorys über http freizugeben und zu verwalten.

  • Sehr einfache Installation
  • SCM-Manager muss keine Konfigurationsdateien hacken, sondern kann vollständig über das Webinterface konfiguriert werden
  • Es ist kein Apache und keine Datenbankinstallation erforderlich
  • Zentrale Benutzer-, Gruppen- und Berechtigungsverwaltung
  • Out-of-the-Box-Unterstützung für Git, Mercurial und Subversion
  • Vollständige RESTFul-Webdienst-API (JSON und XML)
  • Reichhaltige Benutzeroberfläche
  • Einfache Plugin-API
  • Nützliche Plugins verfügbar (zB Ldap-, ActiveDirectory-, PAM-Authentifizierung)
alexandrul
quelle
0

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/

alexandrul
quelle