Version 10, last updated by Richard Esplin at March 16, 2009 18:31 UTC
Installation
What follows isn't really a HOWTO, but more of a map of the gotchas I dealt with in deploying Banjo. This page supplements the installation instructions at getbanjo.com.
Prerequisites:
To install Banjo you will need a working django-1.0 installation with a functioning database backend and memcached.
Getting Banjo:
Start by doing an:
hg clone http://hg.assembla.com/banjo
and then followed the instructions at getbanjo.com.
Dependencies:
As of early February 2009, the list of dependencies provided here is complete and Banjo works with all the source trees.
- PyYAML (v 3.05) Active project with good community. Available in Debian as python-yaml.
- simplejson (v 1.9.2) Active project with good community. Available in Debian as python-simplejson.
- Python Imaging Library (PIL) (v 1.1.6). Mature, stable, actively maintained library. Available in Debian as python-imaging.
- Markdown in Python (v 1.7). Good community and actively undergoing a major revision. Available in Debian as python-markdown.
- python-textile (v 2.0.10? Debian Lenny calls it 2.10-3.1.2) Actively maintained by a single author. Available in Debian as python-textile. Package recommends python-twisted, but it works fine without.
- Django (svn tip just after version 1.1 alpha—Banjo doesn't work with version 1.0).
- django-registration (version 0.7 from pypi). This project is under active development.
- iso8601 (version 0.1.4 from pypi). This project appears mature but not active.
- typogrify (v 1.0). This project appears mature but not active. Requires smartypants.py.
- smartypants.py (v 1.5_1.6). Single file with single author. Module appears mature but not active. Used by typogrify.
- sorl-thumbnail (svn tip). This project appears mature and maintained, though they don't ever bundle their releases for download.
- django-template-utils (release 0.4p2 would probably work, but I used svn trunk because the one additional change looked safe). This project looks mature, but not very active. The Banjo installation instructions need to be updated to reflect this dependency.
- django-evolution (svn checkout). This is an active project.
- django-extensions (svn tip). This is an active project with a large community. It must be called "extensions" for Banjo to import it.
- django-atompub (svn checkout). The project doesn't look active.
- django-xmlrpc (bzr trunk—version 0.1 doesn't work). Don't be deceived by the link to Google Code as the project's home page (the Google Code svn source doesn't work); Launchpad is the right place. The Banjo instructions need to be updated as well. This project doesn't look actively maintained, especially since the source requires a trivial edit to atom.py (add an import re) to import. A patch was reported six months ago and hasn't been applied.
- django-app-plugins (svn trunk). Project appears active, but has some trivial problems like missing a license notice (I just submitted the issue). The website says it's released under the MIT license.
- django-threaded-multihost (version 1.3-0 downloaded from http://assembla.com/spaces/threaded_multihost/documents). This project doesn't look used outside of Banjo and Satchmo—not much of a community. But it appears to work well. One note: the released tar.gz does not contain the license and docs that are in the hg repo.
- django-site-skins (hg trunk). This was recently spun off of Banjo and Satchmo, and isn't listed as a dependency in the docs.
- django-admin-plugins (hg clone of tip at http://hg.assembla.com/adminplugins). This is another Banjo/Satchmo library.
- Satchmo (release 0.8.1 might work because Banjo hasn't changed much since then, but I downloaded the svn trunk). This is a Django shopping cart with a good community. However, Banjo only needs a couple of the Satchmo libraries.
- Banjo (hg checkout of http://hg.assembla.com/banjo. I didn't try the 0.9-1 release downloadable from assembla).
I only had to make sure that a couple of Satchmo modules were in my python system path. I got them there by symlinking them into the common directory which I appended to sys.path. The source doesn't appear to import anything else from Satchmo, so deleting the rest should be possible.
Satchmo modules:
- keyedcache
- livesettings
- satchmo_utils
Configuration
- Consider uncommenting django_evolution from banjo/__init__.py
When debugging, it is really helpful to comment out django_xmlrpc from banjo/__init__.py, and replace the line from banjo.blog.syndication import XMLRPC_METHODS in settings.py with XMLRPC_METHODS = None to eliminate a class of spurious error messages.
Add this rule at the end of your urls.py so that all URLs that you haven't already dealt with go to Banjo: (r'', include('banjo.urls')),
- Then create your own skin using the Banjo base_root template as a starting point. Details are in the Skins page.