1
1
Loggerhead: A web viewer for ``bzr`` branches
2
2
==============================================
4
Loggerhead is a web viewer for projects in Bazaar. It can be used to navigate
4
Loggerhead is a web viewer for projects in Breezy. It can be used to navigate
5
5
a branch history, annotate files, view patches, perform searches, etc.
6
6
Loggerhead is heavily based on `bazaar-webserve
7
7
<https://launchpad.net/bzr-webserve>`_, which was, in turn, loosely
14
14
Loggerhead depends on the following Python libraries.:
16
- SimpleTAL for templating.
18
- simplejson for producing JSON data.
16
- Chameleon for templating.
20
18
- Paste for the server. (You need version 1.2 or newer of Paste).
22
- Paste Deploy (optional, needed when proxying through Apache).
20
- PasteDeploy (optional, needed when proxying through Apache).
24
22
- flup (optional, needed to use FastCGI, SCGI or AJP).
32
$ sudo apt-get install python-simpletal
33
$ sudo apt-get install python-simplejson
30
$ sudo apt-get install python-chameleon
34
31
$ sudo apt-get install python-paste
35
32
$ sudo apt-get install python-pastedeploy
36
33
$ sudo apt-get install python-flup
38
Installing Dependencies Using :command:`easy_install`
39
#####################################################
35
Installing Dependencies Using :command:`pip`
36
############################################
38
You should normally create and activate a virtual environment first.
44
-f http://www.owlfish.com/software/simpleTAL/py2compatible/download.html \
46
$ easy_install simplejson
48
$ easy_install PasteDeploy
42
# Basic installation only
43
$ pip install loggerhead
44
# Installation for proxying through Apache
45
$ pip install 'loggerhead[proxied]'
46
# Installation for FastCGI, SCGI or AJP
47
$ pip install 'loggerhead[flup]'
52
50
Running the Standalone Loggerhead Server
53
51
----------------------------------------
55
53
After installing all the dependencies, you should be able to run
56
:command:`serve-branches` with the branch you want to serve on the
54
:command:`loggerhead-serve` with the branch you want to serve on the
61
./serve-branches ~/path/to/branch
59
./loggerhead-serve ~/path/to/branch
63
61
By default, the script listens on port 8080, so head to
64
62
http://localhost:8080/ in your browser to see the branch.
70
68
Loggerhead will notice and refresh, and Bazaar uses its own branch
71
69
locking to prevent corruption.
73
See :doc:`serve-branches` for all command line options.
71
See :doc:`loggerhead-serve` for all command line options.
75
73
Running Loggerhead as a Daemon
76
74
------------------------------
84
82
$ sudo cp ./loggerheadd /etc/init.d
86
84
2) Edit the file to configure where your Loggerhead is installed, and which
87
serve-branches options you would like.
85
loggerhead-serve options you would like.
101
99
$ sudo chkconfig --add loggerheadd
104
Using Loggerhead as a Bazaar Plugin
105
------------------------------------
102
Using Loggerhead as a Breezy Plugin
103
-----------------------------------
107
This branch contains experimental support for using Loggerhead as a Bazaar
105
This branch contains experimental support for using Loggerhead as a Breezy
108
106
plugin. To use it, place the top-level Loggerhead directory (the one
109
containing COPYING.txt) at ``~/.bazaar/plugins/loggerhead``. E.g.:
107
containing COPYING.txt) at ``~/.config/breezy/plugins/loggerhead``. E.g.:
111
109
.. code-block:: sh
113
$ bzr branch lp:loggerhead ~/.bazaar/plugins/loggerhead
111
$ bzr branch lp:loggerhead ~/.config/breezy/plugins/loggerhead
115
113
$ bzr serve --http
118
116
Using a Config File
119
117
-------------------
121
To hide branches from being displayed, add to ``~/.bazaar/locations.conf``,
119
To hide branches from being displayed, add to ``~/.config/breezy/locations.conf``,
122
120
under the branch's section:
124
122
.. code-block:: ini
132
130
Serving Loggerhead behind Apache
133
131
--------------------------------
135
If you want to view Bazaar branches from your existing Apache
133
If you want to view Breezy branches from your existing Apache
136
134
installation, you'll need to configure Apache to proxy certain
137
135
requests to Loggerhead. Adding lines like this to your Apache
138
136
configuration is one way to do this:
144
142
ProxyPassReverse http://127.0.0.1:8080/branches/
147
If Paste Deploy is installed, the :command:`serve-branches` script can be
145
If Paste Deploy is installed, the :command:`loggerhead-serve` script can be
148
146
run behind a proxy at the root of a site, but if you're running it at
149
147
some path into the site, you'll need to specify it using
150
148
``--prefix=/some_path``.
155
153
A second method for using Loggerhead with apache is to have apache itself
156
154
execute Loggerhead via mod_wsgi. You need to add configuration for apache and
157
for bazaar to make this work. Example config files are in the Loggerhead doc
158
directory as apache-loggerhead.conf and bazaar.conf. You can copy them into
155
for breezy to make this work. Example config files are in the Loggerhead doc
156
directory as apache-loggerhead.conf and breezy.conf. You can copy them into
159
157
place and use them as a starting point following these directions:
161
159
1) Install mod_wsgi. On Ubuntu and other Debian derived distros::
167
165
su -c yum install mod_wsgi
169
2) Copy the bazaar.conf file where apache will find it (May be done for you if
167
2) Copy the breezy.conf file where apache will find it (May be done for you if
170
168
you installed Loggerhead from a distribution package)::
172
170
# install -d -o apache -g apache -m 0755 /etc/loggerhead
173
# cp -p /usr/share/doc/loggerhead*/bazaar.conf /etc/loggerhead/
174
# ln -s /etc/loggerhead /var/www/.bazaar
171
# cp -p /usr/share/doc/loggerhead*/breezy.conf /etc/loggerhead/
172
# mkdir -p /var/www/.config
173
# ln -s /etc/loggerhead /var/www/.config/breezy
176
175
3) Create the cache directory (May be done for you if you installed Loggerhead
177
176
from a distribution package)::
179
178
# install -d -o apache -g apache -m 0700 /var/cache/loggerhead/
181
4) Edit /etc/loggerhead/bazaar.conf. You need to set http_root_dir to the filesystem
180
4) Edit /etc/loggerhead/breezy.conf. You need to set http_root_dir to the filesystem
182
181
path that you will find your bzr branches under. Note that normal
183
182
directories under that path will also be visible in Loggerhead.
189
188
6) Edit /etc/httpd/conf.d/loggerhead.conf to point to the url you desire to
190
189
serve Loggerhead on. This should match with the setting for
191
http_user_prefix in bazaar.conf
190
http_user_prefix in breezy.conf
193
192
7) Restart apache and you should be able to start browsing