Install and configure listmonk on ubuntu vps
Learn how to install and configure listmonk on ubuntu vps!

Here is a step-by-step guide to install and configure ListMonk (a high-performance, self-hosted newsletter and mailing list manager) on an Ubuntu VPS.

✅ What is ListMonk?

ListMonk is a fast, open-source newsletter and mailing list manager built with Go and PostgreSQL. It supports email templating, subscriber management, campaign analytics, and more.

🧰 Prerequisites

  • Ubuntu 20.04 or newer VPS
  • Root or sudo access
  • Domain name (optional, but recommended)
  • SMTP credentials for sending emails

Launch 100% ssd ubuntu vps from $2. 49/mo!

🛠️ How to Install and Configure ListMonk on Ubuntu VPS

  1. Update Your System

    sudo apt update && sudo apt upgrade -y
  2. Install Dependencies

    Install required packages:
    sudo apt install curl git unzip postgresql postgresql-contrib -y
  3. Set Up PostgreSQL

    Create a database and user for ListMonk:
    sudo -u postgres psql

    Inside the PostgreSQL shell:

    CREATE DATABASE listmonk; CREATE USER listmonk_user WITH PASSWORD 'your_secure_password'; GRANT ALL PRIVILEGES ON DATABASE listmonk TO listmonk_user; \q
  4. Download ListMonk

    Create a directory and download the latest release:
    cd /opt sudo git clone https://github.com/knadh/listmonk.git cd listmonk sudo ./build.sh

    This builds the listmonk binary from source using Go. If you prefer, you can download a precompiled binary from the Releases.

  5. Configure ListMonk

    Copy the default config:
    cp config.example.toml config.toml
    Edit the config:
    nano config.toml

    Change the following:

    [app] address = "0.0.0.0:9000" # You can change the port admin_username = "admin" admin_password = "changeme" [db] host = "localhost" port = 5432 user = "listmonk_user" password = "your_secure_password" database = "listmonk" ssl_mode = "disable" [smtp] host = "smtp.yourprovider.com" port = 587 username = "your@email.com" password = "your_smtp_password" from_email = "your@email.com" from_name = "Your Name or Brand"

    Save and close the file.

  6. Run Database Migrations

    Initialize the database schema:

    ./listmonk --install --yes
  7. Start ListMonk

    Run the server:

    ./listmonk

    Access the web UI at:

    http://your-server-ip:9000

    Login with the credentials you configured (admin / changeme by default).

  8. 🔁 Optional: Run ListMonk as a Systemd Service

    Create a systemd unit file:

    sudo nano /etc/systemd/system/listmonk.service

    Paste the following:

    [Unit] Description=ListMonk Newsletter Manager After=network.target [Service] Type=simple User=root WorkingDirectory=/opt/listmonk ExecStart=/opt/listmonk/listmonk Restart=always [Install] WantedBy=multi-user.target

    Enable and start the service:

    sudo systemctl daemon-reexec sudo systemctl enable --now listmonk
  9. 🔐 (Optional) Secure with NGINX and HTTPS

    If using a domain, you can reverse-proxy ListMonk via NGINX and add Let’s Encrypt SSL.

    Install NGINX:

    sudo apt install nginx -y

    Create a reverse proxy config:

    sudo nano /etc/nginx/sites-available/listmonk
    server { listen 80; server_name yourdomain.com; location / { proxy_pass http://127.0.0.1:9000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }

    Enable the config:

    sudo ln -s /etc/nginx/sites-available/listmonk /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl restart nginx

    Set up HTTPS with Certbot:

    sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d yourdomain.com
  10. ✅ Final Checks

    • Visit: https://yourdomain.com or http://your-ip:9000
    • Login using admin credentials
    • Add SMTP details under Settings (if not added in config)
    • Create lists, subscribers, and start sending campaigns!

📦 Useful Commands

Task Command
Start service sudo systemctl start listmonk
Stop service sudo systemctl stop listmonk
Restart service sudo systemctl restart listmonk
View logs journalctl -u listmonk -f

📚 Resources

Launch 100% ssd ubuntu vps from $2. 49/mo!

Conclusion

You now know how to install and configure ListMonk on Ubuntu VPS.

Avatar of editorial staff

Editorial Staff

Rad Web Hosting is a leading provider of web hosting, Cloud VPS, and Dedicated Servers in Dallas, TX.
lg