Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

FragDenStaat CI is the German instance of Froide – a freedom of information portal software.

Development environment is a Django app with a PostgreSQL+PostGIS database and elasticsearch search service. There is a production deployment ansible configuration for details.. If you want an easy start, please use the below instructions with Docker (note that this is for convenience and that the actual deployment does not use Docker at the moment).

If you do not want to use Docker, you can install this like any Django project with dependencies and services.

Setup dev environment is a Django project that uses the core froide project and other froide Django apps as plugins. These froide and related apps are installed from repositories and it makes sense to set them up on your dev machine.

You need to have installed:

  • Python 3.8+
  • yarn
  • GDAL for Django's GeoDjango
  • freetype and imagemagick
  • postgresql bindings
  • poppler
  • qpdf
  • pango
  • libgeoip
  • libmagic

All of these dependencies should be installable via package managers (e.g. brew on macOS).

To make the setup easier the following script ( creates a virtual environment, sets up and installs all repos of the Python backend and installs and links all repos of the JavaScript frontend build.

cd project-dir
curl | bash

To update your setup later:

cd project-dir
bash fragdenstaat_de/

Start services

You can run your own Postgres+PostGIS database and Elasticsearch service or run them with Docker.

You need docker and docker-compose. Make sure Docker is running and use the following command:

docker-compose -f up

This will start Postgres and Elasticsearch and listen on port 5432 and 9200 respectively. You can adjust the port mapping in the

Setup database

If you need to adjust settings, you can copy the fragdenstaat_de/settings/ to fragdenstaat_de/settings/ and edit it.

To initialise the database:

# Activate virtualenv
source fds-env/bin/activate
cd fragdenstaat_de
# Create database structure
python migrate --skip-checks

To get started with some data:

# Load initial data (e.g. some CMS test fixtures)
python loaddata tests/fixtures/cms.json
# Create a superuser
python createsuperuser
# Create and populate search index
python search_index --create
python search_index --populate

Import SQL dumps

Example of loading SQL dumps into Docker postgres:

docker-compose -f exec db dropdb -U fragdenstaat_de fragdenstaat_de
docker-compose -f exec db createdb -U fragdenstaat_de -O fragdenstaat_de fragdenstaat_de
gunzip -k -c dump.sql.gz | docker-compose -f exec -T db psql -U fragdenstaat_de

Quick start after setup

source fds-env/bin/activate
cd fragdenstaat_de
# Start service in background with -d
docker-compose -f up -d
python runserver

Frontend development

cd fragdenstaat_de
yarn run serve

Upgrade dependencies

Currently pip-compile only works for pip-tools==6.3.0 and pip==21.2.4.

pip-compile -U
pip-compile -U
pip-compile -U

Main app dependencies

The fragdenstaat_de project depends on froide, multiple froide-related apps.

flowchart LR


Froide and fragdenstaat_de are licensed under the AGPL License.

Some folders contain an attributions.txt with more information about the copyright holders for files in this specific folder.