Deploy Reloop | (Just Updated) Resend Alternative, Email API for Agents, No Setup

Reloop email API and dashboard, a Resend alternative with its own MTA

Deploy Reloop | (Just Updated) Resend Alternative, Email API for Agents, No Setup

Just deployed

/run/reloop

Just deployed

Just deployed

Just deployed

Just deployed

Just deployed

Just deployed

/var/spool/kumomta

Just deployed

Just deployed

/data

Just deployed

/var/lib/postgresql

Just deployed

/data

Just deployed

Just deployed

Just deployed

Just deployed

Just deployed

Just deployed

Just deployed

Just deployed

Just deployed

Deploy and Host Reloop on Railway

Built for an LLM agent to deploy and use. There is no setup wizard and nothing to fill in: the admin account, its password, the internal secrets and every database password are generated at deploy time, the first-run setup is completed at boot, and the contract below lists every URL, variable name and one script that proves it works.

Reloop is an open-source email platform: a REST API and dashboard for transactional email, with domains, templates, contacts, campaigns, webhooks and logs, built on its own MTA (KumoMTA). It is a self-hosted alternative to Resend and SendGrid. This template runs the full stack.

About Hosting Reloop

This template runs twenty services: a Caddy proxy that is the single public entry point, the auth service, the API services (domain, api-key, webhook, contacts, mail, logs, workflow, upload, template, campaigns, inbox, email), the smtp MTA, the dashboard and links frontends, and postgres, redis and nats as storage and messaging. Postgres, Redis, NATS and the MTA spool sit on volumes. All Reloop images are pinned by digest, so a redeploy never changes the version underneath you.

Everything is served from one domain, the proxy service: the dashboard at /dashboard, the APIs under /api/SERVICE/v1. The first sign-in is the admin user ADMIN_EMAIL (default admin@example.com) with ADMIN_PASSWORD, both on the auth service. Public sign-up is closed.

Limits to know before sending mail. Reloop sends from your own verified domain, so you add the domain, publish the DNS records it shows (SPF, DKIM, DMARC) and verify it before POST /api/mail/v1/send accepts a message. Railway allows outbound SMTP only on the Pro plan, and does not allow inbound port 25, so receiving mail at your own address is not possible on Railway. The API, dashboard, templates, contacts and API keys all work without that.

Agent contract

  • Public URL: https:// plus the RAILWAY_PUBLIC_DOMAIN of the proxy service, used below as RELOOP_URL
  • Private URL: http://auth.railway.internal:8000 (auth); the API services listen on 8011 to 8028 on their own SERVICE.railway.internal name
  • Credentials: ADMIN_EMAIL and ADMIN_PASSWORD on the auth service; API keys are minted through the API
  • Auth: sign in once to get a session cookie, mint an API key, then send it as the header x-api-key: KEY on every API call. No key returns 401.
  • Health: GET /healthz returns 200 with no credentials; GET /api/auth/v1/ok returns {"ok":true}
# run with RELOOP_URL, ADMIN_EMAIL and ADMIN_PASSWORD set
JAR=$(mktemp)
curl -s -o /dev/null -w 'health %{http_code}\n' "$RELOOP_URL/healthz"
curl -s -c "$JAR" -o /dev/null -w 'sign-in %{http_code}\n' -X POST "$RELOOP_URL/api/auth/v1/sign-in/email" \
  -H 'content-type: application/json' -d "{\"email\":\"$ADMIN_EMAIL\",\"password\":\"$ADMIN_PASSWORD\"}"
KEY=$(curl -s -b "$JAR" -X POST "$RELOOP_URL/api/api-key/v1/" -H 'content-type: application/json' -d '{"name":"agent"}' | grep -o '"key":"[^"]*"' | head -1 | cut -d'"' -f4)
echo "key ${#KEY} chars"
curl -s -o /dev/null -w 'list-with-key %{http_code}\n' "$RELOOP_URL/api/api-key/v1/" -H "x-api-key: $KEY"
curl -s -o /dev/null -w 'list-no-key %{http_code}\n' "$RELOOP_URL/api/api-key/v1/"

A fresh deploy prints health 200, sign-in 200, a key length above zero, list-with-key 200 and list-no-key 401. From there the same key drives the other services (/api/domain/v1, /api/template/v1, /api/contacts/v1, /api/mail/v1, and so on); the OpenAPI document of each is at its own /openapi path.

Why Deploy Reloop on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Reloop on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.

  • Agent-ready - generated secrets, a bootstrapped admin, a contract block and one working script; no wizard before the first API call.
  • One public domain - a single proxy fronts the dashboard and every API, with the services private behind it.
  • Redeploy-safe - databases, the broker and the MTA spool sit on volumes; passwords and secrets are stable across redeploys.
  • Pinned images - every Reloop image is pinned by digest.

Common Use Cases

  • Transactional email for your own product - send receipts, password resets and notifications through your own domain instead of a per-email hosted plan.
  • Email for AI agents - give an agent an API key to manage domains, templates and contacts and to send mail.
  • Campaigns and contact lists - run newsletters with templates, segments and webhooks on infrastructure you control.

Dependencies for Reloop Hosting

  • Postgres, Redis and NATS JetStream, all included in this template.
  • A sending domain whose DNS you control, and the Railway Pro plan for outbound SMTP.

Deployment Dependencies


Template Content

More templates in this category

View Template
Rocky Linux
Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀

codestorm
50
View Template
Foundry Virtual Tabletop
A Self-Hosted & Modern Roleplaying Platform

Lucas
71
View Template
Letta Code Remote
Run a Letta Code agent 24/7. No inbound ports, just deploy.

Letta
51