OPEN/REPORTING

Installation

Run Open Reporting locally in under 5 minutes — with Docker or manually.

Installation

You can run Open Reporting with Docker Compose (easiest) or start each service manually.

Option A — Docker Compose

Clone the repo

git clone https://github.com/fhagelund/open-reporting.git
cd open-reporting

Configure environment variables

cp backend/.env.example backend/.env
cp frontend/.env.example frontend/.env

At minimum, set a strong SECRET_KEY in backend/.env:

# backend/.env
SECRET_KEY=your-very-long-random-secret

Generate one with: openssl rand -hex 32

Start the stack

docker-compose up --build
ServiceURL
Frontendhttp://localhost:5173
Backend APIhttp://localhost:8000
API Docs (Swagger)http://localhost:8000/docs

Seed demo data (optional)

docker-compose exec backend uv run python -m app.seed

This populates the database with sample agents, spaces, and reports so you can explore the UI immediately.


Option B — Manual Setup

Run each service in a separate terminal.

Backend

cd backend

# Install dependencies (requires uv — https://docs.astral.sh/uv/)
uv sync

# Copy and edit environment variables
cp .env.example .env

# Start the API server
uv run uvicorn app.main:app --reload

The API is available at http://localhost:8000. Swagger UI is at /docs.

Frontend

cd frontend

npm install

# Copy and edit environment variables
cp .env.example .env

npm run dev

The frontend is available at http://localhost:5173.

Seed demo data

cd backend
uv run python -m app.seed

First login

Once the stack is running, open http://localhost:5173.

By default the app uses local auth (email + password). Register an account — the first account created is automatically given the ADMIN role.

To enable Google OAuth instead, set AUTH_PROVIDER=google and configure your Google client credentials in backend/.env. See the Configuration reference for details.


Next steps

On this page