Skip to content

Development

Setup

git clone https://github.com/niuulabs/volundr.git
cd volundr
uv sync --all-extras --dev

# Web UI
cd web && npm install

Project structure

volundr/
├── src/volundr/        # Python backend
│   ├── domain/         # Models, ports, services
│   ├── adapters/       # Inbound (REST) and outbound (infra)
│   ├── infrastructure/ # Database setup
│   ├── skuld/          # WebSocket broker
│   └── config.py       # Settings
├── web/                # React frontend
├── tests/              # Backend tests
├── charts/             # Helm charts
│   ├── volundr/        # API server chart
│   └── skuld/          # Broker chart
├── migrations/         # SQL migrations
└── docs/               # Documentation site

Running locally

# Start PostgreSQL
docker run -d --name volundr-pg \
  -e POSTGRES_USER=volundr -e POSTGRES_PASSWORD=volundr -e POSTGRES_DB=volundr \
  -p 5432:5432 postgres:16

# Start the API
uv run uvicorn volundr.main:app --reload --port 8080

# Start the UI (separate terminal)
cd web && npm run dev

Entry points

Command Description
uv run volundr API server (production)
uv run skuld Skuld broker
uv run uvicorn volundr.main:app --reload API with auto-reload

Commit messages

Follow Conventional Commits:

feat(sessions): add archive-stopped bulk operation
fix(chronicles): prevent duplicate timeline events
docs: update API reference
test(tracker): add Jira adapter unit tests

See Code Style for formatting and architecture rules.