Setup

Clone, install, and run the Reloop monorepo locally.

One command from the monorepo root. Full stack at https://local.reloop.sh.

Prerequisites

ToolNotes
Bunv1.3.0+
Docker DesktopPostgres, Redis, Caddy, NATS, Mailpit
mkcertLocal TLS (brew install mkcert on macOS)
GitClone the repository

Quick start

git clone git@github.com:reloop-labs/reloop.git
cd reloop
bun setup --start

bun setup only pauses for sudo (hosts / mkcert trust) or a missing tool.

After setup

Sign up with any email. Local OTP is always 888888.

Open https://local.reloop.sh (not localhost) so auth cookies work across services.

What bun setup does

1

Check Bun and Docker

Verifies Bun v1.3+, Docker CLI, and a running daemon. Checks mkcert unless you pass --skip-tls.

2

Map the local domain

Adds 127.0.0.1 local.reloop.sh to /etc/hosts (sudo once if needed).

3

Generate TLS certs

Creates trusted PEMs in local/certs/ with mkcert for Caddy HTTPS.

4

Install dependencies

Runs bun install when node_modules is missing (or always with --force).

5

Write environment files

Copies .env.dev.env for backends, packages/db, and frontends.

6

Start Docker and wait for Postgres

Brings up core infra, then waits until Postgres is healthy.

7

Apply the database schema

Runs bun db:push.

Flags

FlagEffect
--startRun bun dev when setup finishes
--forceRe-run bun install even if node_modules exists
--skip-dockerSkip Docker and db:push
--skip-hostsSkip the /etc/hosts entry
--skip-tlsSkip cert generation (existing PEMs required)
--with-edgeAlso 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.

Skipping or reordering steps can cause database connection errors or broken routing.

1

Clone and install

git clone git@github.com:reloop-labs/reloop.git
cd reloop
bun install
2

Map local domain

echo "127.0.0.1 local.reloop.sh" | sudo tee -a /etc/hosts

Windows (PowerShell as Administrator):

Add-Content -Path $env:windir\System32\drivers\etc\hosts -Value "127.0.0.1`tlocal.reloop.sh"
3

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"
4

Start Docker

bun docker:up

Optional real SMTP/MX edge (often blocked by host mail or privileged port 25):

bun docker:up:edge

Free 80, 443, 5432, and 6379 first. Edge mail also needs 25 / 465 / 587. See Port.

5

Initialize database

Wait for Postgres, then:

bun db:push
6

Configure environment

bun env:setup

Copies .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/.env
7

Start dev servers

bun dev

Or a subset:

bun frontend:dev   # frontends only
bun backend:dev    # backends only

Commands

CommandDescription
bun setupOne-command local bootstrap
bun setup --startBootstrap, then bun dev
bun devAll frontend and backend dev servers
bun frontend:devFrontends only
bun backend:devBackends only
bun docker:upCore Docker infra
bun docker:up:edgeOptional smtp/inbound
bun docker:downStop containers
bun env:setupGenerate .env files
bun db:pushApply Drizzle schema
bun db:studioOpen Drizzle Studio
bun run checkLint and format

Next

Was this page helpful?

Edit this page