Manual Setup
This is the development workflow: run the core engine and dashboard directly with bun, against a local TimescaleDB container. For a containerized production install, see Docker Compose.
1. Install dependencies
Section titled “1. Install dependencies”bun install2. Provision the database
Section titled “2. Provision the database”Run a local TimescaleDB via Docker Compose:
bun run db:startThis uses docker-compose.db.yml, which runs timescale/timescaledb:latest-pg17 and
exposes it on localhost:5432.
You can manage the container with bun run db:watch (tail logs), bun run db:stop, and
bun run db:down.
Alternatively, point at any existing PostgreSQL + TimescaleDB instance by setting
DATABASE_URL in apps/server/.env.
3. Configure environment
Section titled “3. Configure environment”Set connection details in apps/server/.env. The only truly required server variables are
DATABASE_URL, BETTER_AUTH_SECRET, BETTER_AUTH_URL, and CORS_ORIGIN; everything else
has a sensible default. See the full Environment Variables
reference.
4. Apply the schema and TimescaleDB objects
Section titled “4. Apply the schema and TimescaleDB objects”bun run db:migrateRuns the journaled migration runner: the Drizzle schema plus the TimescaleDB pipeline
(hypertable, continuous-aggregate rollups, policies) — the same thing production
deployments run before starting the server. For quick local schema prototyping,
bun run db:push + bun run db:timescale still work, but anything that ships must be a
generated migration (bun run db:generate, see packages/db/AGENTS.md).
5. Start the dev servers
Section titled “5. Start the dev servers”bun run devThis starts the core engine, the web dashboard, and tails the database together. To run a
single app, use bun run dev:web or bun run dev:server.
6. Open
Section titled “6. Open”- Dashboard: http://localhost:5173
- API + OpenAPI docs: http://localhost:3000
(Scalar UI at
/openapi)
On first launch you’ll go through onboarding to create the admin account.
See the Scripts reference for the full list of workspace commands.