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

posted on 2013-10-23 11:32  eshizhan  阅读(2950)  评论(0编辑  收藏  举报