Skip to content

Install (local development)

Quayside runs as three pieces — a Python API service, a Python CLI, and a Next.js dashboard. The development setup uses Postgres via Docker and runs everything on your laptop.

Prerequisites

ToolWhyInstall
Dockerruns Postgres for dev and testdocker.com/products/docker-desktop
Python 3.12+API service + CLIpyenv install 3.12 or system package
uvfast Python project managercurl -LsSf https://astral.sh/uv/install.sh | sh
Node 20+dashboardnvm install 20

First-time setup

Terminal window
git clone <your-quayside-repo>
cd quayside
# Install everything — api + cli + dashboard
make install
# Bring up Postgres (dev DB on :5432, test DB on :5433)
make db-up
# Apply migrations and the dev seed (one class, one policy)
make db-reset-all

A few seconds later you have:

  • quayside and quayside_test databases, schemas applied
  • one seeded class dev/quayside-test with owner=dev@quayside.local
  • one seeded policy v1 enabling the null detector

Verify it works

Terminal window
# All tests pass — api + cli + dashboard
make test

You should see ~190 tests passing on the api side, ~23 on the cli, and a clean dashboard next build.

Run the development stack

In one terminal:

Terminal window
make dev

That starts the backend on http://localhost:8000 and the dashboard on http://localhost:3000. Both reload on file change. Ctrl-C stops both.

Or run them separately if you need finer control:

Terminal window
# Terminal 1
make dev-back
# Terminal 2
make dev-front

The dashboard rewrites /api/v1/* to the backend, so the browser only ever talks to :3000.

What’s next