I have built and revised this so much I know longer have build notes that make sense. Here's the conf script with elaboration:

#!/bin/bash -ex

#overlay: /etc/confconsole/services.txt
#overlay: /usr/lib/inithooks/firstboot.d - runs booki.env followed by django-admin createsuperuser

#Set Hostname
HOSTNAME=booktype
echo "$HOSTNAME" > /etc/hostname
sed -i "s|127.0.1.1 \(.*\)|127.0.1.1 $HOSTNAME|" /etc/hosts

#install function; unnecessary in this case
install()
{
    apt-get update
    DEBIAN_FRONTEND=noninteractive apt-get -y \
        -o DPkg::Options::=--force-confdef \
        -o DPkg::Options::=--force-confold \
        install $@
}

#Install from Repos
install libapache2-mod-wsgi \
    python-django \
    python-dev \
    python-django-south \
    sqlite3 \
    git-core \
    python-setuptools \
    python-pip \
    redis-server \
    libxml2-dev \
    build-essential \
    libxslt-dev \
    python-imaging

#Python imaging might need more for graphics to publish. Don't know what, however.

#Easy Install; other easy_install candidates are handled with apt above
easy_install lxml

#Pip
pip install unidecode

#Clone Source (git)
git clone https://github.com/sourcefabric/Booktype.git /opt/booktype/

#create the thing at /var/www/booktype, with settings.py configured for sqlite.
/opt/booktype/scripts/createbooki --database sqlite /var/www/booktype

#hard to script for me; I try to avoid changing directories in scripts, but I couldn't find a way around it.
#straight from the docs, except loaddata is done before createsuperuser.

cd /var/www/booktype
. ./booki.env
django-admin syncdb --noinput
django-admin migrate
django-admin loaddata documentation_licenses
cd ~

a2dissite default
a2ensite booktype
service apache2 reload
chown -R www-data:www-data /opt/booktype/
chown -R www-data:www-data /var/www/booktype/