forked from broquaint/Gitalist
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
251 lines (183 loc) · 8.88 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
NAME
Gitalist - A modern git web viewer
SYNOPSIS
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
or
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
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.
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.
GETTING GITALIST
You can install Gitalist from CPAN in the usual way:
cpan -i Gitalist
Alternatively, you can get Gitalist using git.
The canonical repository for the master branch is:
git://git.shadowcat.co.uk/catagits/Gitalist.git
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
directory by installing its prerequisites locally with the help of
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 Shadowcat repository mentioned above
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.
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
is possible to configure Gitalist using other config file formats (such
as YAML) if you prefer.
WHEN CHECKING GITALIST OUT OF GIT
Gitalist from git includes a minimal "gitalist_local.conf", which sets
the repository 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]$ perl script/gitalist_server.pl
You can connect to your server at http://localhost:3000
FOR CPAN INSTALLS
Gitalist can be supplied with a config file by setting the
"GITALIST_CONFIG" environment variable to point to a configuration file.
If you install Gitalist from CPAN, a default configuration is installed
along with gitalist, which is complete except for a repository
directory. You can get a copy of this configuration by running:
cp `perl -Ilib -MGitalist -e'print Gitalist->path_to("gitalist.conf")'` gitalist.conf
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:
GITALIST_CONFIG=/usr/local/etc/gitalist.conf gitalist_server.pl
Alternatively, if you only want to set a repository directory and are
otherwise happy with the default configuration, then you can set the
"GITALIST_REPO_DIR" environment variable, or pass the "--repo_dir" flag
to any of the scripts.
GITALIST_REPO_DIR=/home/myuser/code/git gitalist_server.pl
gitalist_server.pl --repo_dir home/myuser/code/git
The "GITALIST_REPO_DIR" environment variable will override the
repository directory set in configuration, and will itself be overridden
by he "--repo_dir" flag.
RUNNING
Once you have followed the instructions above to install and configure
Gitalist, you may want to run it in a more production facing environment
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.
Assuming that you have installed Gitalist's dependencies into a
local::lib, and you are running from a git checkout, adding a trivial
FCGI script as "script/gitalist.fcgi" (this file is specifically in
".gitignore" so you can have your own copy):
#!/bin/sh
exec /home/t0m/public_html/Gitalist/script/gitalist_fastcgi.pl
This example can be seen live here:
http://example.gitalist.com
CONFIGURATION
The Gitalist config is loaded with Catalyst::Plugin::ConfigLoader and
the available config options are:
Model::CollectionOfRepos
git Path to the "git" binary.
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> 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.
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> 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.
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
your own copy of gitalist somewhere and ask us to pull from it.
SUPPORT
Gitalist has an active irc community in "#gitalist" on irc.perl.org,
please feel free to stop by and ask questions, report bugs or
installation issues or generally for a chat about where we plan to go
with the project.
SEE ALSO
Gitalist::Controller::Root
Gitalist::Git::Repository
Catalyst
AUTHORS AND COPYRIGHT
Catalyst application:
© 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:
© 2005-2006, Kay Sievers <kay.sievers@vrfy.org>
© 2005, Christian Gierke
Model based on http://github.com/rafl/gitweb
© 2008, Florian Ragwitz
LICENSE
Licensed under GNU GPL v2