Amsterdam Content Analysis Toolkit
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
accounts Replaced patterns calls with list (deprecated since 1.8) Feb 4, 2017
.gitignore __upload_cache.json in .gitignore Feb 5, 2017
apt_requirements.txt Added Dec 25, 2016
requirements.txt Removed references to pylint Dec 10, 2013

AmCAT - Amsterdam Content Analysis Toolkit

Master: Build Status Release 3.4: Build Status

Experimental Docker Support

We've created a Dockerfile and docker-compose.yml file that should allow you to automatically run AmCAT and all dependencies with Docker. See amcat/amcat-docker

Installation instructions for 3.4 (stable)

The installation instructions for AmCAT 3.4 (the last stable release) can be found here

Installation and Configuration for development version

The following instructions are for the (unstable) development version. To install stable releases, please use the link above.


Most of the (python) prerequisites for AmCAT are automatically installed using pip (see below). To install the non-python requirements, you can use the following (on Ubuntu 15.10 or 16.04):

sudo apt-get install antiword unrtf rabbitmq-server python3-pip postgresql postgresql-contrib python3-venv git postgresql-server-dev-9.5 python3-dev libxml2-dev libxslt-dev graphviz pspp redis-server r-base python3-lxml python3-amqplib python3-psycopg2 python3-requests python3-pygments nodejs-legacy npm

Installing AmCAT

Clone the project from github and pip install the requirements.

(Note: We usually create a virtual environment within the amcat folder and use env/bin/python instead of activating the envirtonment, but of course you can change that if you wish)

git clone
cd amcat
python3 -m venv env
env/bin/pip install wheel -r requirements.txt


AmCAT uses elasticsearch for searching articles. The easiest way to install elastic is through docker.


For development only, the easiest way to run docker is by running the following:

docker run --name elastic -dp 9200:9200 -e "discovery.type=single-node" amcat/amcat-elastic-docker:5.4.3

This is fine for testing/developing, but absolutely not suitable for production use!

Note: if you do not have permission to run docker, it might be necessary to add yourself to the docker group. Run sudo usermod -aG docker $USER and log out and back in.


For production, install elastic normally, preferably on more than 1 node, or see for more information on installing elastic through docker on production systems.

For configuring elastic for AmCAT, see the Dockerfile

Setting up the database

Whichever way you installed AmCAT, you need to call the migrate command to populate the database and set the elasticsearch mapping:

sudo -u postgres createuser -s $USER
createdb amcat
env/bin/python -m amcat.manage migrate

You can create a superuser by running:

env/bin/python -m amcat.manage createsuperuser

Collecting static files

AmCAT uses bower to install javascript/CSS libraries. Install bower by using npm, and then run bower install from the amcat folder:

sudo npm install -g bower
bower install

Start AmCAT web server

For debugging, it is easiest to start amcat using runserver:

env/bin/python -m amcat.manage runserver

Start celery worker

Finally, to use the query screen you need to start a celery worker. In a new terminal, type:

env/bin/python -m amcat.manage celery worker -l info -Q amcat

(if you are using a virtual environment, make sure to activate that first)

Configuring AmCAT

The main configuration parameters for AmCAT reside in the settings folder. In many places, these settings are defaults that can be overridden with environment variables.