Gitalist - A modern git web viewer
SYNOPSIS
- script/gitalist_server.pl --repo_dir /home/me/code/git
+ perl script/gitalist_server.pl --repo_dir /home/me/code/git
INSTALL
As Gitalist follows the usual Perl module format the usual approach for
- installation should work e.g.
+ installation should work, e.g.:
- perl Makefile.PL
- make
- make test
- make install
+ perl Makefile.PL
+ make
+ make test
+ make install
or
- cpan -i Gitalist
+ cpan -i Gitalist
- You can also check gitalist out from git and run it, in this case you'll
- additionally need the author modules, but no configuration will be
- needed as it will default to looking for repositories the directory
- above the checkout.
+ You can also check Gitalist out from its git repository and run it, in
+ this case you'll additionally need the author modules, but no
+ configuration will be needed as it will default to looking for
+ repositories the directory above the checkout.
DESCRIPTION
- Gitalist is a web frontend for git repositories based on gitweb.cgi and
- backed by Catalyst.
+ Gitalist is a web frontend for git repositories based on gitweb.cgi
+ <https://git.wiki.kernel.org/index.php/Gitweb> and backed by Catalyst.
History
- This project started off as an attempt to port gitweb.cgi to a Catalyst
- app in a piecemeal fashion. As it turns out, thanks largely to Florian
- Ragwitz's earlier effort, it was easier to use gitweb.cgi as a template
- for building a new Catalyst application.
+ This project started off as an attempt to port *gitweb.cgi* to a
+ Catalyst app in a piecemeal fashion. As it turns out, thanks largely to
+ Florian Ragwitz's earlier effort, it was easier to use *gitweb.cgi* as a
+ template for building a new Catalyst application.
GETTING GITALIST
You can install Gitalist from CPAN in the usual way:
git://git.shadowcat.co.uk/catagits/Gitalist.git
- Gitalist is also mirrored to github, and a number of people have active
- forks with branches and/or new features in the master branch.
+ Gitalist is also mirrored to GitHub at
+ <https://github.com/broquaint/Gitalist>, and a number of people have
+ active forks with branches and/or new features in the master branch.
BOOTSTRAPPING
As of 0.002001 Gitalist can now be bootstrapped to run out of its own
path with CPAN they are installed under the Gitalist directory.
To do this clone Gitalist from the Shadowcat repository mentioned above
- or grab a download from CPAN or broquaint's github repository:
+ or grab a snapshot from broquaint's GitHub repository:
- http://github.com/broquaint/Gitalist/downloads
+ https://github.com/broquaint/Gitalist/downloads
With the source acquired and unpacked run the following from within the
Gitalist directory:
- perl script/bootstrap
+ perl script/bootstrap.pl
This will install the necessary modules for the build process which in
turn installs the prerequisites locally.
+ NB: The relevant bootstrap scripts aren't available in the CPAN dist as
+ the bootstrap scripts should not be installed.
+
INITIAL CONFIGURATION
Gitalist is configured using Catalyst::Plugin::Configloader. The
supplied sample configuration is in Config::General format, however it
This means that if you check Gitalist out next to your other git
checkouts, then starting the demo server needs no parameters at all:
- Gitalist [master]$ ./script/gitalist_server.pl
+ Gitalist [master]$ perl script/gitalist_server.pl
You can connect to your server at http://localhost:3000
FOR CPAN INSTALLS
cp `perl -Ilib -MGitalist -e'print Gitalist->path_to("gitalist.conf")'` gitalist.conf
- You can then edit this confg, adding a repo_dir path and customising
- other settings as desired.
+ You can then edit this configuration, adding a "repo_dir" path and
+ customising other settings as desired.
You can then start the Gitalist demo server by setting
"GITALIST_CONFIG". For example:
than using the single threaded developement server.
The recommended deployment method for Gitalist is FastCGI, although
- Gitalist can also be run under mod_perl or as pure perl with
- Catalyst::Engine::PreFork.
+ Gitalist can also be run under mod_perl <https://perl.apache.org/> or as
+ pure Perl with Catalyst::Engine::PreFork.
Assuming that you have installed Gitalist's dependencies into a
local::lib, and you are running from a git checkout, adding a trivial
http://example.gitalist.com
+ Plack
+ If you would like to run Gitalist under Plack then one need only make
+ use of plackup and the ".psgi" found under "scripts/":
+
+ plackup script/gitalist_app.psgi
+
+CONFIGURATION
+ The Gitalist config is loaded with Catalyst::Plugin::ConfigLoader and
+ the available config options are:
+
+ no_gravatars
+ If true don't display gravatars. May be desirable if you are worried
+ about leaking repo names via the browser referer headers.
+
+ Model::CollectionOfRepos
+ repo_dir
+ A directory containing the directories to show.
+
+ repos
+ A list of directories containing repositories to show.
+
+ search_recursively
+ A boolean indicating whether to always search recursively for
+ repositories within "repo_dir".
+
+ whitelist
+ Path a file containing a list of repositories that can be shown.
+ Each line in the file will represent the name of a repo to show e.g
+
+ Gitalist
+ some-bare-repo.git
+
+ This is compatible with "gitweb"'s "projects.list".
+
+ export_ok
+ If provided every must contain a file of the same name to be
+ visible. This is similar to "gitweb"'s functionality.
+
+ paging
+ log The number of commits to show in the summary, shortlog and longlog
+ views.
+
+ FASTCGI
+ Running Gitalist in FastCGI mode requires a webserver with FastCGI
+ support (such as apache with mod_fcgi
+ <http://www.fastcgi.com/drupal/node/3> or mod_fcgid
+ <https://httpd.apache.org/mod_fcgid/>). Below is a sample configuration
+ using Apache2 with mod_fcgid in a dynamic configuration (as opposed to
+ static or standalone mode). More information on these modes and their
+ configuration can be found at "Standalone server mode" in
+ Catalyst::Engine::FastCGI.
+
+ In Apache's mime.conf, add "AddHandler fcgid-script .fcgi" (or
+ "AddHandler fastcgi-script .fcgi" for mod_fcgi).
+
+ And a quick VirtualHost configuration:
+
+ <VirtualHost *:80>
+ ServerName gitalist.yourdomain.com
+ DocumentRoot /path/to/gitalist.fcgi
+ <Directory "/path/to/gitalist.fcgi">
+ AllowOverride all
+ Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
+ Order allow,deny
+ Allow from all
+ </Directory>
+
+ # Tell Apache this is a FastCGI application
+ <Files gitalist.fcgi>
+ #change the below to fastcgi-script if using mod_fcgi
+ SetHandler fcgid-script
+ </Files>
+ </VirtualHost>
+
+ Now to access your Gitalist instance, you'll go to
+ "gitalist.yourdomain.com/gitalist.fcgi/" (do not forget that trailing
+ "/"). If you'd like a different URL, of course, you'll likely want to
+ use mod_rewrite <https://httpd.apache.org/docs/mod/mod_rewrite.html> or
+ equivalent.
+
+ If you find the need to do some troubleshooting, you can call
+ "http://url_to_gitalist.fcgi?dump_info=1" and/or add export
+ "GITALIST_DEBUG=1" to the top of your gitalist.fcgi file (just below the
+ shebang line).
+
+ Apache config
+ Apache will refuse %2F in Gitalist URLs unless configured otherwise.
+ Make sure "AllowEncodedSlashes On" is in your httpd.conf file in order
+ for this to run smoothly.
+
+ To have the static content served statically by Apache, instead of
+ Gitalist, then add something like following line to your httpd.conf:
+
+ Alias /static /usr/local/share/perl/5.10.1/Gitalist/root/static
+
CONTRIBUTING
Patches are welcome, please feel free to fork on github and send pull
requests, send patches from git format-patch to the bug tracker, or host
AUTHORS AND COPYRIGHT
Catalyst application:
- (C) 2009 Venda Ltd and Dan Brook <broq@cpan.org>
- (C) 2009, Tom Doran <bobtfish@bobtfish.net>
- (C) 2009, Zac Stevens <zts@cryptocracy.com>
+ © 2009 Venda Ltd and Dan Brook <broq@cpan.org>
+ © 2009, Tom Doran <bobtfish@bobtfish.net>
+ © 2009, Zac Stevens <zts@cryptocracy.com>
Original gitweb.cgi from which this was derived:
- (C) 2005-2006, Kay Sievers <kay.sievers@vrfy.org>
- (C) 2005, Christian Gierke
+ © 2005-2006, Kay Sievers <kay.sievers@vrfy.org>
+ © 2005, Christian Gierke
Model based on http://github.com/rafl/gitweb
- (C) 2008, Florian Ragwitz
+ © 2008, Florian Ragwitz
LICENSE
Licensed under GNU GPL v2