Domain
Set up, configure, and run the Reloop domain microservice locally.
Complete Base Setup First
Ensure you've finished the Setup — before proceeding.
Service Overview
Custom sending domains, DKIM keys, DNS verification, and tracking subdomain setup.
| Property | Value |
|---|---|
| Directory | apps/backend/domain |
| Port | 8011 |
| Local URL | https://local.reloop.sh/api/domain |
| Swagger UI | https://local.reloop.sh/api/domain/openapi |
| Stack | ElysiaJS PostgreSQL Redis NATS |
Quick Start
Run from the monorepo root:
bun be:domain:dev
The service starts with hot reloading on port 8011.
Environment Configuration
Variables live in apps/backend/domain/.env. Running bun env:setup from the root auto-populates this file.
PG_URL=postgresql://reloop:reloop123@localhost:5432/reloop
REDIS_URL=redis://:reloop123@localhost:6379
PORT=8011
BASE_URL="https://local.reloop.sh"
HOST_DOMAIN=reloop.sh
DKIM_SELECTOR=reloop
NATS_URL=nats://localhost:4222
NODE_ENV=development
Reference Table
| Variable | Required | Default |
|---|---|---|
PG_URL | YES | postgresql://... |
REDIS_URL | YES | redis://... |
PORT | YES | 8011 |
BASE_URL | YES | https://local.reloop.sh |
HOST_DOMAIN | YES | reloop.sh |
DKIM_SELECTOR | YES | reloop |
NATS_URL | YES | nats://localhost:4222 |
Development Commands
| Command | Description |
|---|---|
bun be:domain:dev | Start dev server with hot reloading |
bun run --filter=domain-service build | Compile production bundle |
bun run --filter=domain-service start | Run compiled production build |
bun run --filter=domain-service check-types | TypeScript type-check |
Architecture
| Layer | Detail |
|---|---|
| DNS verification | Validates DKIM, SPF, DMARC, MX, and CNAME records per domain capability toggles. |
| Inbound validation | Used by the inbound MTA to verify recipient addresses. |
| Schema | domain and domain_dns_record in packages/db/src/schema/domain.ts. |
| Events | Publishes domain lifecycle events to NATS. |
Was this page helpful?