Aus der Tiefe
   


About
Aus der Tiefe, Meldungen des Rechenzentrums in der Cauerstrasse 11

Matthias Bauer und Martin Bayer problems@math.fau.de

Subscribe
Subscribe to a syndicated feed of my weblog, brought to you by the wonders of RSS.

Flavours
There's more than one way to view this weblog; try these flavours on for size.

  • index
  • circa 1993
  • RSS
  • Links

  • Shoestring FoundationMiscellaneous byproducts

  •        
    Tue, 11 Mar 2014

    Tuesday, March 11, 2014 15:12:19


    	Auf folgende Art kann man einen mercurial (hg) Repository Server auf Ubuntu installieren,
    	  der beim commit/push gegen libpam authentisiert. Das kann dann pro Repository noch
    	  eingeschraenkt werden:
    
    		/var/hg angelegt und auf www-data chownen
    		hgweb.wsgi aus /usr/lib/python*/site-package/mercurial/... nach /var/hg/cgi kopieren
    
    		/etc/apache2/conf.d/hg;
    			WSGIScriptAlias /hg "/var/hg/cgi/hgweb.wsgi"
    
    			
    				AllowOverride All
    			
    
    		libapache2-mod-authnz-external installieren (zieht apache und fast alles nach)
    		libapache2-mod-wsgi installieren
    
    		ssl und wsgi angeschaltet per 
    		 ln -s /etc/apache2/sites-available/default-ssl /etc/apache2/sites-enabled/.
    		 ln -s /etc/apache2/mods-available/*wsgi.load /etc/apache2/mods-enabled/.
    		 ln -s /etc/apache2/mods-available/mods-available/ssl.load /etc/apache2/mods-enabled/.
    
    		authnz config in /etc/apache2/conf.d/authnz:
    
    			AddExternalAuth pwauth /usr/sbin/pwauth
    			SetExternalAuthMethod pwauth pipe
    			AddExternalGroup unixgroup /usr/sbin/unixgroup
    			SetExternalGroupMethod unixgroup environment
    
    		/var/hg/.htaccess um Auth gegen PAM zu erzwingen:
    
    			AuthType Basic
    			AuthName Mercurial
    			AuthBasicProvider external
    			AuthExternal pwauth
    			Require valid-user
    
    		/var/hg/hgweb.conf:
    			[web]
    			descend = True
    			collapse = True
    			baseurl = /hg
    
    			[paths]
    			/mercurial = /var/hg/repos/**
    
    		Repos liegen dann unter /var/hg/repos/
    	 	Die URL ist https://$hostname/hg/mercurial/$reponame
    
    		In den /var/hg/repos/$repo/.hg/hgrc:
    			[web]
    			name = ...
    			description = ...
    			allow_push = user1, user2,...
    
    	  Was jetzt noch fehlt ist ein kleines CGI, dass die repos mit "hg init" anlegt, die
    	    .hg/hgrc anpasst und vielleicht die SSH keys der User in ~hg/.ssh/authorized_keys
    	    mit passenden 
    		command="hg server ...." 
    	    settings ein/austr"aegt.
    
    
    

    [/bauerm] permanent link