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?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
February 10, 2023 13:42
January 29, 2019 15:55
September 5, 2022 15:49
April 8, 2021 09:57
April 4, 2022 10:33
May 4, 2011 17:52
December 5, 2013 19:50
November 2, 2022 10:57
December 27, 2020 09:29
February 20, 2023 17:28
September 29, 2022 10:30
September 5, 2022 15:49
September 5, 2022 15:49
December 19, 2022 10:22


Froide CI

Froide is a Freedom Of Information Portal using Django 3.2 on Python 3.8+.

It is used by the German and the Austrian FOI site, but it is fully internationalized and written in English.

Development on Froide

After clone, create a Python 3.8+ virtual environment and install dependencies:

python3 -m venv froide-env
source froide-env/bin/activate

# Install dev dependencies
pip install -r requirements-test.txt

# Install git pre-commit hook
pre-commit install

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 up

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

Setup database and search index, start server

If you need to adjust settings, you can copy the froide/ to froide/ and edit it. More steps:

# To initialise the database:
python migrate --skip-checks
# Create a superuser
python createsuperuser
# Create and populate search index
python search_index --create
python search_index --populate
# Run the Django development server
python runserver

Run tests

Make sure the services are running.

# Run all tests
make test
# Run only unit/integration tests
make testci
# Run only end-to-end tests
make testui

Development tooling

For Python code, we use flake8 following black code style. JavaScript, Vue and SCSS files are formatted and linted with ESLint and Prettier.

Make sure to have pre-commit hooks registered (pre-commit install). For VSCode, the Python, ESLint and Vetur extensions are helpful, with these workspace settings recommended:

  "eslint.format.enable": true,
  "eslint.packageManager": "yarn",
  "vetur.format.defaultFormatter.css": "prettier",
  "vetur.format.defaultFormatter.html": "prettier",
  "vetur.format.defaultFormatter.js": "prettier-eslint"

Upgrade dependencies

# with pip-tools
pip-compile -U
pip-compile -U


Read the documentation including a Getting Started Guide.

Froide is supported by the Open Knowledge Foundation Germany and Open Knowledge Foundation International.


Froide is licensed under the MIT License.