Pod, collaborative tool with documents and todo list sharing

I wanted to share long ago this software, but it seems I never really found the time to do it. So here we are freedif.org, it’s Pod time!

POD is a collaborative tool, written in Python based on TurboGears and uses the powerful PostgreSQL as database.

POD collaborative tool detail

In POD, everything is a document and can be managed as we usually do for documents. 4 types of documents are available (text document, files, contact and comments).

It is easy to create, modify, move, delete these documents, but POD also allows you to share them and set different access rights for each different document. You can also search and filter your query per type.

pod collaborative tool todo list

Similar to a Wiki, you can check different version of a document (versioning) and set access rights for a specific user or usergroup in read and/or write mode.

Obviously the best for you is to give a try to their latest demo (login: demo@localhost // password: demo) and to check below tutorial on how to install pod on your server.

POD collaborative tool login page


If you are on Debian/Ubuntu like,

1) Install the dependencies

In root, run:

apt-get install realpath python3 python-virtualenv python3-dev python-pip build-essential postgresql-server-dev-all postgresql postgresql-client


2) Clone their git repository into your /var/www
cd /var/www
git clone https://bitbucket.org/lebouquetin/pod.git
3) Create the database

To create a database with PostGreSQL, you will need first to login as the postgres user

cd pod
su postgres

and then run the psql client


You should get something like this:

psql (9.1.14)
Type "help" for help.


Now, create the database poddb with the user poduser and the password podpassword

CREATE ROLE poduser WITH LOGIN PASSWORD 'podpassword';

Obviously replace the user and password by the one you want.

then quit the psql client by typing:


and logout from postgres user by running:

4) Import the database schema and initial data

Simply execute below sql query by replacing the database name and username by the one you previously created

psql -h -W -U poduser poddb < doc/database/pod-init-database.sql

enter your password and wait for your database to be initialized.

You can now test your database by running the following command:

psql -h -W -U poduser poddb -c 'SELECT * from pod_user;'

You should see the admin@localhost user entry, simply press “q” to quit.

5) Setup the python virtualenv

To avoid conflict between your system-wide python modules and the pod required ones, you need to setup the Python virtualenv as following:

virtualenv -p /usr/bin/python3 tg2env
source tg2env/bin/activate
cd pod && python setup.py develop && cd -
pip install -r install/requirements.txt

You may get an error with stevedore/pbr since it is not supported by python 3.2, but you can ignore this error.

Note that for Ubuntu users, you need to remove distribute and wsgiref from the requirements.txt file

6) Edit the POD configuration to match your settings

First, copy the development.ini file.base as development.ini

cp pod/development.ini.base pod/development.ini

and edit it:

nano pod/development.ini

You will need to indicate your postgresql configuration, found the line:

sqlalchemy.url = postgresql://pod_user:pod_user_password@

and replace the user/password/pod database by what you have created before, in the case of this tutorial, I will replace it by:

sqlalchemy.url = postgresql://poduser:podpassword@


You could also change the port to listen to (Default is 8080), the language (From English to French for example) and some more.

When done, save the file (CTRL +X, then Y)

7) Launch the pod

If no issue, you should now be able to visit your pod at http://YourIP:8080 with the login: admin@localhost and password: admin


Loves to discover web-based apps to install on his own server@home and write articles about it


Add a comment