Sourcefabric Booktype (Book Collab Software)?

January 5, 2015 3.4k views

Hello all.

I just wonder if any of you have tried to install Sourcefabric Booktype (or other of their software) on a virtual server?

Her is Booktype:


I would really like to get Booktype working on my server, but I am a newbie linux/server admin, thus I don't want to mess up my droplet server setup.

Anyone want to test this Booktype in a virtual host?

20 Answers

Hi, I wrote the documentation linked above, I'd be happy to help. Booktype will run on a standard Python 2.7 setup, including virtual servers. Personally, I use VirtualBox OSE from to create Debian and Ubuntu instances for testing.

Before installing a Booktype 2.0 snapshot I would recommend that you create a login on the development server which will give you an impression of the current state of Booktype 2.0.

  • Hello Daniel, thanks for your comment. Good to see some of you sourcefabric guys in here. I really like your software and your ideas, actually I am now watching this one:

    Book Collab and your other projects are part of the future for sure.

    I know I will be able to set up booktype in a test server using VirtualBox, but I am probably too newbie to be able to get virtualmin working in a local testenvironment to be able to test booktype in a VIRTUAL HOST setting.

    In order to have virtualmin working I probably need to be on my live server (droplet), and I am affraid I may risk destroying some of my current setup if I try install BookType on my live server.

    I know I can make snapshots of the working server, and revert to the snapshot if something goes wrong, but many things can go wrong without me knowing or discovering it, errors may show up later, so I would really hope some more experienced people test this out first.

    Have you tried it in a virtualmin setting, on Ubuntu 14.04 server?

Hi, if you are not confident with Python I would not recommend installing Booktype on your live server for now. I understand that virtualmin is like webmin for virtual servers, but I have not personally tried installing Booktype in that environment. Our current Booktype installation instructions cover the Debian/Ubuntu way of configuring services.

I'm planning to write a tutorial on installing Booktype on a droplet, at some point, but I'd be inclined to do that without the use of a hosting control panel. My reasoning is that users who need such a panel would have fewer headaches if they bought a managed hosting service :-)

If you have the time available and would like to learn for yourself, what I'd recommend is that you install VirtualBox on your local desktop computer, create something like a Debian stable (wheezy) instance on it, and get familiar with how to install programs like Booktype via the shell.

You are not doing anything wrong :-) This error is just because Booktype 2.0 has not been released yet. In the meantime, you can get the daily snapshots from and install them with any package manager that supports dependency resolution, for example using gdebi and today's snapshot:

sudo apt-get install gdebi-core
sudo gdebi booktype2.0.0~20150107-1all.deb

Let us know how you get on! You will probably need to put the Virtualbox ethernet interfaces into bridged mode so that the test servers can get a real IP address on your local network, for example by DHCP. That makes it easier to interact with the servers using your desktop machine as if it was a remote client.

Booktype 2.0 requires Redis server 2.8 or later, a version which is available in Ubuntu 14.04 LTS 'Trusty' but is not currently available in Debian 7 'wheezy'. If your Debian server runs wheezy, make sure you have the wheezy-backports apt repository set up. There should be a line similar to:

deb wheezy-backports main

in your /etc/apt/sources.list file. If you need to add a line for wheezy-backports, you can find a list of mirror sites at

What happens if you do this (as root)?

apt-get update
apt-cache show redis-server

It should show you that both 2.4.14 and 2.8.17 are available. Then the command:

apt-get install redis-server

should install the 2.8 version for you.

If you have built your own copy of redis from source, the Debian package manager will not know about that, it only tracks .deb packages. You probably have two copies of redis installed now :-)

The command:

dpkg-query -l redis-server

should return the Debian package version installed, which should be 2.8.17-1~bpo70+1+b1

If that is the case, please try running this command again:

sudo gdebi booktype2.0.0~20150107-1all.deb

That works for me on wheezy. If it still doesn't work, we need to dig deeper...

I understand what you are saying, but short term pain is long term gain. I am familiar with installing programs using the shell, so need no graphic control panel if I have to manage without. I am learning as I go. Rather learn something useful than buy managed hosting :-) Beside I am planning a project with so many users that I can not afford SourceFabrics prices.

I will follow your advice and try installing this thing in local virtualboxed testserver :-)


I have set up testservers (UbuntuServer 14.04 and Debian 7 64bit) in Virtualbox, internet access.

I have followed the installguide here

When I have done everything from top of guide and come to type in the following command:
sudo apt-get install booktype (or apt-get install booktype in Debian) i get the following result:

Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package booktype

I get the same error both in Ubuntu and Debian at the same place, so what could I be doing wrong here? Or is it something missing in the install guide?

Thank you Daniel.

I used wget to download the snapshot, then:

root@debian:~# gdebi booktype2.0.0~20150107-1all.deb
Reading package lists... Done
Building dependency tree
Reading state information... Done
Building data structures... Done
Building data structures... Done
This package is uninstallable
Dependency is not satisfiable: redis-server (>= 2:2.8)


I have followed the tutorial, so I assume I have the latest redis-server?

Running bridged mode on my boxes btw :-)

Hmm...I did what you said...followed the tutorial


deb wheezy-backports main

to /etc/apt/sources.list file

so this was in place before I wrote the above comment reporting the error about redis server.

So, I guess I need to find another way to get the correct redis-server, so what do I need to do?

Then I get this result:

root@debian:~# apt-cache show redis-server
Package: redis-server
Source: redis (2:2.8.17-1~bpo70+1)
Version: 2:2.8.17-1~bpo70+1+b1
Installed-Size: 845
Maintainer: Chris Lamb
Architecture: amd64
Depends: init-system-helpers (>= 1.18~), libc6 (>= 2.11), libjemalloc1 (>= 2.1.1), redis-tools (= 2:2.8.17-1~bpo70+1+b1), adduser
Description-en: Persistent key-value database with network interface
Redis is a key-value database in a similar vein to memcache but the dataset
is non-volatile. Redis additionally provides native support for atomically
manipulating and querying data structures such as lists and sets.
The dataset is stored entirely in memory and periodically flushed to disk.
Description-md5: 9160ed1405585ab844f8750a9305d33f
Section: database
Priority: optional
Filename: pool/main/r/redis/redis-server2.8.17-1~bpo70+1+b1amd64.deb
Size: 362026
MD5sum: 625ecc7b5c7506021de1c69b8574fe07
SHA1: 948390f155cbe001ee2ee4fc96cb0c495370ff7d
SHA256: dccab79012ee965889789dc34a843467915489eb1f83c579bd3c623311993c9d

Package: redis-server
Source: redis
Version: 2:2.4.14-1
Installed-Size: 568
Maintainer: Chris Lamb
Architecture: amd64
Depends: libc6 (>= 2.7), libjemalloc1 (>= 2.1.1), adduser
Description-en: Persistent key-value database with network interface
Redis is a key-value database in a similar vein to memcache but the dataset
is non-volatile. Redis additionally provides native support for atomically
manipulating and querying data structures such as lists and sets.
The dataset is stored entirely in memory and periodically flushed to disk.
Description-md5: 9160ed1405585ab844f8750a9305d33f
Tag: implemented-in::c, role::program
Section: database
Priority: optional
Filename: pool/main/r/redis/redis-server2.4.14-1amd64.deb
Size: 234586
MD5sum: df2658e5243f8a99bc2205c16a154d0d
SHA1: 727b82f94497a578d35cc26a9bc29d141ff7131a
SHA256: 79e461471d7fa8ee046c441a184d1541ad343e9edf172a4d61659212eb4f4609

root@debian:~# apt-get install redis-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
redis-server is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

by Etel Sverdlov
This tutorial covers the Redis Installation, some simple Redis operations, and the 5 Redis data types. Redis, developed in 2009, is a flexible, open-source, key value data store that allows users to store vast amounts of data without the limits of a relational database.

Well, I got it installed using the above tutorial, but probably missed something, couse I still get the same dependency error message. The system has not recognised the 2.8 redis installation.

I should probably try installing using a package (apt-get install redis-server) but as you see that did not work either.

What to do?

Try on Ubuntu instead.....ehh? :-)

Thanks Daniel, I will come back to Debian later, I have switched back to Ubuntu for now, and actually managed to get it installed, and ran the Booktype configuration wizard. Then pointing my browser to the virtual machine IP address, but could not get to the Booktype interface.

I have probably messed up, during the configuration wizard I was asked for "hostname" and typed in "something", then pointing my browser to "something" on my local network did not work, neither did pointing to ip address. I reached the apache server yes, but no installation. So I probably have to do this again, first setting the machines hostname, then use the same hostname in the Booktype configuration wizard?

Anyway, got 2.0 installed, so I am getting there slowly. When I make it work I will post all the steps taken, then I will try the same on Debian :-)

I tried something...edited /etc/apache2/sites-available/000.conf to sett Document root to /var/www/booktype

Then restarted and pointed my browser to There I did not get Booktype website, but a directory structure with instance1 as top level directory.

Should I simply delete the 000.conf file, or should I set document root in the apache2.conf file (to point to /var/www/booktype)?

sudo a2dissite 000-default.conf

sudo a2ensite booktype-instance1.conf

Problem solved - Booktype 2.0 is now installed and working. Creating my first book :-)

Here is what I did for installing Booktype 2.0 on Ubuntu Server 14.04 x64, installed in VirtualBox on my local network, bridged mode. Then connected to it using Putty.

First updated Ubuntu

sudo apt-get update

sudo apt-get upgrade


Then I followed this guide for database setup:

Be aware step 4. in the above mentioned database setupguide:

  1. Confirm connections to the database booktype-db by booktype-user are allowed, by checking the PostgreSQL configuration file. The exact file name depends on the PostgreSQL version that you are using. For example, if the version was 9.1, the command to edit the file on Debian or Ubuntu GNU/Linux would be:
sudo nano /etc/postgresql/9.1/main/pg_hba.conf

Updated Ubuntu Server 14.04 has postgresql 9.3, so the command should be:

sudo nano /etc/postgresql/9.3/main/pg_hba.conf

When completed the database setupguide I went here:

For Ubuntu, skipped the first part and jumped directly to "Setting up the secure apt repository"


Setting up the secure apt repository

To add the repository that contains Sourcefabric software, including Booktype, open the sources.list file in the nano editor with:

sudo nano /etc/apt/sources.list

Type your password, and the sources.list file will open. For Debian wheezy, scroll to the end of this document and add the following lines:

# Booktype
deb trusty main

For Ubuntu 14.04 LTS 'Trusty', substitute trusty in place of wheezy. Press Ctrl+O to write out the sources.list file, and Ctrl-X to quit the nano editor.

You now need to update your sources. Type:

sudo apt-get update

You will probably see an error message about a missing public key. To fix this system error, you need to install the sourcefabric-keyring package, which contains the package signing key. This encryption key is a security measure which helps ensure that the Booktype packages you will download in future have not been tampered with by a third party.

sudo apt-get install sourcefabric-keyring

When prompted, press the y key on your keyboard to install the sourcefabric-keyring package without verification. If you wish to verify the authenticity of the package signing key, please contact Sourcefabric for assistance.

Update your sources again, to confirm that you are now using a trusted software repository:

sudo apt-get update

You should no longer see the error message about the public key.



sudo apt-get install gdebi-core

Then update redis-server to latest version


...or choose another mirror here:

sudo gdebi redis-server_2.8.4-2_amd64.deb

Then get the Booktype 2.0 latest snapshot


....or choose a newer one here:

sudo gdebi booktype_2.0.0~20150107-1_all.deb

Let it install and then follow the Booktype 2.0 configuration wizard, it should start automatically.


Then I did the following to change the default document root in Apache

sudo a2dissite 000-default.conf

sudo a2ensite booktype-instance1.conf

sudo service apache2 restart


Then pointed my browser to the IP address of the Booktype 2.0 machine

Log in to Booktype 2.0 and create a book!

Now, how to get this working in a virtualmin virtual server environment? Example, get this installed and running in a existing directory, subdirectory or subdomain of an already created virtual servers /home/virtualservername.

http://virtualserver.tld --> /home/virtualserver
http://booktype.virtualserver.tld ---> /home/virtualserver/booktype

I have no experience of virtualmin, but in general it is Apache that does the job of translating the http:// request into returning files from a particular directory. I suspect that what virtualmin does is provide an interface for creating Apache virtualhost definition files in a directory such as /etc/apache2/sites-available/ (on Debian or Ubuntu). You can choose to have this definition created automatically when installing Booktype 2.0 from a snapshot deb package.

If you use the command:

ls -l /etc/apache2/sites-enabled

you can see the other part of the process, where the a2ensite command is used to symlink files from /etc/apache2/sites-available/ to /etc/apache2/sites-enabled/ (the step which makes the site appear to the public at the http:// address). Until then, the new site is 'available' but not 'enabled'.

Have another answer? Share your knowledge.