git+gitolite+cgit+apache on Ubuntu
git+gitolite+cgit+apache on Ubuntu
Just record, do *NOT* copy-paste.
git+gitolite
sudo apt-get install git openssh-server sudo adduser git su - git git clone git://github.com/sitaramc/gitolite mkdir -p $HOME/bin gitolite/install -to $HOME/bin gitolite setup -pk YourName.pub git clone git@host:gitolite-admin
cgit+apache
sudo apt-get install libssl-dev apache2 curl -LOJ "http://git.zx2c4.com/cgit/snapshot/cgit-0.9.2.tar.xz" tar xf cgit-0.9.2.tar.xz cd cgit-0.9.2/ make get-git make sudo make install sudo a2enmod rewrite
/etc/apache2/sites-available/cgit
<VirtualHost *:80> ServerAdmin admin@example.com ServerName git.example.com DocumentRoot /var/www/htdocs/cgit/ <Directory /var/www/htdocs/cgit/> AllowOverride None Options +ExecCGI Order allow,deny Allow from all </Directory> Alias /cgit.png /var/www/htdocs/cgit/cgit.png Alias /cgit.css /var/www/htdocs/cgit/cgit.css ScriptAlias / "/var/www/htdocs/cgit/cgit.cgi/" RewriteRule ^$ / [R] RewriteRule ^/(.*)$ /cgit.cgi/$1 [PT] ErrorLog /var/log/apache2/cgit-error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/cgit-access.log combined </VirtualHost>
/etc/cgitrc
# Enable caching of up to 1000 output entriess cache-size=1000 # cache time to live cache-dynamic-ttl=5 cache-repo-ttl=5 cache-repo-ttl=5 # Specify some default clone urls using macro expansion clone-url=http://e3200/$CGIT_REPO_URL git@e3200:$CGIT_REPO_URL # Specify the css url css=/cgit.css # Show owner on index page enable-index-owner=1 # Source gitweb.description, gitweb.owner from each project config enable-git-config=1 # Allow http transport git clone enable-git-clone=1 # Show extra links for each repository on the index page enable-index-links=1 # Remove .git suffix from project display remove-suffix=1 # Enable ASCII art commit history graph on the log pages enable-commit-graph=1 # Show number of affected files per commit on the log pages enable-log-filecount=1 # Show number of added/removed lines per commit on the log pages enable-log-linecount=1 # Sort branches by date branch-sort=age # Add a cgit favicon favicon=/favicon.ico # Use a custom logo logo=/cgit.png # Enable statistics per week, month and quarter max-stats=quarter # Set the title and heading of the repository index page root-title=e3200 Git repositories # Set a subheading for the repository index page root-desc=tracking the foobar development # Include some more info about example.com on the index page root-readme=/var/www/htdocs/cgit/about.htm # Allow download of tar.gz, tar.bz2 and zip-files snapshots=tar.gz tar.bz2 zip ## ## List of common mimetypes ## mimetype.gif=image/gif mimetype.html=text/html mimetype.jpg=image/jpeg mimetype.jpeg=image/jpeg mimetype.pdf=application/pdf mimetype.png=image/png mimetype.svg=image/svg+xml # Highlight source code with python pygments-based highligher source-filter=/usr/lib/cgit/filters/syntax-highlighting.sh # Format markdown, restructuredtext, manpages, text files, and html files # through the right converters about-filter=/usr/lib/cgit/filters/about-formatting.sh ## ## Search for these files in the root of the default branch of repositories ## for coming up with the about page: ## readme=:README.md readme=:readme.md readme=:README.mkd readme=:readme.mkd readme=:README.rst readme=:readme.rst readme=:README.html readme=:readme.html readme=:README.htm readme=:readme.htm readme=:README.txt readme=:readme.txt readme=:README readme=:readme readme=:INSTALL.md readme=:install.md readme=:INSTALL.mkd readme=:install.mkd readme=:INSTALL.rst readme=:install.rst readme=:INSTALL.html readme=:install.html readme=:INSTALL.htm readme=:install.htm readme=:INSTALL.txt readme=:install.txt readme=:INSTALL readme=:install ## ## List of repositories. ## PS: Any repositories listed when section is unset will not be ## displayed under a section heading ## PPS: This list could be kept in a different file (e.g. '/etc/cgitrepos') ## and included like this: ## include=/etc/cgitrepos ## project-list=/home/git/projects.list scan-path=/home/git/repositories
/usr/lib/cgit/filters/syntax-highlighting.sh
sudo apt-get install highlight
exec highlight --force --inline-css -f -I -O xhtml -S "$EXTENSION" 2>/dev/null
Permission
sudo gpasswd -a www-data git
find /home/git/repositories -type d | xargs chmod g+rx find /home/git/repositories -type f | xargs chmod g+r
chmod g+r /home/git/{projects.list,.gitolite.rc} chmod g+rx /home/git/{repositories/,.gitolite/}
chmod g+r /home/git/
~/.gitolite.rc
$UMASK=0027
GIT_CONFIG_KEYS => '.*',
/usr/lib/cgit/filters/html-converters/resources/markdown.pl
## Disabled; causes problems under Perl 5.6.1: # use utf8; # binmode( STDOUT, ":utf8" ); # c.f.: http://acis.openlib.org/dev/perl-unicode-struggle.html
ref:
http://www.mahlerauto.com/setting-up-cgit-with-gitolite.html
http://blog.nas-admin.org/?p=39
https://wiki.archlinux.org/index.php/Cgit#Syntax_highlighting
http://easior.is-programmer.com/posts/40650.html