4.2 KiB
4.2 KiB
listmonk is a standalone, self-hosted, newsletter and mailing list manager. It is fast, feature-rich, and packed into a single binary. It uses a PostgreSQL database as its data store.
Visit listmonk.app
Installation
Docker
The latest image is available on DockerHub at listmonk/listmonk:latest
. Use the sample docker-compose.yml to run listmonk and Postgres DB with docker-compose as follows:
Demo
mkdir listmonk-demo
sh -c "$(curl -sSL https://raw.githubusercontent.com/knadh/listmonk/master/install-demo.sh)"
The demo does not persist Postgres after the containers are removed. DO NOT use this demo setup in production.
Production
docker-compose up db
to run the Postgres DB.docker-compose run --rm app ./listmonk --install
to setup the DB (or--upgrade
to upgrade an existing DB)- Run
docker-compose up app
and visithttp://localhost:9000
.
More information on docs.
Binary
download an prepare config file
- Download the latest release and extract the listmonk binary.
./listmonk --new-config
to generate config.toml. Then, edit the file.
prerequisites Debian: system user and PostgreSQL
- install PostgreSQL
apt install postgresql
- create system user with config.toml data for the database:
adduser listmonk
- create the postgreSQL database, the user and grant permissions:
su - postgres
and then acces de PostgreSQL consolepsql
postgres=# CREATE DATABASE listmonk; postgres=# CREATE USER listmonk WITH PASSWORD 'listmonk'; postgres=# GRANT ALL PRIVILEGES ON DATABASE listmonk TO listmonk;
proceed to install
./listmonk --install
to setup the Postgres DB (or--upgrade
to upgrade an existing DB. Upgrades are idempotent and running them multiple times have no side effects).- Run
./listmonk
and visithttp://localhost:9000
.
after install, fine tunning
oncen checked it works, stop the process.
- move the files to where you like most, usually
/opt/listmonk/
or inside/var/www/html/
- change ownership of the files to
www-data
or whatever user you have assigned the webserverchown -R www-data:www-data listmonk
- run listmonk as a service, create
/etc/systemd/system/listmonk.service
with:[Unit] Description=Listmonk server After=syslog.target network.target postgressql.target [Service] Type=simple # the user and group executing the service User=www-data Group=www-data # the directory where you have listmonk WorkingDirectory=/var/www/html/listmonk # the file to execute ExecStart=/var/www/html/listmonk/listmonk Restart=always RestartSec=10 [Install] WantedBy=multi-user.target
__________________
### Heroku
Using the [Nginx buildpack](https://github.com/heroku/heroku-buildpack-nginx) can be used to deploy listmonk on Heroku and use Nginx as a proxy to setup basicauth.
This one-click [Heroku deploy button](https://github.com/bumi/listmonk-heroku) provides an automated default deployment.
[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/bumi/listmonk-heroku)
Please note that [configuration options](https://listmonk.app/docs/configuration) must be set using [environment configuration variables](https://devcenter.heroku.com/articles/config-vars).
## Developers
listmonk is a free and open source software licensed under AGPLv3. If you are interested in contributing, refer to the [developer setup](https://listmonk.app/docs/developer-setup). The backend is written in Go and the frontend is Vue with Buefy for UI.
## License
listmonk is licensed under the AGPL v3 license.