---
title: Services
description: Detailed architecture flow and internal/external services breakdown.
---
> For the complete documentation index, see [llms-docs.txt](/llms-docs.txt) or the site index [llms.txt](/llms.txt). Full docs corpus: [llms-full-docs.txt](/llms-full-docs.txt). Prefer markdown URLs (append `.md`) for agent consumption. Product skill: [skill.md](/skill.md).


Reloop is built using a highly modular microservice architecture. This separation allows you to scale specific components (such as mail queues or logs processing) depending on your server workload.


## Component Breakdown

The Reloop stack consists of **20 application services** (3 frontends, 17 backends) and **9 external backing systems**.

### 1. Frontend Services (3)
* **`web`**: The main public landing page and landing website.
* **`dashboard`**: The developer console where users manage domains, write templates, view delivery metrics, configure webhooks, and generate API keys.
* **`docs`**: The documentation portal you are viewing right now.

### 2. Backend Services (16)
* **`auth`**: Handles user registrations, authentications, and organization-scoped permission checks.
* **`api-key`**: Validates developer API tokens for programmatic integrations.
* **`domain`**: Verifies and manages domain records configurations (SPF, DKIM, MX, DMARC).
* **`mail`**: Manages template assembly, parsing, queuing, and delivery job dispatching.
* **`webhook`**: Dispatches delivery events (delivered, bounced, opened, clicked) to external webhooks.
* **`contacts`**: Handles subscriber lists, contact profiles, segments, and unsubscribe requests.
* **`logs`**: Centralizes activity streams and debug logs.
* **`workflow`**: Manages campaign automation workflows, timing wait steps, and drip actions.
* **`upload`**: Manages file storage attachments and static image uploads.
* **`template`**: Compiles dynamic template variables before mailing dispatch.
* **`campaigns`**: Broadcast campaigns with audience snapshot, schedule, send, and engagement stats.
* **`credits`**: Tracks account credit balances, billing cycles, and quotas.
* **`email`**: The core API service mapping outbound HTTP sending requests to the queue processor.
* **`inbox`**: Manages receiving inbox threads and incoming messages.
* **`smtp`**: Outbound SMTP submission server using KumoMTA.
* **`inbound`**: Inbound MX SMTP processing receiver using KumoMTA.
* **`spam`**: Anti-spam scoring backend using Rspamd (called by inbound over HTTP).

### 3. Supporting Infrastructure (6)
* **PostgreSQL**: Stores persistent relational data, email delivery logs, and activity logs.
* **Redis**: Coordinates task queues for BullMQ worker threads.
* **MinIO**: S3-compliant file storage.
* **NATS JetStream**: Real-time event broker.
* **Mailpit**: SMTP sandbox mail catcher.
* **Caddy**: High-performance reverse proxy and automatic SSL manager.

---

## What the VPS installer deploys

The [one-command VPS installer](/docs/self-host/vps) deploys a reduced set: 20 containers instead of the full platform. It leaves out the pieces that only exist for the hosted service:

| Left out | Why |
| :--- | :--- |
| `web`, `docs` | Public marketing site and documentation; `/docs` redirects to reloop.sh |
| `credits` | Billing and quota metering; self-hosted sending is not metered |
| `tools` | Public email-validation tools |
| `admin`, `console` | Operator tooling for the hosted platform |
| MinIO | Point `upload` at any S3-compatible provider instead |
| Mailpit | Development mail catcher, never used in production |

`upload` is deployed only when you configure S3 storage during install.
