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.:
- 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 its git repository and run it, in
this case you'll additionally need the author modules, but no
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
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
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.
+
+ class
+ If you want a different way of surfacing repositories you can use
+ your own model (i.e something that composes
+ Gitalist::Git::CollectionOfRepositories) and specify the class name
+ with this config option.
+
+ args
+ Any additional arguments to be passed into the Model constructor,
+ only of use when used in conjunction with "class" (see above).
+
+ 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> or <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.
+ 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).
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> or equivalent.
+ 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).
- Also, note that 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.
+ 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