1
Choose a runtime
Use Docker Compose for a single-host install or Helm for Kubernetes.
Docker Compose
Run the stack from the repository root with
docker compose.Helm
Install the chart from the GHCR OCI artifact.
2
Prepare the admin instance
Configure the public hostname, admin Cloudflare OAuth app, service-level Cloudflare Worker, R2 archive bucket, internal service secrets, and optional admin transactional SMTP settings described in the setup guide.
Self-Host Setup
Required Cloudflare, Worker, R2, secret, SMTP, and first-domain setup requirements.
3
Expose the web server
Route the configured public hostname to the web server. The same origin serves the web app and
POST /rpc/agent-mail/ingest/v1/{connectionPublicId}.Public Ingress
Use direct ingress, Cloudflare Tunnel, Tailscale Funnel, or another operator-owned reverse proxy.
4
Start the stack
For Compose, start the containers:For Helm, install or upgrade the release:
5
Sign in and provision a domain
Open the configured public hostname, sign in, connect Cloudflare through the web UI, select the mail zone, and let AgentTeam Email provision DNS, Email Routing, Worker state, and archive bindings for that domain.
Domain Provisioning
Domain setup is a signed-in user flow, not an admin environment-variable flow.
6
Validate the deployment
Check the health endpoint, verify the ingest route rejects unsigned requests, send test mail, and confirm the R2 archive objects and mailbox delivery.
Validation
Deployment checks for web, ingest, archive, inbound delivery, and outbound sending.