Bump version to 0.002008, regen README, update Changes.
[catagits/Gitalist.git] / lib / Gitalist.pm
index 6a051e4..43924c7 100644 (file)
@@ -14,13 +14,15 @@ use Catalyst qw/
                 SubRequest
 /;
 
-our $VERSION = '0.001002';
+our $VERSION = '0.002008';
 $VERSION = eval $VERSION;
 
 __PACKAGE__->config(
     name => 'Gitalist',
     default_view => 'Default',
     default_model => 'CollectionOfRepos',
+    use_request_uri_for_path => 1,
+    disable_component_resolution_regex_fallback => 1,
 );
 
 __PACKAGE__->setup();
@@ -58,42 +60,46 @@ sub uri_with {
 
 __END__
 
+=encoding UTF-8
+
 =head1 NAME
 
 Gitalist - A modern git web viewer
 
 =head1 SYNOPSIS
 
-    script/gitalist_server.pl --repo_dir /home/me/code/git
+    perl script/gitalist_server.pl --repo_dir /home/me/code/git
 
 =head1 INSTALL
 
 As Gitalist follows the usual Perl module format the usual approach
-for installation should work e.g.
+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 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
+You can also L<check Gitalist out from its git repository|/"GETTING GITALIST">
+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.
 
 =head1 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
+L<gitweb.cgi|https://git.wiki.kernel.org/index.php/Gitweb> and backed by
+L<Catalyst>.
 
 =head2 History
 
-This project started off as an attempt to port gitweb.cgi to a
+This project started off as an attempt to port I<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
+to Florian Ragwitz's earlier effort, it was easier to use I<gitweb.cgi>
 as a template for building a new Catalyst application.
 
 =head1 GETTING GITALIST
@@ -108,9 +114,33 @@ The canonical repository for the master branch is:
 
     git://git.shadowcat.co.uk/catagits/Gitalist.git
 
-Gitalist is also mirrored to github, and a number of people have active forks
+Gitalist is also mirrored to GitHub at L<https://github.com/broquaint/Gitalist>,
+and a number of people have active forks
 with branches and/or new features in the master branch.
 
+=head1 BOOTSTRAPPING
+
+As of C<0.002001> Gitalist can now be bootstrapped to run out of its
+own directory by installing its prerequisites locally with the help of
+L<local::lib>. So instead of installing the prerequisites to the
+system path with CPAN they are installed under the Gitalist directory.
+
+To do this clone Gitalist from the L<Shadowcat repository mentioned
+above|/"GETTING GITALIST"> or grab a snapshot from broquaint's GitHub repository:
+
+    https://github.com/broquaint/Gitalist/downloads
+
+With the source acquired and unpacked run the following from within the
+Gitalist directory:
+
+    perl script/bootstrap.pl
+
+This will install the necessary modules for the build process which in
+turn installs the prerequisites locally.
+
+B<NB:> The relevant bootstrap scripts aren't available in the CPAN dist
+as the bootstrap scripts should not be installed.
+
 =head1 INITIAL CONFIGURATION
 
 Gitalist is configured using L<Catalyst::Plugin::Configloader>. The supplied sample
@@ -125,7 +155,7 @@ directory to one directory higher than the Gitalist repository.
 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
 
 =head2 FOR CPAN INSTALLS
@@ -139,7 +169,8 @@ by running:
 
   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 C<repo_dir> path and customising
+other settings as desired.
 
 You can then start the Gitalist demo server by setting C<< GITALIST_CONFIG >>. For example:
 
@@ -162,19 +193,63 @@ to run it in a more production facing environment than using the single threaded
 server.
 
 The recommended deployment method for Gitalist is FastCGI, although Gitalist can also be run
-under mod_perl or as pure perl with L<Catalyst::Engine::PreFork>.
+under L<mod_perl|https://perl.apache.org/> or as pure Perl with L<Catalyst::Engine::PreFork>.
 
 Assuming that you have installed Gitalist's dependencies into a L<local::lib>, and you
 are running from a git checkout, adding a trivial FCGI script as C<script/gitalist.fcgi>
 (this file is specifically in C<.gitignore> so you can have your own copy):
 
     #!/bin/sh
-    export PERL5LIB=/home/t0m/public_html/Gitalist/lib:/home/t0m/perl5/lib/perl5:$PERL5LIB
     exec /home/t0m/public_html/Gitalist/script/gitalist_fastcgi.pl
 
 This example can be seen live here:
 
-    http://goatse.co.uk/~bobtfish/Gitalist/script/gitalist.fcgi/
+    http://example.gitalist.com
+
+=head2 FASTCGI
+
+Running Gitalist in FastCGI mode requires a webserver with FastCGI
+support (such as apache with L<mod_fcgi|http://www.fastcgi.com/drupal/node/3>
+or L<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 L<Catalyst::Engine::FastCGI/"Standalone server mode">.
+
+In Apache's F<mime.conf>, add C<AddHandler fcgid-script .fcgi>
+(or C<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
+C<gitalist.yourdomain.com/gitalist.fcgi/> (B<do not forget that trailing> C</>).
+If you'd like a different URL, of course, you'll likely want to use
+L<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
+C<http://url_to_gitalist.fcgi?dump_info=1> and/or add export C<GITALIST_DEBUG=1>
+to the top of your F<gitalist.fcgi> file (just below the shebang line).
+
+Also, note that Apache will refuse C<%2F> in Gitalist URLs
+unless configured otherwise. Make sure C<AllowEncodedSlashes On>
+is in your F<httpd.conf> file in order for this to run smoothly.
+
 
 =head1 CONTRIBUTING
 
@@ -199,19 +274,17 @@ L<Catalyst>
 =head1 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
 
 =head1 LICENSE
 
 Licensed under GNU GPL v2
-
-=cut