Go to file
Kailash Nadh 65d25fc3f9 Improve campaign content format conversion.
Previously, converting between formats simply copied over raw content.
This update does actual conversion between different formats. While
lossy, this seems to a good enough approximation for even reasonbly
rich HTML content. Closes #348.

- richtext, html => plain
  Strips HTML and converts content to plain text.

- richtext, html => markdown
  Uses turndown (JS) lib to convert HTML to Markdown.

- plain => richtext, html
  Converts line breaks in plain text to HTML breaks.

- richtext => html
  "Beautifies" the HTML generated by the WYSIWYG editor unlike the
  earlier behaviour of dumping one long line of HTML.

- markdown => richtext, html
  Makes an API call to the backend to use the Goldmark lib to convert
  Markdown to HTML.
2021-05-09 15:36:31 +05:30
.github/workflows fix: rename Github Token secret variable 2021-03-19 15:57:00 +05:30
cmd Improve campaign content format conversion. 2021-05-09 15:36:31 +05:30
frontend Improve campaign content format conversion. 2021-05-09 15:36:31 +05:30
i18n Fix typo 2021-04-23 16:42:55 +03:00
internal Add `preconfirm_subscriptions=true/false`new subs API. 2021-04-17 13:34:37 +05:30
models Improve campaign content format conversion. 2021-05-09 15:36:31 +05:30
scripts Add script to merge and normalize i18n files 2021-04-14 13:52:13 +05:30
static Add hidden nonce (honeypot) field to filter bot autofills on subs page 2021-04-21 14:01:32 +05:30
.dockerignore feat: Add blobstore package 2019-10-31 11:25:31 +05:30
.gitattributes Add .gitattributes for github-linguist 2019-07-15 09:34:56 +05:30
.gitignore feat: Add separate config for demo setup, tweak docs 2020-07-08 22:38:31 +05:30
.goreleaser.yml fix: remove deprecated syntax in goreleaser 2021-03-19 12:21:35 +05:30
Dockerfile chore(dockerfile): not are using multi-stage build 2021-04-19 18:14:32 -03:00
LICENSE Refactor and add new build routines 2019-07-09 15:57:04 +05:30
Makefile Build static Go binary 2021-04-11 15:07:19 +05:30
README.md feat: Add shell script for demo setup 2021-01-21 21:53:49 +05:30
TODO.md Remove completed items 2020-05-25 11:55:02 +05:30
config-demo.toml Don't indent TOML keys deeper than their sections 2021-05-06 18:28:04 +03:00
config.toml.sample Document tidbits about listening addresses for non-sysadmin types 2021-05-07 14:44:17 +03:00
docker-compose.yml Fix indentation of docker-compose file 2021-04-11 15:07:20 +05:30
go.mod Add markdown support to campaign content. 2021-04-14 12:26:09 +05:30
go.sum Add markdown support to campaign content. 2021-04-14 12:26:09 +05:30
install-demo.sh feat: Add shell script for demo setup 2021-01-21 21:53:49 +05:30
queries.sql Add `preconfirm_subscriptions=true/false`new subs API. 2021-04-17 13:34:37 +05:30
schema.sql Add markdown support to campaign content. 2021-04-14 12:26:09 +05:30
stats.sql Add support for campaign view tracking with {{ TrackView }} pixel tag 2018-11-02 13:20:32 +05:30

README.md

listmonk

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.

listmonk-dashboard 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 visit http://localhost:9000.

More information on docs.


Binary

  • Download the latest release and extract the listmonk binary.
  • ./listmonk --new-config to generate config.toml. Then, edit the file.
  • ./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 visit http://localhost:9000.

Heroku

Using the Nginx buildpack can be used to deploy listmonk on Heroku and use Nginx as a proxy to setup basicauth. This one-click Heroku deploy button provides an automated default deployment.

Deploy

Please note that configuration options must be set using environment configuration variables.

Developers

listmonk is a free and open source software licensed under AGPLv3. If you are interested in contributing, refer to the 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.