High performance, self-hosted, newsletter and mailing list manager with a modern dashboard. Single binary app.
Find a file
Kailash Nadh 55f7eca2e8
Add support for file attachments in the transactional (tx) API. (#1243)
The original PR accepts files to the `/tx` endpoints as Base64 encoded
strings in the JSON payload. This isn't ideal as the payload size
increase caused by Base64 for larger files can be significant,
in addition to the added clientside API complexity.

This PR adds supports for multipart form posts to `/tx` where the
JSON data (name: `data`) and multiple files can be posted simultaenously
(one or more `file` fields).

--- PR: #1166
* Attachment model for TxMessage
* Don't reassign values, just pass the manager.Messgage
* Read attachment info from API; create attachment Header
* Refactor tx attachments to use multipart form files. Closes #1166.
---

Co-authored-by: MatiSSL <matiss.lidaka@nic.lv>
2023-03-19 15:50:44 +05:30
.github Update issue templates 2022-12-25 14:10:57 +05:30
cmd Add support for file attachments in the transactional (tx) API. (#1243) 2023-03-19 15:50:44 +05:30
dev Provide a default configuration file for containerized development 2022-01-19 09:30:23 -05:00
frontend Add support for SVG files to media. Closes #1217. 2023-03-19 13:58:41 +05:30
i18n fixed weekday order to fix #1182 (#1227) 2023-03-06 19:04:04 +05:30
internal Add support for file attachments in the transactional (tx) API. (#1243) 2023-03-19 15:50:44 +05:30
models Add support for file attachments in the transactional (tx) API. (#1243) 2023-03-19 15:50:44 +05:30
scripts Add script to merge and normalize i18n files 2021-04-14 13:52:13 +05:30
static Fix public preference manage page's list style. 2023-02-26 12:36:06 +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 fix: remove deprecated syntax in goreleaser 2021-03-19 12:21:35 +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 Added correct link to repo for docs contribution 2022-02-12 22:29:32 -05:00
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/sys from 0.0.0-20211205182925-97ca703d548d to 0.1.0 (#1212) 2023-02-26 11:28:04 +05:30
go.sum Bump golang.org/x/sys from 0.0.0-20211205182925-97ca703d548d to 0.1.0 (#1212) 2023-02-26 11:28:04 +05:30
inlang.config.js Integrate inlang for easy i18n translations (#1189) 2023-03-19 14:03:30 +05:30
install-demo.sh Fix whitespace inconsistency in install scripts 2021-08-28 19:13:51 +05:30
install-prod.sh fix(install-prod.sh): Make tr work with macOS 2021-12-15 14:44:00 +05:30
LICENSE Refactor and add new build routines 2019-07-09 15:57:04 +05:30
listmonk@.service add systemd service unit 2021-07-07 14:15:16 +02:00
Makefile Use --idempotent and --yes flags when bootstrapping the dev db 2022-01-19 09:29:47 -05:00
queries.sql Fix discrepency in SQL query/export queries. Closes #1241. 2023-03-19 12:53:05 +05:30
README.md Remove Heroku buttons (as it has blocked listmonk without explanation). 2022-03-07 18:25:20 +05:30
schema.sql Add hCaptcha.com support to public subscription form. (#1152) 2023-01-23 21:50:10 +05:30
stats.sql Add support for campaign view tracking with {{ TrackView }} pixel tag 2018-11-02 13:20:32 +05:30
TODO.md Remove completed items 2020-05-25 11:55:02 +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 (⩾ v9.4) 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.