High performance, self-hosted, newsletter and mailing list manager with a modern dashboard. Single binary app.
Find a file
Kailash Nadh fabe06e339 Add support for custom CSS/JS in settings for admin and public pages.
This feature was originally authored by @sweetppro in PR #438.
However, since the PR ended up in an unclean state with
multiple master merges (instead of rebase) from the upstream, there are
several commits that are out of order and can can no longer be be
squashed for a clean feature merge.

This commit aggregates the changes from the original PR and applies the
following fixes on top of it.

- Add custom admin JS box to appearance UI.
- Refactor i18n language strings.
- Add handlers and migrations for the new `appearance.admin.custom_js`
  field.
- Fix migration version to `v2.1.0`
- Load custom appearance CSS/JS bytes into global constants during boot
  instead of making a DB call on every request.
- Fix and canonicalize URIs from `/api/custom*` to `/public/*.css`
  and `/admin/*.css`. Add proxy paths to yarn proxy config.
- Remove redundant HTTP handlers for different custom appearance files
  and refactor into a single handler `serveCustomApperance()`
- Fix content-type and UTF8 encoding headers for different file types.
- Fix incorrect registration of public facing custom CSS/JS handlers
  in the authenticated admin URI group.
- Fix merge conflicts in `Settings.vue`.
- Minor HTML and style fixes.
- Remove the `AppearanceEditor` component and use the existing
  `HTMLEditor` component instead.
- Add `language` prop to the `HTMLEditor` component.

Co-authored-by: SweetPPro <sweetppro@users.noreply.github.com>
2021-12-18 15:38:42 +05:30
.github Remove redundant GitHub issue template. 2021-10-10 17:46:05 +05:30
cmd Add support for custom CSS/JS in settings for admin and public pages. 2021-12-18 15:38:42 +05:30
dev feat: Add dev docker setup 2021-12-01 23:17:14 +05:30
frontend Add support for custom CSS/JS in settings for admin and public pages. 2021-12-18 15:38:42 +05:30
i18n Add support for custom CSS/JS in settings for admin and public pages. 2021-12-18 15:38:42 +05:30
internal Add support for custom CSS/JS in settings for admin and public pages. 2021-12-18 15:38:42 +05:30
models Upgrade labstack/echo webserver to major version v4. 2021-12-09 20:51:07 +05:30
scripts Add script to merge and normalize i18n files 2021-04-14 13:52:13 +05:30
static Add support for custom CSS/JS in settings for admin and public pages. 2021-12-18 15:38:42 +05:30
.dockerignore feat: Add blobstore package 2019-10-31 11:25:31 +05:30
.gitattributes Add a VERSION file for git-archive export 2021-08-14 13:41:19 +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
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
CONTRIBUTING.md Fix typo 2021-10-30 16:50:41 +05:30
docker-compose.yml Bump Postgres version to 13 in example Docker setup. 2021-09-27 20:38:24 +05:30
Dockerfile chore(dockerfile): not are using multi-stage build 2021-04-19 18:14:32 -03:00
go.mod Upgrade labstack/echo webserver to major version v4. 2021-12-09 20:51:07 +05:30
go.sum Upgrade labstack/echo webserver to major version v4. 2021-12-09 20:51:07 +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 Fix typo in Makefile. 2021-12-18 13:14:14 +05:30
queries.sql Add support for searching lists + search UI. Closes #618. 2021-12-09 21:34:38 +05:30
README.md Add a note on Postgres min version. 2021-11-09 22:43:44 +05:30
schema.sql Add support for custom CSS/JS in settings for admin and public pages. 2021-12-18 15:38:42 +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.


Heroku

Deploy

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.