Setup
Clone, install, and run the Reloop monorepo locally.
One command from the monorepo root. Full stack at https://local.reloop.sh.
Prerequisites
| Tool | Notes |
|---|---|
| Bun | v1.3.0+ |
| Docker Desktop | Postgres, Redis, Caddy, NATS, Mailpit |
| mkcert | Local TLS (brew install mkcert on macOS) |
| Git | Clone the repository |
Quick start
git clone git@github.com:reloop-labs/reloop.git
cd reloop
bun setup --startbun setup only pauses for sudo (hosts / mkcert trust) or a missing tool.
After setup
What bun setup does
Check Bun and Docker
Verifies Bun v1.3+, Docker CLI, and a running daemon. Checks mkcert unless you pass --skip-tls.
Map the local domain
Adds 127.0.0.1 local.reloop.sh to /etc/hosts (sudo once if needed).
Generate TLS certs
Creates trusted PEMs in local/certs/ with mkcert for Caddy HTTPS.
Install dependencies
Runs bun install when node_modules is missing (or always with --force).
Write environment files
Copies .env.dev → .env for backends, packages/db, and frontends.
Start Docker and wait for Postgres
Brings up core infra, then waits until Postgres is healthy.
Apply the database schema
Runs bun db:push.
Flags
| Flag | Effect |
|---|---|
--start | Run bun dev when setup finishes |
--force | Re-run bun install even if node_modules exists |
--skip-docker | Skip Docker and db:push |
--skip-hosts | Skip the /etc/hosts entry |
--skip-tls | Skip cert generation (existing PEMs required) |
--with-edge | Also start smtp/inbound (needs free 25 / 465 / 587) |
Manual setup
Use this only when debugging a specific stage. Run steps in order from the monorepo root.
Clone and install
git clone git@github.com:reloop-labs/reloop.git
cd reloop
bun installMap local domain
echo "127.0.0.1 local.reloop.sh" | sudo tee -a /etc/hostsWindows (PowerShell as Administrator):
Add-Content -Path $env:windir\System32\drivers\etc\hosts -Value "127.0.0.1`tlocal.reloop.sh"Generate TLS certs
Caddy serves HTTPS from local/certs/ (gitignored). Generate once:
brew install mkcert # macOS
mkcert -install
mkdir -p local/certs
mkcert -cert-file local/certs/local.reloop.sh.pem \
-key-file local/certs/local.reloop.sh-key.pem \
local.reloop.sh "*.local.reloop.sh"Start Docker
bun docker:upOptional real SMTP/MX edge (often blocked by host mail or privileged port 25):
bun docker:up:edgeFree 80, 443, 5432, and 6379 first. Edge mail also needs 25 / 465 / 587. See Port.
Initialize database
Wait for Postgres, then:
bun db:pushConfigure environment
bun env:setupCopies .env.dev → .env for backends, packages/db, and web / docs / links. Frontends also ship committed .env files with local defaults.
One service manually:
cp apps/backend/auth/.env.dev apps/backend/auth/.envStart dev servers
bun devOr a subset:
bun frontend:dev # frontends only
bun backend:dev # backends onlyCommands
| Command | Description |
|---|---|
bun setup | One-command local bootstrap |
bun setup --start | Bootstrap, then bun dev |
bun dev | All frontend and backend dev servers |
bun frontend:dev | Frontends only |
bun backend:dev | Backends only |
bun docker:up | Core Docker infra |
bun docker:up:edge | Optional smtp/inbound |
bun docker:down | Stop containers |
bun env:setup | Generate .env files |
bun db:push | Apply Drizzle schema |
bun db:studio | Open Drizzle Studio |
bun run check | Lint and format |
Next
Was this page helpful?