---
title: "Deploy Mailcheap"
description: "Self-hosted newsletters on Amazon SES with image uploads on Railway."
category: "Other"
url: https://railway.com/deploy/mailcheap
---

# Deploy Mailcheap

Self-hosted newsletters on Amazon SES with image uploads on Railway.

**[Deploy Mailcheap on Railway](https://railway.com/template/mailcheap)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/mailcheap/manifest.json

- **Creator:** Aydin
- **Category:** Other

## Template content

### Mailcheap https://raw.githubusercontent.com/marclou/mailcheap/67d13b028a6ecae9ec56d49c4b2db58019217eba/app/icon.svg

- **Source:** aimranov27/mailcheap-railway
- **Health check:** /login
- **Public domain:** Yes

### MongoDB https://devicons.railway.app/i/mongodb.svg

- **Image:** mongo:8.2
- **Start command:** `docker-entrypoint.sh mongod --ipv6 --bind_ip ::,0.0.0.0 --setParameter diagnosticDataCollectionEnabled=false`

## Documentation

# Deploy and Host Mailcheap on Railway

Mailcheap is Marc Lou's open-source newsletter app on Amazon SES. Write an issue in a rich editor, send it to your list, and publish it on a public archive with a signup form. You pay SES for the emails you send, about $0.10 per 1,000, instead of a monthly fee per subscriber.

## About Hosting Mailcheap

This template builds Mailcheap from source and runs it next to a private MongoDB database. The admin password and session secret are generated, so the dashboard is locked from the first boot.

After deploying, open `/login` on your Railway domain and sign in with `ADMIN_EMAIL` and `ADMIN_PASSWORD` from the Mailcheap service's Variables tab. Create a newsletter and turn on its archive to start collecting subscribers. To send, add your Amazon SES keys and Upstash QStash keys, then set `SENDING_ENABLED` to `true`.

The template is pinned to a tested Mailcheap commit. A daily GitHub Action checks upstream, builds the new commit and runs a smoke test before it is published. You get an update notice in Railway and can apply it when you want.

## Common Use Cases

- Run a weekly newsletter for a product, blog or community without per-subscriber pricing
- Collect signups from your website through the signup form or the API
- Publish every issue on a public web archive with share images and a sitemap
- Import a list from another newsletter platform from CSV

## Dependencies for Mailcheap Hosting

- MongoDB (included in this template)
- An Amazon SES account with a verified domain, for sending
- An Upstash QStash account (free tier to start), for campaign sends and scheduling

### Deployment Dependencies

- Mailcheap: https://github.com/marclou/mailcheap
- Template source: https://github.com/aimranov27/mailcheap-railway
- Amazon SES: https://aws.amazon.com/ses/
- Upstash QStash: https://upstash.com/docs/qstash

### Implementation Details

- Contacts, campaigns and stats live in MongoDB on its own volume.
- Upstream stores editor images in Vercel Blob. This template saves them on the Mailcheap volume at `/data/uploads` instead and serves them from your domain, so uploads work without a Vercel account.
- Links in emails and image URLs use `APP_URL`. If you add a custom domain, update `APP_URL` before your first send.
- Rate limits are counted in memory, which works for a single service. Upstash Redis is not needed.
- Nothing is sent until `SENDING_ENABLED` is `true`.

## Why Deploy Mailcheap 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 Mailcheap 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.

## Similar templates

- [Rocky Linux](https://railway.com/deploy/rocky-linux) — Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀
- [Foundry Virtual Tabletop](https://railway.com/deploy/X5tR6G) — A Self-Hosted & Modern Roleplaying Platform
- [Letta Code Remote](https://railway.com/deploy/letta-code-remote) — Run a Letta Code agent 24/7. No inbound ports, just deploy.

Open this page in a browser: https://railway.com/deploy/mailcheap
