Auth
Set up, configure, and run the Reloop auth microservice locally.
User signup, login, sessions, organizations, and workspace membership via Better Auth.
Overview
| Property | Value |
|---|---|
| Directory | apps/backend/auth |
| Port | 8000 |
| Local URL | https://local.reloop.sh/api/auth |
| Swagger UI | https://local.reloop.sh/api/auth/openapi |
| Stack | ElysiaJS · Better Auth · PostgreSQL · Redis · NATS |
Quick start
bun be:auth:dev
Or start every backend: bun backend:dev / bun dev.
Environment
apps/backend/auth/.env — created/merged by bun setup / bun env:setup from .env.dev.
# Database & Cache
PG_URL=postgresql://reloop:reloop123@localhost:5432/reloop
REDIS_URL=redis://:reloop123@localhost:6379
# Better Auth
BETTER_AUTH_SECRET=tENkVU4GrhckuRw4Bcfh93EWgXOFcszn
BASE_URL="https://local.reloop.sh"
PORT=8000
NODE_ENV=development
# Event Bus
NATS_URL=nats://localhost:4222
# Local dev helpers
DEFAULT_OTP=888888
DISABLE_SIGNUP=false
# OAuth (optional)
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=
| Variable | Required | Default | Notes |
|---|---|---|---|
PG_URL | YES | postgresql://... | Shared Postgres from Docker |
REDIS_URL | YES | redis://... | Sessions and rate limits |
BETTER_AUTH_SECRET | YES | — | Session encryption key |
BASE_URL | YES | https://local.reloop.sh | Public origin for OAuth / invites |
PORT | YES | 8000 | Host port |
NATS_URL | YES | nats://localhost:4222 | Event bus |
DEFAULT_OTP | No | 888888 | Dev OTP bypass |
DISABLE_SIGNUP | No | false | Set true after creating an admin |
Commands
| Command | Description |
|---|---|
bun be:auth:dev | Start dev server with hot reloading |
bun run --filter=be-auth build | Compile production bundle |
bun run --filter=be-auth start | Run compiled production build |
bun run --filter=be-auth check-types | TypeScript type-check |
Architecture
| Layer | Detail |
|---|---|
| Sessions | Better Auth manages login, OAuth, and cookie sessions via Redis + Postgres |
| Multi-tenancy | Users belong to organizations through member (packages/db/src/schema/auth.ts) |
| Events | Auth lifecycle events published to NATS under auth.* |
| First login | Use OTP 888888 locally when DEFAULT_OTP is set |
Next
Was this page helpful?
- Need help? Contact Support.
- Chat with Reloop developers on Discord.
- Check out our changelog.
- Questions? Contact Sales.
- LLM? Read llms.txt.