---
title: "Deploy Listmonk"
description: "Self-hosted newsletter & mailing list manager"
category: "Automation"
url: https://railway.com/deploy/listmonk-3
---

# Deploy Listmonk

Self-hosted newsletter & mailing list manager

**[Deploy Listmonk on Railway](https://railway.com/template/listmonk-3)**

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

- **Creator:** mcmax
- **Category:** Automation

## Template content

### listmonk

- **Source:** https://github.com/mc9max/listmonk-lite
- **Public domain:** Yes

### postgres

- **Source:** https://github.com/mc9max/listmonk-lite

## Documentation

[![Deploy on Railway](https://railway.app/button.svg)](https://railway.com/deploy/listmonk-3?utm_campaign=listmonk-lite)

# Deploy and Host

Self-hosted newsletter and mailing-list manager (listmonk v6.2.0, AGPL-3.0) with a PostgreSQL 16 companion. One-click deploy: the form has zero fields — the Postgres password is auto-generated and the app is auto-wired over the private network. First boot installs the schema; the setup wizard on the public URL creates your superuser.

## About Hosting

- Services: `listmonk` (Go binary) + `postgres` (PostgreSQL 16)
- Volumes: 2 — Postgres data at `/var/lib/postgresql/data`, app uploads at `/data` (`listmonk-data`)
- Memory at rest: ~30–60 MB app, ~100–200 MB Postgres
- Healthcheck: `GET /health` → 200 (public, unauthenticated)

## Why Deploy

Own your mailing list instead of renting it per subscriber. Listmonk gives you unlimited lists and subscribers, a visual campaign editor, scheduling, bounce handling, and open/click analytics — you only pay Railway usage plus your SMTP provider.

## Common Use Cases

- Newsletters for blogs, products, and communities
- Launch announcements and drip campaigns
- Bulk mail via the REST API (digests, notifications)
- Multi-list audiences with segments and custom attributes

## Dependencies for

### Deployment Dependencies

- Railway Hobby plan or higher (Postgres volume needs a few GB)
- After deploy: create the superuser in the setup wizard, then configure SMTP in **Settings → SMTP** before sending. SMTP lives in the database, not in env vars.

**Environment reference (condensed):** `LISTMONK_db__host` = `${{postgres.RAILWAY_PRIVATE_DOMAIN}}`, `LISTMONK_db__password` = `${{postgres.POSTGRES_PASSWORD}}`, `POSTGRES_PASSWORD` = `${{secret(32)}}` — all auto-wired. Baked into the image: `LISTMONK_db__port=5432`, `LISTMONK_db__user=listmonk`, `LISTMONK_db__database=listmonk`, `LISTMONK_db__ssl_mode=disable`, `LISTMONK_upload__filesystem__upload_path=/data/uploads` (volume-persisted). The entrypoint also rewrites two DB-seeded settings listmonk loads over env vars: `upload.filesystem.upload_path` → `/data/uploads` and `app.root_url` → the public domain. Optional, set later: `LISTMONK_ADMIN_USER` + `LISTMONK_ADMIN_PASSWORD` (skip the web wizard), `LISTMONK_ADMIN_API_USER`.


## Similar templates

- [N8N Main + Worker](https://railway.com/deploy/n8n-main-worker) — Deploy and Host N8N with Inactive worker.
- [Evolution API with n8n](https://railway.com/deploy/evolution-api-with-n8n) — Automate WhatsApp workflows with Evolution API, n8n, and Postgres.
- [Postgres Backup](https://railway.com/deploy/postgres-s3-backups) — Cron-based PostgreSQL backup to bucket storage

Open this page in a browser: https://railway.com/deploy/listmonk-3
