Skip to main content
This guide uses Docker Compose — the fastest and most reliable way to spin up all services together. Make sure you have Docker and Docker Compose installed before continuing.
1

Clone the repository

Fork and clone the Serenata de Amor repository to your local machine:
git clone https://github.com/okfn-brasil/serenata-de-amor.git
cd serenata-de-amor
2

Copy the environment file

Copy the sample environment file to the project root. This file contains all the environment variables Jarbas needs to run:
cp contrib/.env.sample .env
The defaults in .env are ready for local development. See the Configuration page to customize any values.
3

Start all services

Bring up the full stack — Django, Celery, RabbitMQ, Memcached, and Elm — with a single command:
docker-compose up
This step verifies that all dependencies are installed and services start correctly. Jarbas itself still requires database migrations and seed data before it is usable (see the steps below).
4

Run Rosie to generate suspicions data

Rosie is the AI that analyses congressional expense reimbursements and flags suspicious ones. Run her against the Chamber of Deputies dataset:
docker-compose run --rm rosie python rosie.py run chamber_of_deputies
After completion, Rosie produces a suspicions.xz file containing all detected irregularities. You can also run her against the Federal Senate:
docker-compose run --rm rosie python rosie.py run federal_senate
5

Apply database migrations

Run Django migrations to create the initial database schema:
docker-compose run --rm django python manage.py migrate
6

Seed the database with sample data

Load reimbursements, company records, and suspicions from the bundled sample files:
docker-compose run --rm django python manage.py reimbursements /mnt/data/reimbursements_sample.csv
docker-compose run --rm django python manage.py companies /mnt/data/companies_sample.xz
docker-compose run --rm django python manage.py suspicions /mnt/data/suspicions_sample.xz
docker-compose run --rm django python manage.py tweets
To load a full dataset instead of sample data, copy your reimbursements.xz, suspicions.xz, and companies.xz files to contrib/data/ and reference them via the /mnt/data/ path inside the container.
7

Build the search index

Generate the full-text search vector used by the Jarbas dashboard:
docker-compose run --rm django python manage.py searchvector
8

Start Jarbas

Spin up the Django web server:
docker-compose up django
Jarbas is now available at http://localhost:8000.

Verify everything is working

Run Django’s system checks and test suite to confirm the setup is healthy:
docker-compose run --rm django python manage.py check
docker-compose run --rm django python manage.py test

Next steps

Installation

Explore Docker and local install options in detail.

Configuration

Review all environment variables and tune your setup.

Build docs developers (and LLMs) love