A guide to setting up the nostr-watch monorepo for local development.
- Node.js >= 20 (managed via Volta —
volta install node) - pnpm >= 8 (
npm install -g pnpmor see pnpm install docs) - Git
Optional (for specific packages):
- Deno >= 1.4 — required for
apps/trawler - Docker + Docker Compose — required for
apps/docker-stacksand local infrastructure
# Clone the repository
git clone https://github.com/sandwichfarm/nostr-watch.git
cd nostr-watch
# Install all workspace dependencies
pnpm installpnpm build# Run tests for all packages
pnpm -r test
# Run tests for a specific package
pnpm --filter @nostrwatch/auditor testpnpm docs:devThen open http://localhost:5173.
pnpm lint:docs# Start the GUI in dev mode
pnpm --filter @nostrwatch/gui dev
# Start the relay state machine
pnpm --filter @nostrwatch/rstate devPackages are organized into three directories:
apps/— Product applications (services, dashboards)libraries/— Shared reusable librariesinternal/— Internal infrastructure (logging, caching, utilities)
Cross-package imports use @nostrwatch/* scoped names, resolved automatically by pnpm workspaces.
- Architecture Overview — Understand how packages relate
- All Packages — Browse the full package catalog