Self-host Listmonk on redu
Listmonk is a self-hosted newsletter and mailing-list manager with a modern dashboard, high-throughput campaign sending, and subscriber list management. People self-host it to own their subscriber data and run mailing lists without a per-contact SaaS bill. On redu, your AI agent runs Listmonk on real EU infrastructure for you, so there is nothing to set up by hand.
License: Listmonk is licensed under AGPL-3.0. AGPL, GPL, and permissive licenses all allow self-hosting freely, and in this guide you are the operator running your own Listmonk instance on your own redu infrastructure.
Deploy it with your agent
Connect the redu MCP:
claude mcp add --transport http redu-cloud https://mcp.redu.cloud/mcpPoint your agent (Claude Code is one example, any MCP client works) at Listmonk’s official Docker setup and tell it:
Deploy Listmonk on redu using its official docker-compose, and expose the web UI.Listmonk ships an official docker-compose.yml and Docker image. Your agent uses deploy_compose to run the whole stack on one EU VM with podman-compose up -d --build, and serves the Listmonk web UI at https://<name>.redu.cloud. redu never rewrites your compose file; it runs the stack as published and exposes the one service you asked for. You point the agent at the web UI as the service to expose, and it can discover the port at deploy time.
Database
Listmonk requires a PostgreSQL database. You have two clean options:
-
Keep the db service from its compose file (default). Listmonk’s official
docker-compose.ymlalready includes a Postgres service, so the whole stack runs together on the one VM with no extra steps. This is thecomposedatabase mode. -
Use a redu managed Postgres. If you want the database on its own managed VM with backups handled for you, tell your agent:
Deploy Listmonk on redu, but use a redu managed Postgres instead of the bundled db.The agent provisions a managed Postgres and appends the connection env to the compose project’s
.env.DATABASE_*env aliases are injected alongside the standardPG*variables, so the connection is wired up without manual mapping.
Either way, Listmonk seeds its schema into that Postgres database on first run.
Access it
Listmonk comes up at https://<name>.redu.cloud with TLS already handled by a wildcard certificate, so there is no per-app cert setup. On first run, Listmonk sets up its database schema and an initial admin login, then you sign in through the web UI to configure your SMTP settings, lists, and first campaign. Follow Listmonk’s own first-run setup for the exact admin steps.
Keep it running
Deploys are self-healing: redu recreates and retries until Listmonk is actually running, and get_deployment returns the build log if you want to see what happened. Day two, because this is a real VM with SSH, your agent can connect to the machine to update Listmonk, tune its config, or fix an issue in place, and commit any repo changes back with a GitHub token. The VM is real infrastructure, billed by the hour, in a German data centre with EU data residency.
What’s next
Stuck? support@redu.cloud