High performance, self-hosted, newsletter and mailing list manager with a modern dashboard. Single binary app.
Find a file
Kailash Nadh be4be729a9 Refactor and clean up API Markdown docs.
This has been pending for several years. Finally, managed to do with
GPT-4 "auto" cleaning language and other consistency issues.
90% GPT4, 10% manual hand-wringing.

GPT-4 prompt:
```
- Fix grammar, simplify language, and make language and terms consistent.
- Remove superfluous language, avoid unncessary "the"s etc.
- Change endpoint description in tables that list endpoints, change to terse imperative language.
- Parameter / field description in Parameter tables, don't be imperative or use active sentences. Only describe the parameter passively and tersely.
- Remove backticks from all headings and table values.
- Format markdown tables.
- Standardize "data type" columns values into number, string[], string, JSON.
- Remove the "parameter type" column from tables.
- Wrap ID parameters in URIs in braces. Eg: /lists/list_id to /lists/{list_id}
- Add a markdown line above every API path heading that begins with GET, POST, PUT, DELETE.
- Leave the lines starting with `#code-` untouched
- Do not add new sections, headings, or any new content. Only edit existing content as described above.
- Do not remove any sections or any existing content.
```
2023-11-10 22:30:14 +05:30
.github Docker Multi Arch (esp. ARM) builds: Improving Build File (#1451) 2023-09-07 22:23:17 +05:30
cmd Fix preference management logic to avoid unnecessary DB calls. 2023-09-25 11:14:29 +05:30
dev Provide a default configuration file for containerized development 2022-01-19 09:30:23 -05:00
docs Refactor and clean up API Markdown docs. 2023-11-10 22:30:14 +05:30
frontend Bump @babel/traverse from 7.21.3 to 7.23.2 in /frontend (#1563) 2023-10-31 11:04:57 +05:30
i18n Update de.json (#1572) 2023-10-30 10:55:28 +05:30
internal Fix attachments being omitted from postback (#1557) 2023-10-14 02:06:42 +05:30
models Add Postmark bounce webhook support (refactor #1385) (#1485) 2023-08-31 21:27:34 +05:30
scripts Add script to merge and normalize i18n files 2021-04-14 13:52:13 +05:30
static Add classes to public forms to make them scriptable. 2023-08-07 23:57:29 +05:30
.dockerignore feat: Add blobstore package 2019-10-31 11:25:31 +05:30
.gitattributes Added end of line config for git 2022-01-26 09:50:06 +01:00
.gitignore feat: Add separate config for demo setup, tweak docs 2020-07-08 22:38:31 +05:30
.goreleaser.yml Docker Multi Arch (esp. ARM) builds: Improving Build File (#1451) 2023-09-07 22:23:17 +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 Add optional params in DB config to accept arbitrary Postgres params. Closes #1016. 2022-12-25 16:28:19 +05:30
CONTRIBUTING.md Fix link to the docs repo. 2023-03-26 11:17:15 +05:30
docker-compose.yml feat: Add timezone config in app container 2021-12-29 11:42:04 +05:30
Dockerfile feat: Add timezone config in app container 2021-12-29 11:42:04 +05:30
go.mod Bump golang.org/x/net from 0.8.0 to 0.17.0 (#1555) 2023-10-15 20:42:38 +05:30
go.sum Bump golang.org/x/net from 0.8.0 to 0.17.0 (#1555) 2023-10-15 20:42:38 +05:30
install-demo.sh fix: replace docker-compose with docker compose (#1490) 2023-08-28 20:13:03 +05:30
install-prod.sh fix: replace docker-compose with docker compose (#1490) 2023-08-28 20:13:03 +05:30
LICENSE Refactor and add new build routines 2019-07-09 15:57:04 +05:30
listmonk@.service Enable extra system calls in systemd service (#1309) 2023-07-12 19:42:54 +05:30
Makefile Fix make not picking up semver from git archive builds. Fixes #1380. 2023-09-19 11:42:07 +05:30
project.inlang.json fix: update inlang settings (#1529) 2023-09-20 14:19:08 +05:30
queries.sql Fix hardcoded DB name in 'about' SQL query. Closes #1477. 2023-08-27 13:20:41 +05:30
README.md Update Postgres version in doc strings. 2023-07-27 23:45:39 +05:30
schema.sql Fix invalid suffix 'd' in timestring string in s3 expiry config. 2023-09-19 14:45:51 +05:30
VERSION Add a VERSION file for git-archive export 2021-08-14 13:41:19 +05:30

listmonk-logo

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 (⩾ 12) database as its data store.

listmonk-dashboard

Visit listmonk.app for more info. Check out the live demo.

Installation

Docker

The latest image is available on DockerHub at listmonk/listmonk:latest. Use the sample docker-compose.yml to run manually or use the helper script.

Demo

mkdir listmonk-demo && cd listmonk-demo
sh -c "$(curl -fsSL https://raw.githubusercontent.com/knadh/listmonk/master/install-demo.sh)"

DO NOT use this demo setup in production.

Production

mkdir listmonk && cd listmonk
sh -c "$(curl -fsSL https://raw.githubusercontent.com/knadh/listmonk/master/install-prod.sh)"

Visit http://localhost:9000.

NOTE: Always examine the contents of shell scripts before executing them.

See installation 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.

See installation docs.


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.