Deploy Listmonk

Self-hosted newsletter & mailing list manager — own your data.

Deploy Listmonk

/var/lib/postgresql/data

Just deployed

/listmonk/uploads

Deploy and Host Listmonk on Railway

Listmonk is a self-hosted newsletter and mailing list manager: a single Go binary backed by Postgres that handles subscribers, segmentation, campaigns, templates, opt-in and bounce processing. It replaces Mailchimp, Sendinblue or ConvertKit for teams who would rather own their subscriber list than rent it, and it stays fast at list sizes where hosted tools start charging by the thousand.

About Hosting Listmonk

Listmonk needs two things: a Postgres database and somewhere to run the binary. This template provisions both and wires them together, so the database credentials are generated at deploy time and passed to the app as Railway variable references rather than typed into a config file.

Listmonk does not send mail itself. It hands messages to an SMTP provider you configure in the admin UI after first login — Amazon SES, Postmark, SendGrid, Mailgun, Resend or your own relay. That separation is deliberate: it keeps deliverability and reputation with a provider built for it, and keeps your subscriber data on infrastructure you control. Budget a few minutes after deploy for SMTP credentials, a sending domain, and SPF and DKIM records.

Common Use Cases

  • Run a product newsletter or changelog without paying per subscriber.
  • Keep a subscriber list on infrastructure you control, under your own privacy policy.
  • Drive transactional and campaign mail from one place through the REST API.
  • Migrate off a hosted provider whose pricing steps up at list-size thresholds.
  • Segment subscribers with SQL rather than a drag-and-drop rule builder.

Dependencies for Listmonk Hosting

  • Postgres — subscribers, lists, campaigns, templates and analytics. Provisioned by this template with a volume.
  • An SMTP provider — Listmonk relays through one; it is not a mail server. Configure it in Settings after first login.
  • A sending domain with SPF and DKIM — not required to deploy, but required if you want mail to arrive.

Implementation Details

The app connects to Postgres over Railway's private network using PGHOST, PGPORT, PGUSER, PGPASSWORD and PGDATABASE, each referencing the Postgres service, so nothing crosses the public internet and no connection string is stored in the image.

LISTMONK_ADMIN_USER and LISTMONK_ADMIN_PASSWORD seed the first admin account on first boot, and LISTMONK_SECRET signs sessions. All three are generated for you at deploy time. Change the admin password after your first login.

Database migrations run automatically on startup, so upgrading is a redeploy.

Storage and Uploads

Listmonk stores uploaded media on local disk by default, and the app service here has no volume attached, so images attached to campaigns do not survive a redeploy. For anything beyond occasional use, switch the upload backend to S3 in Settings and point it at a Railway bucket or any S3-compatible store. Subscriber and campaign data is unaffected — that all lives in Postgres, which does have a volume.

After You Deploy

Open the public URL, sign in with the generated admin credentials, then:

  1. Add SMTP credentials under Settings, and send yourself a test.
  2. Add your sending domain's SPF and DKIM records at your DNS provider.
  3. Create a list, import subscribers from CSV or the API, and send a campaign to a small segment first.

Scaling and Cost

Listmonk is a single Go binary and is modest with memory; Postgres is usually the service that grows. Sending throughput is bounded by your SMTP provider's rate limits rather than by this container, and Listmonk's concurrency and message-rate settings are tunable in Settings to stay inside them.

Why Deploy Listmonk 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 Listmonk 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.


Template Content

More templates in this category

View Template
N8N Main + Worker
Deploy and Host N8N with Inactive worker.

jakemerson
120
View Template
Evolution API with n8n
Automate WhatsApp workflows with Evolution API, n8n, and Postgres.

codestorm
109
View Template
Postgres Backup
Cron-based PostgreSQL backup to bucket storage

Railway Templates
868