Requirements
Go 1.22+
The backend is written in Go and requires CGO (for SQLite). Make sure
gcc is available on your system.Node.js 20+ & pnpm
The dashboard and client SDK are built with Vite and managed in a pnpm workspace.
Task
Task is the task runner used for all dev and build commands. Install it from taskfile.dev.pnpm
Install pnpm globally:
npm install -g pnpmStarting the Development Servers
The backend and dashboard are started in separate terminals. They run independently and communicate over HTTP.Start the Go backend (Terminal 1)
go run main.go from the cmd/server directory. The backend starts on :8080 and logs the address and database path:The server creates
./data/iris.db (relative to cmd/server/) on first run. This file is your local SQLite database.Start the React dashboard (Terminal 2)
pnpm dev inside the dashboard/ package. Vite starts the dev server on :5173 and automatically proxies all /api requests to the backend on :8080.Open http://localhost:5173/ to view the dashboard with hot-module replacement.How the Two Processes Fit Together
| Process | Command | Port | What it does |
|---|---|---|---|
| Go backend | task dev:backend | :8080 | Serves /api/* routes and reads/writes iris.db |
| Vite dashboard | task dev:dashboard | :5173 | Serves the React app with HMR; proxies /api to :8080 |
:5173 — API calls from the dashboard are forwarded to the running Go server transparently.
Database File Location
When runningtask dev:backend, the SQLite database is created at:
cmd/server directory (the dir set in Taskfile.yml). The data/ directory is created automatically if it does not exist.
Building for Production
To produce a production-ready build of the entire project (Go binary + compiled dashboard), run:build:backend and build:js in parallel:
dist/iris-server. The dashboard static files are written to dashboard/dist/. These match the paths expected by the Dockerfile when building the Docker image.
To publish the client SDK to npm, run:
pnpm build then npm publish from the web/ directory, which publishes @bigchill101/iris to the npm registry.
Taskfile Reference
Taskfile.yml