High performance, self-hosted, newsletter and mailing list manager with a modern dashboard. Single binary app.
AGPL-3.0 License
Bot releases are visible (Hide)
v3.0.0 is a major release with a significant number of improvements and fixes.
sent
count now accounts for every single message rather than an approximation.Settings -> Performance -> Cache slow queries
option. On installations with millions of subscribers, enabling this speeds up database queries (retrieving lists, subscribers etc.) by several orders of magnitude. On a production database with ~14 million subscribers, the speed up on the lists page was 2000x, from ~20s to ~10ms.F9
shortcut key for campaign and template previews.As always, take a backup of your database before upgrading.
Binary
Download the latest binary. Stop and replace the old binary. Run ./listmonk --upgrade
. Start the app again.
Docker
# cd /directory/with/docker-compose.yml
docker-compose down
docker-compose pull && docker-compose run --rm app ./listmonk --upgrade
docker-compose up -d app db
sl
i18n language file..IndividualTracking
to public templates. Closes #1663.?v=hash
cache breaker (that changes on restart) to static assets.from
e-mails optional. Closes #1602.name
in subscriber creation optional and assign internally. Closes #1630.--static-dir
mode to use default stuffed dirs. Closes #1599.from_email
to postback struct for sending tx postbacks (#1623)header
field in campaign creation docs. Closes #1561.sed
flag based on OS. Closes #1474.Published by github-actions[bot] about 1 year ago
/api/about
that returns generally useful system and installation info.Note: v2.5.0 was the major release, however, v2.5.1
was worth releasing just to have this one tiny UI bug fix that would have otherwise confused annoyed a lot of users.
This version has several minor bug fixes and improvements.
As always, take a backup of your database before upgrading.
Binary
Download the latest binary. Stop and replace the old binary. Run ./listmonk --upgrade
. Start the app again.
Docker
# cd /directory/with/docker-compose.yml
docker-compose down
docker-compose pull && docker-compose run --rm app ./listmonk --upgrade
docker-compose up -d app db
/api/about
./about
API. Closes #1421, closes #1422.GET /api/about
that returns useful system info. Closes #1354.all
pagination. Closes #1356. Closes #1357.Messenger
interface.koanf
to v2.master
.docs
directory.docs
directory. (#1261)Published by github-actions[bot] about 1 year ago
/api/about
that returns generally useful system and installation info.This version has several minor bug fixes and improvements.
As always, take a backup of your database before upgrading.
Binary
Download the latest binary. Stop and replace the old binary. Run ./listmonk --upgrade
. Start the app again.
Docker
# cd /directory/with/docker-compose.yml
docker-compose down
docker-compose pull && docker-compose run --rm app ./listmonk --upgrade
docker-compose up -d app db
/api/about
./about
API. Closes #1421, closes #1422.GET /api/about
that returns useful system info. Closes #1354.all
pagination. Closes #1356. Closes #1357.Messenger
interface.koanf
to v2.master
.docs
directory.docs
directory. (#1261)Published by github-actions[bot] over 1 year ago
/api/tx
transactional API./api/tx
transactional API (subscriber_emails[]
, subscriber_ids[]
).This version has several minor bug fixes and improvements.
As always, take a backup of your database before upgrading.
Binary
Download the latest binary. Stop and replace the old binary. Run ./listmonk --upgrade
. Start the app again.
Docker
# cd /directory/with/docker-compose.yml
docker-compose down
docker-compose pull && docker-compose run --rm app ./listmonk --upgrade
docker-compose up -d app db
send_at
date for scheduled campaigns in RSS feed. Closes #1149.params
in DB config to accept arbitrary Postgres params. Closes #1016.per_page=all
in API calls in the paginator lib.Published by github-actions[bot] almost 2 years ago
send_at
when cloning campaigns on the UI. Closes #1027.send_at
on archive page for scheduled campaigns. Closes #1036.preconfirm optin
option to bulk list management UI. Closes #935.description
field to lists. Closes #925.meta
field to media. Closes #938.models.SubscriberAttribs
JSON wrapper to generic name JSON
.Safe()
template function to notif templates./api/public/*
endpoints.Full Changelog: https://github.com/knadh/listmonk/compare/v2.2.0...v2.3.0
Published by github-actions[bot] about 2 years ago
Although delayed by a couple of months, v2.2.0 is here finally.
The biggest new addition is the new transactional messaging feature. See docs.
Test connection
feature on the SMTP settings UI to quickly test SMTP settings by sending a test e-mail. I don't know how I missed this for so long!Insert HTML
button to quickly insert HTML blocks and snippets on the campaign richtext editor.core
package.POST /api/media
has changed. See docs.core
method name.core
package.Full Changelog: https://github.com/knadh/listmonk/compare/v2.1.0...v2.2.0
Published by github-actions[bot] over 2 years ago
This version contains a number of fixes, improvements, (small) feature additions, and performance improvements.
--static-dir
. Contributed by @sweetppro--passive
mode (that doesn't process campaigns) for running multiple instances of the app.{{ TrackLink }}
now accepts dynamic arguments, such as a link from subscriber's attributes.Shoutout to @NicoHood for patiently reporting a number of UX glitches and suggesting improvements.
As always, take a backup of your database before upgrading.
Binary
Download the latest binary. Stop and replace the old binary. Run ./listmonk --upgrade
. Start the app again.
Docker
# cd /directory/with/docker-compose.yml
docker-compose down
docker-compose pull && docker-compose run --rm app ./listmonk --upgrade
docker-compose up -d app db
The near Appearance
tab in settings adds the following two lines to the <head>
tag of static/public/templates/index.html
:
<link href="/public/custom.css" rel="stylesheet" type="text/css">
<script src="/public/custom.js" async defer></script>
If your installation has custom static templates with --static-dir
, please add these two lines to use the new customization feature.
0ecfb89 Remember appearance sub tab in settings UI.
481d6ef Move bundled fonts to a better location.
93366f4 Remember last chosen tab on the settings UI.
0f6a037 Add accurate realtime message rate counter.
1b163d1 Fix next-subscribers batch query for a ~210x speedup.
02eaa66 Fix lists test to accommodate new UI yes/no campaign prompts.
8fb459d Fix custom DB type scan failing when nil.
48ef3dc Support status
in bulk subscriber list update API. Closes #604.
251c1ea Fix campaign start throwing error when disabling schedule on the UI.
da30d46 Add subscriber status counts to the lists UI.
182795e Refactor table stats field set styles.
1b017c0 Merge branch 'master' of github.com:knadh/listmonk
2614b07 Refactor campaign analytics to show unique / non-unique data.
1c37732 Merge pull request #683 from sanketsaurav/master
0d88bd8 Fix spelling for "compatible"
d0b32b9 Allow unsubscribed users to re-subscribe. Closes #588
d2cf6e0 Fix TrackLink
template code to accept Go template variables. Closes #667.
9551f54 Merge branch 'master' of github.com:knadh/listmonk
636db20 Fix editor HTML beautification in incorrectly adding breaks to links.
f46ab23 Merge pull request #679 from marcinkunert/patch-3
3b1614b Added end of line config for git
6a5ed43 Change Heroku button repo.
5c2005d Merge pull request #668 from avanier/upkeep/spiffy-up-docker-dev-stack
c7c04c5 Provide a default configuration file for containerized development
5a6b338 Use --idempotent and --yes flags when bootstrapping the dev db
4ecd044 Spiffy up the continerized dev README
64d2c5a Add support for custom public S3 URLs. Closes #505.
7955a4f Fix media upload S3 IAM init blocking outside non-AWS environments.
4ddd3e8 Add 'View in browser' link to the default email template. Closes #540.
c6d5d86 Warn of unsaved changes on the campaign editor on navigation. Closes #551.
4c09cc1 Auto-focus TinyMCE editor area on load.
3f02609 Add unsubscribe link to opt-in confirmation e-mail. Closes #573.
28efe27 Merge branch 'master' of github.com:knadh/listmonk
04ea18c Refactor opt-in confirmation behaviour in subscriber update API.
740373d Merge pull request #664 from nikochiko/spaces-in-filenames
be1d048 Replace whitespace with dash in names of uploaded files
c95427e Merge branch 'master' of github.com:knadh/listmonk
a2458cf Merge pull request #663 from knadh/dependabot/npm_and_yarn/frontend/follow-redirects-1.14.7
a314eb5 Bump follow-redirects from 1.13.1 to 1.14.7 in /frontend
e62dc24 Re-order SMTP auth protocols in the settings UI by popularity.
2f56057 Close burger 'menu' when clicking items in mobile view.
b0787f7 Merge pull request #649 from joeirimpan/fix/msgr-persist
4c48c32 fix(frontend): Persist messenger selection
e200ab0 Add support for additional POP3 mail charsets. Closes #644.
f266f55 Tidy go.mod
e1d3dd4 Merge branch 'master' of github.com:knadh/listmonk
d8ed404 Make tls_enabled
key migratin idempotent.
583dab4 Add support for per-campaign custom headers.
9e9ea0e Refactor automatic camel casing of API response fields.
d42c676 Merge pull request #646 from ldidry/add-autoheadingid-option-to-markdown-parser
73e6668 Add AutoHeadingID option to Markdown parser
dd061f5 Add support for direct SSL/TLS (non-STARTTLS) SMTP connections.
e46a5cd Merge pull request #640 from rhnvrm/feat-s3-put
c003aec feat: switch from s3 POST to s3 put
d523d0a Merge pull request #639 from mr-karan/tz
e4d8286 feat: Add timezone config in app container
b48a15c Fix incorrect 'nice date' formatting. Closes #635.
e982e6b Don't warn on format change when campaign content is empty. Closes #634.
c1c2b67 Add a link to more language packs to the language settings UI.
fabe06e Add support for custom CSS/JS in settings for admin and public pages.
920645f Fix typo in Makefile.
13edf42 Merge pull request #625 from mr-karan/master
c9189a1 fix(install-prod.sh): Make tr
work with macOS
ca128df Add support for searching lists + search UI. Closes #618.
e9709e5 Upgrade labstack/echo
webserver to major version v4.
02c1408 Fix broken Cypress UI tests.
4cb5eb7 Fix settings form input validation.
e9dded7 Merge pull request #608 from mr-karan/dev_docker
e977b90 feat: Add dev docker setup
e6c1f1e Merge pull request #605 from Jjagg/i18n-nl
1c8ab5c Add dutch (nl) translation
3386de4 Fix GET /subscribers
calls not accepting multiple list_id
s.
d32c11a Merge pull request #603 from NicoHood/patch-2
8a70595 Fix #601 german translation
575d007 Fix alert email urls (#595)
903330b Create hu.json (#591)
a7fa97a Add scanning of full bounce email body for bounce headers. Closes #492.
c8c135e Fix broken test mail due to missing tpl param.
35ac1cc Embed Inter font files and remove Google font links. Closes #547.
46f13bf Fix broken logout link in desktop nav view (#580)
2388a05 Update fr.json (#581)
7b9ba2e improved mobile navbar/sidebar (#574)
125d51f Merge pull request #576 from MickGe/patch-1
a2c885b Add a note on Postgres min version.
ebf6af2 Clear placeholder on focus
19e0ea5 Fix scheduling params being ignored on the create campaign UI. Fixes #516.
0bd13fe Fix response content type in plaintext campaign previews. Closes #568
d00a1a1 Merge branch 'master' of github.com:knadh/listmonk
738c8e9 Merge pull request #569 from ChrisTG742/patch-2
34915f1 Merge pull request #570 from jorge-vitrubio/patch-1
58bd242 Updated es.json
bfefb0f German translation needed for #526
88d0c77 Merge pull request #567 from knadh/dependabot/npm_and_yarn/frontend/tinymce-5.10.0
2819ca8 Bump tinymce from 5.9.2 to 5.10.0 in /frontend
1ece738 Fix incorrect container width on public page responsive view.
5bfbe15 Fix campaign template preview not working without saving. Closes #553.
644f98f Fix typo
ef4de09 Add contribution and participation guidelines and code of conduct.
1054c01 Hide 'Back' button when it is superfluous on public pages.
1101039 Add "passive" mode with --passive
flag.
9dd8592 Prevent images from being squished in the default e-mail template. Closes #548.
f39ee4e Fix TinyMce campaign editor toolbar to the top on scroll. Closes #549.
b290d27 Add support for plaintext system e-mail templates.
1c8ac0f Add 'preconfirm subscription' option to subscriber UI. Closes #526.
76cd4d3 Merge branch 'master' of github.com:knadh/listmonk
ed8d68b Add anti-bot nonce field to generated forms. Closes #541.
151b86a Merge pull request #538 from NicoHood/patch-1
fb3da6b Add german back button translation
b163b13 Add a "Back" button the public subscription/message page.
bc9252f Autogenerate subscriber name from e-mail on the UI if it's empty. Closes #525.
0f896c1 Fix email field in generated form HTML. Closes #529.
ca51c48 Fix duplicate class attr in optin e-mail. Closes #524.
f91b27d Merge pull request #518 from mr-karan/script_fix
6cd7d66 fix: Add a check for existing docker db volume
3064844 Merge branch 'master' of github.com:knadh/listmonk
a017597 Fix strings on the UI missed in i18n translation. Closes #506.
469f392 Merge pull request #507 from marcinkunert/patch-2
d6703f2 Updated polish translations
823f11e Remove redundant GitHub issue template.
b46ab6d Fallback to default S3 URL on empty media upload URL in settings.
d91d6e5 Merge branch 'go-deps'
6053b09 Merge branch 'master' of github.com:knadh/listmonk
7aa8508 Add explicit public-read
ACL to public S3 uploads. Closes #496.
4ec4a1b Merge pull request #494 from marcofucito/master
7015c04 Italian translation
443ba18 Merge pull request #491 from citrus-it/makedep
ecc3516 pack-bin is missing dependency on build-frontend
0d8c036 Merge pull request #490 from citrus-it/touch
ac69f6c Use POSIX standard -c flag for "touch"
d0f1a27 Update Go deps.
b45baaa Merge pull request #485 from tachyons/patch-1
30dbe88 Fix typo
Published by github-actions[bot] about 3 years ago
This is a major release with multiple new features and a large number of usability improvements, bug fixes, and significant performance improvements. Check out the live demo.
@TrackLink
shorthand for creating tracking URLs. eg: <a href="https://listmonk.app@TrackLink"></a>
./admin/*
. If you have custom firewall rules in your proxy, update them.--static-dir
option, make sure to download and use the new files. They may have breaking changes.As always, take a backup of your database before upgrading.
Binary
Download the latest binary. Stop and replace the old binary. Run ./listmonk --upgrade
. Start the app again.
Docker
# cd /directory/with/docker-compose.yml
docker-compose pull && docker-compose run --rm app ./listmonk --upgrade
docker-compose up -d app db
05585b7 Fix build step in GitHub actions.
bf2703b Fix status tag flashing on campaign edit UI load.
93c7c87 Replace TinyMCE source editor with Flask HTML editor.
cd639e8 Add link to bounces docs in settings UI.
60badb2 Update README to reflect v2.0.0 changes.
f0b033b Add missing home template.
1f31218 Add a 404 page to the admin UI.
0db6f0c Bump Postgres version to 13 in example Docker setup.
30f9f03 Replace TinyMCE UI pt font sizes with px.
98ed4fb Add a landing login page and a logout option.
9d2bc9c Add HTML syntax highlighted editing to the template editor.
a1a9f3a Fix incorrect i18n variable in notification e-mail.
3ffd88f Remove obsolete bounce routines from manager package.
4056187 Add sane defaults to POST creation APIs.
f6cd24d Fix TinyMCE modal styles and overlapping issues.
d86438b Introduce @TrackLink
shorthand for generating tracking links.
d3f543c Fix issues with Buefy responsive styles.
e0bf1f1 Fix broken Cypress tests.
492efe1 Bump Go compiler to v1.17 in GitHub actions.
4dbac14 Add Romanian i18n language pack contributed by @gabrielpioaru.
7aee36e Add support for blocklisting e-mail domains.
9f3eb7e Fix Cypress tests to accommodate new admin UI URI.
9f8e9c0 Fix subscriber form UI to have a default status value.
e71115d Add option to toggle sending opt-in confirmation. Closes #363.
51da1a1 Add check to skip admin notifications with no e-mails. Closes #300.
c2a3f7d Merge pull request #472 from henk23/feature/replace-quill-with-tinymce
68512d2 Add i18n support to TinyMCE.
0dc9e78 Refactor HTML formatting and indentation in richtext -> HTML on UI.
b6f68b8 Tweak editor page and box styles.
ffcb987 Fix incorrect init and change events on TinyMCE.
a0addc7 Clean up syntax, toolbar, and editor styles.
1e4f974 Make media selection work and add more plugins and tools
c140578 Put TinyMce init options into variable, add some TODOs
4afe4a7 Re-add changes from master, that got lost by accident
71fc73f Fix long line issue in dist build
c09d2fc Replace Quill editor with TinyMCE
a97d81a Merge branch 'refactor-frontend-path'
6904b1f Remove redundant clause from the Makefile.
bb340b8 Refactor frontend build and name space all admin URIs behind /admin/
.
855d440 Merge pull request #477 from aiac/patch-1
0ebf494 CD to directory before install script
13f1648 Merge pull request #476 from knadh/dependabot/npm_and_yarn/frontend/prismjs-1.25.0
7d4bac6 Bump prismjs from 1.24.0 to 1.25.0 in /frontend
956e990 Improve codeflask HTML syntax highlighting colours.
4b13f0c Add public URIs to yarn dev proxy.
9f9425c Refresh i18n files.
4b127f1 Merge branch 'campaign-analytics'
623030a Replace go get with go install stuffbin (Go 1.17 deprecation).
6a31697 Fix inconsistent non-ii18n tag and label displays.
2ed54b8 Fix Buefy UI modal breaking body and sidebar scroll.
71fd71d Refactor individual subscriber edit view.
070472c Add missing speedometer Fontello icon to the campaigns UI.
d19728c Make container size uniform on multiple views on the UI.
6f2aa1a Fix and refactor list selector UI component.
1df827c Fix automatic field camel casing for subscriber attribs
4e5e466 Add a ?minimal
mode to GET /lists API.
f86a647 Add Intl formatting to large numbers on the UI.
56629cc Fix lists pagination breaking on the UI.
f1fbcd4 Fix automatic camel casing of subscriber attribs on the UI.
8733b20 Refactor SQL schema and queries for performance improvements.
6eb5894 Fix 'Analytics' menu item not getting highlighted.
1bb630c Fix Buefy taginput padding
54f1b55 Merge branch 'analytics-migration' into campaign-analytics
61e8868 Add campaign analytics APIs and UI
fd8f5a9 Add missing bounce_type
to v2 migration.
9302dfb Add missing id (pkey) to analytics tables for faster queries
3d0031b Add campaign analytics APIs and UI
3135bfc Upgrade and refactor global theme.
d205f1c Merge pull request #464 from tusharsadhwani/patch-1
f0299a8 Clarify default option in prompt
1f4f426 Fix incorrect [list_id] param in bulk subscriber deletion UI
68369a8 Update issue templates
85c8806 Merge pull request #450 from ChrisTG742/patch-1
647bea3 translation fixes
6cf0b46 Merge pull request #445 from tusharsadhwani/fix-whitespace
2edd3ec Fix whitespace inconsistency in install scripts
7691fbd Refactor the large settings UI view to multiple files.
abedb26 Add Czech i18 translation contributed by @srchlm
00275df Fix i18n language code validation to include -
3847c67 Add --idempotent to make --install idempotent
edac5a1 Add bounce tests (Cypress)
81d183b Fix incorrect date in bounce insert
27e1e83 Validate type
in bounce webhook API.
158ea9f Fix bounce action only triggering on n+1st bounce.
b6d60d9 Merge branch 'master' of github.com:knadh/listmonk
ab0b5dd Remove obsolete 'embed' import
f149c63 Replace the Heroku button with a functional one.
d6d1883 Add custom S3 backend support (eg: Minio) to media uploads
923b882 Add migration to remove obsolete subscribers.campaigns field
1be8c7d Merge branch 'bounce'
d41b697 Fix race in settings UI and settings API fetch
cce5cff Fix bounce upgrade schema
185d511 Merge pull request #434 from knadh/dependabot/npm_and_yarn/frontend/url-parse-1.5.3
59c8976 Normalize i18n files with new bounce keys.
1ae9869 Add support for bounce processing.
c7a962b Bump url-parse from 1.5.1 to 1.5.3 in /frontend
e23b4fd Merge pull request #431 from knadh/dependabot/npm_and_yarn/frontend/path-parse-1.0.7
ccee852 Remove incorrect RootURL link from e-mail template. Closes #432
26c099a Merge branch 'version-file'
d27e16e Add a VERSION file for git-archive export
b19013d Merge branch 'master' of github.com:knadh/listmonk
137e9dd Refine Spanish (es) i18n translations
7f5e975 Merge pull request #433 from dreglad/i18n-es-refine
9e64dcb Refine Spanish (es) i18n translations
4405550 Bump path-parse from 1.0.6 to 1.0.7 in /frontend
e656618 Add preconfirm_subscriptions
to subscriber update. Closes #426.
fb48477 Fix SQL expressions breaking subscriber export. Closes #408
af11a17 Refactor make run to always compile and use the correct frontend path
6a87f38 Merge branch 'static-paths'
b7a25e5 Merge pull request #423 from mr-karan/install_fix
4d8e73b fix colorized output in terminal
9e61bfc Merge pull request #419 from justinbeaty/topic-root-url-fix
a7f7016 Fix RootURL in campaign-status.html
82735bb Refactor behaviour of loading static files from disk vs. embedding.
c8826d0 Merge pull request #417 from kmohrf/master
c10c031 add systemd service unit
67c0ca0 Merge branch 'master' of github.com:knadh/listmonk
3be5227 Account for all *.go files in the repo in the Makefile build target
078ca39 Merge pull request #405 from knadh/dependabot/npm_and_yarn/frontend/color-string-1.5.5
5e2c24b Make --new-config accept path from --config. Closes #410.
ea9895e Merge pull request #406 from knadh/dependabot/npm_and_yarn/frontend/prismjs-1.24.0
893fab2 Bump prismjs from 1.23.0 to 1.24.0 in /frontend
f101dde Bump color-string from 1.5.3 to 1.5.5 in /frontend
c818ad9 Merge pull request #399 from knadh/dependabot/npm_and_yarn/frontend/browserslist-4.16.6
442d7f7 Merge pull request #403 from kmohrf/master
89bfe74 use make’s dependency handling to speed-up rebuilds
07478a5 allow yarn bin to be overridden
5988ea3 Sanitize media upload filenames. Closes #397.
d6551e1 Bump browserslist from 4.12.0 to 4.16.6 in /frontend
fc84082 Merge pull request #398 from knadh/dependabot/npm_and_yarn/frontend/postcss-7.0.36
674536c Bump postcss from 7.0.32 to 7.0.36 in /frontend
a22d7fa Merge pull request #394 from mr-karan/install
8d40422 feat: Add easy install script
docker pull listmonk/listmonk:v2.0.0
Published by github-actions[bot] over 3 years ago
This is an unplanned interim release that fixes a critical bug in subscriber deletion: https://github.com/knadh/listmonk/issues/384
b361292 Display app version the settings UI
a3b285f Fix Buefy number input width
63520d2 Merge pull request #388 from dunklesToast/chore/update-german-translations
3abac31 chore(translations): improve german translations
3ecac76 Fix Vue linting issue
868fae6 Refactor subsbscription status option on the import page.
7ca08f0 Adding a subscription status option to the import.
c37a769 Add robots noindex header to public user specific subscription pages
a914b5d Merge branch 'master' of github.com:knadh/listmonk
8859911 Remove hardcoded limit for per_page
in pagination
948dbc9 Merge pull request #385 from knadh/dependabot/npm_and_yarn/frontend/ws-6.2.2
6ddb03c Bump ws from 6.2.1 to 6.2.2 in /frontend
3d26366 Fix pagination query.
bbffbbc Fix listID not being passed in bulk sub deletion. Closes #384
baca95e Merge pull request #381 from mr-karan/health
50dc9fc feat: add a public healthcheck endpoint
59bcc8e Merge pull request #376 from knadh/dependabot/npm_and_yarn/frontend/dns-packet-1.3.4
cb07774 Bump dns-packet from 1.3.1 to 1.3.4 in /frontend
e3d3420 Merge pull request #374 from jonathanmmm/patch-1
30132c5 Update de.json
44adcd4 Stop checking for updates on boot.
dba47bc Add file extsnsion check to media uploads.
69f84c9 Refactor log line view to prevent HTML render log lines.
e54c33e Merge pull request #371 from knadh/upgrade-frontend
b7932e4 Upgrade all JS deps to latest
5796291 Remove unused JS deps
f5221ab Upgrade JS sass libs.
dea4d18 Upgrade Vue and Buefy UI lib.
c593be5 Upgrade Vue + eslint to the latest version
25f5f9b Merge branch 'master' of github.com:knadh/listmonk
931e467 Fixes campaign test messages not including unsub headers.
3cc7ecc Merge pull request #366 from senolcolak/master
30074ec Turkish translations added
d6bdcd4 Merge pull request #365 from jorge-vitrubio/patch-1
edd7e70 Merge pull request #364 from jorge-vitrubio/patch-3
0146d6f minor typo
fc3e517 minor translation changes
ea92e8b Merge branch 'master' of github.com:knadh/listmonk
9f2e708 Wrap lines in <pre>
without overflowing the viewport.
0e5cd60 Delete feature---change-request.md
89481ed Update issue templates
docker pull listmonk/listmonk:latest
docker pull listmonk/listmonk:v1.1.0
Published by knadh over 3 years ago
With this release, listmonk hits the v1.0.0 milestone and finally gets out of beta. It is now stable and production ready (has been for a while now). There are production instances that have handled millions of subscribers and hundreds of millions of e-mails. Docker Hub shows 1+ million pulls.
This release includes a number of bug fixes and some new features such as:
95a81d1 Add option on UI to toggle update checks.
d695bb3 Prioritise --static-dir on init when no assets are embedded.
aa5eff9 Fix incorre check on template deletion.
9fe78d6 Make conditional icons consistent on templates UI
ed57ecc Sanitize HTML strings passed to buefy.toast().
cf0c8f3 Merge pull request #355 from seba81/master
194e530 Adding spanish language
20939e8 Merge pull request #354 from knadh/dependabot/npm_and_yarn/frontend/url-parse-1.5.1
6bbde09 Merge pull request #353 from knadh/dependabot/npm_and_yarn/frontend/hosted-git-info-2.8.9
cd1aa81 Merge pull request #352 from knadh/dependabot/npm_and_yarn/frontend/lodash-4.17.21
6a21776 Fix password fields not updating settings UI.
0b0cd5a Bump url-parse from 1.4.7 to 1.5.1 in /frontend
a06f1ae Bump hosted-git-info from 2.8.8 to 2.8.9 in /frontend
02b92b5 Bump lodash from 4.17.19 to 4.17.21 in /frontend
65d25fc Improve campaign content format conversion.
49c747d Allow HTML and additional syntax in the Markdown parser.
f08254d Merge pull request #350 from alerque/config-handling
09c56da Document tidbits about listening addresses for non-sysadmin types
26a0238 Bind to ‘localhost’ instead of ‘0.0.0.0’ by default
6c40e05 Use ‘localhost’ as default name for database server
708ec66 Don't indent TOML keys deeper than their sections
68b80d0 Merge pull request #334 from inpos/master
6ada0aa Fix typo
a401b1c Merge pull request #331 from inpos/master
c750538 better translation option
60220c7 Merge pull request #330 from inpos/master
f6339c7 Update ru.json
5868db0 Sort i18n language list on the settings UI
1c8d272 Add Russian translation by @inpos. Closes #329.
3782413 Refactor campaign preview to use dummy campaign and subscriber.
fe61e89 Add hidden nonce (honeypot) field to filter bot autofills on subs page
97d297e Normalize i18n files
9a4f1a0 Merge pull request #327 from brunowego/patch-1
f346f0f chore(dockerfile): not are using multi-stage build
33450f8 Merge branch 'master' of github.com:knadh/listmonk
c479a90 Add support for loading external i18n language files.
cf5cd95 Merge pull request #324 from knadh/dependabot/npm_and_yarn/frontend/ssri-6.0.2
2bbe38f Bump ssri from 6.0.1 to 6.0.2 in /frontend
4ddaba8 Merge branch 'master' of github.com:knadh/listmonk
ad0a0e0 Add preconfirm_subscriptions=true/false
new subs API.
c6a4d43 Merge pull request #321 from marcinkunert/patch-1
f9a2eb8 Finished Polish (pl) translations
777a898 Polish translations
708d0e0 Fix re-submission of public form e-mails not registering
07d8be5 Merge pull request #317 from FelixDz/patch-1
ca19c59 Merge branch 'master' into patch-1
12f9ad4 Create fr.json
620271b Normalize and merge missing keys into all i18n files
bf6d471 Add script to merge and normalize i18n files
1e59d53 Add markdown support to campaign content.
4581e47 Merge pull request #313 from tamalsaha/sprigv3
40aaa26 Use github.com/Masterminds/sprig/v3
c358281 Merge branch 'master' of github.com:knadh/listmonk
8a9b3ef Fix indentation of docker-compose file
a266027 Build static Go binary
b060c75 Bundle sprig template functions
f8f074c Merge pull request #312 from tamalsaha/fmt3
178ee28 Merge pull request #311 from tamalsaha/fmt
bc8b4d0 Merge pull request #309 from tamalsaha/sprig
97f8c01 Fix indentation of docker-compose file
96f63d0 Build static Go binary
4485460 Bundle sprig template functions
570a81f WIP: Add tests
039feef Merge pull request #307 from knadh/dependabot/npm_and_yarn/frontend/y18n-4.0.1
e7e36a0 Merge pull request #306 from kousikmitra/fix/campaign-field-names
35b1d01 Fix template box label name
ca403d5 Bump y18n from 4.0.0 to 4.0.1 in /frontend
6d61c52 Fix placeholder attribute typo
6dbcfee Merge pull request #298 from mr-karan/master
d519a29 Merge pull request #297 from spezifisch/german-translation-updates
51d218a fix: rename Github Token secret variable
531d768 add german translations for missing keys in public.*, fix typos
faf45d4 Merge pull request #296 from mr-karan/master
df34e57 fix: remove deprecated syntax in goreleaser
c6b8565 chore: release via github actions
207f516 Merge pull request #294 from joicemjoseph/patch/ml-word-corrections
4d681f0 fix: typo corrections to malayalam localization
2579d7c Merge pull request #291 from knadh/dependabot/npm_and_yarn/frontend/elliptic-6.5.4
1ac0e65 Bump elliptic from 6.5.3 to 6.5.4 in /frontend
e8ad7a9 Fix subscriber attribs update API.
f8e555d Fix incorrect ID handling in update handlers
93a710c Merge pull request #284 from RustyDust/master
8a6ed2a Fix incorrect week day name logic in translation
860953e Fix wrong list links in subscribers overview
267dd52 Merge pull request #281 from knadh/dependabot/npm_and_yarn/frontend/prismjs-1.23.0
f268dc6 Bump prismjs from 1.20.0 to 1.23.0 in /frontend
d662272 Merge pull request #276 from herzkerl/patch-1
31ce55a Including an EXPOSE instruction in the Dockerfile
8779c49 Merge pull request #274 from enniosousa/master
5777738 Merge pull request #273 from TomBoss/master
c2d7e10 Create pt-BR.json
82f033b corr. template
77a6110 Merge pull request #272 from TomBoss/master
2b8b10c Add Italian i18n
da7975f corr.
b4fea57 Merge pull request #1 from knadh/master
99ff64b Merge pull request #271 from TomBoss/master
97b78aa Fix incorrect 'get subscriber' calls
50549f3 Adding Safe templating function for keeping HTML comment
docker pull listmonk/listmonk:latest
docker pull listmonk/listmonk:v1.0.0
Published by knadh over 3 years ago
This version includes several bug fixes and improvements including some major new features.
/subscription/form
).e90fb1d Format i18n/fr JSON file
a54d967 Merge pull request #267 from TomBoss/master
8e78b64 Allow editing of unsubscribed lists on the UI
2f6bd05 Fix the optin-in, form re-subscribe behaviour.
42a31e4 French i18n
2f05d4e Fix broken opt-in campaign template
bc5cc53 Fix broken reload on clicking the restart button on UI
b1696c0 Tidy go.mod
b950d2f Refactor fetching of server config and settings.
b6dcf2c Merge branch 'i18n'
ee46b3d Fix blank UI on forms pages when there are no public lists
c90d42a Fix widget padding on the dashboard UI
c7500f9 Fix campaign update email title i18n
28b616a Merge pull request #262 from diogotcorreia/i18n-pt
9c0fd24 Merge pull request #261 from mr-karan/goreleaser-fix
c63f9c6 chore: Pass the binary path correctly to make
f1095aa Remove stray dev env reference in go.mod (shameful!)
be31141 Add Portuguese translations
d737e5d Fix from email
in i18n language
2235d30 Add a new public page for end users to subscribe to public lists.
a7b72a6 Fix broken i18n language keys
dd0c124 Stop throwing "exists" error on public forms
62bce69 Remove "normalization" of non-Latin characters in tags
bb1a5bb Fix contenType event not firing on non-Quill editor mode
27d9eab Merge branch 'plaintext' into i18n
68afd61 Add support for alternate plaintext body for e-mails.
a226e49 Fix incorrect language weekday keys
535b505 Add autofocus on the first field in SMTP/Messenger settings UI
68808d0 Merge pull request #260 from m42e/patch-1
69a6b89 Updated German translation
00f68a3 Merge pull request #258 from joicemjoseph/feat/l10n-malayalam
7d3cbde Merge branch 'i18n' of github.com:knadh/listmonk into i18n
b420c31 Log test message error
ade6ecd localized newly added strings
7359e0a Merge pull request #253 from joicemjoseph/feat/l10n-malayalam
cc81369 finished Malayalam localization
ccfada9 Merge pull request #255 from m42e/l18n/german
101e92c Merge pull request #256 from joeirimpan/fix/ticker
83613dc Typo fixes on u18n/en language
8867f77 fix: Stop tickers
fcc068c Add missing translations and fix broken ones on the UI
4bfdda9 Load a default (en) language underneath the selected language.
dc0465b Refactor global instances of $api and $utils to be mixins.
5ecc427 German translation
afef994 Fix incorrect make command
05928d5 Fix default campaign template not being setup on first install.
0add1c4 Fix incorrect label on skip-TLS setting on UI
0272617 Add support for rate limiting messages with a sliding window.
ee4fb71 Refactor i18n name and fix the L() function in public HTML templates
4cd5e6e Refactor and remove placeholder i18n func
810607e Fix incorrect i18n keys in message strings
ec1c4f3 Add subscriber export feature
6f2f361 Merge pull request #252 from mr-karan/master
869a55c feat: Add shell script for demo setup
3498a72 WIP: Add i18n support
dae47fb Merge pull request #246 from knadh/dependabot/npm_and_yarn/frontend/axios-0.21.1
3975ccc Bump axios from 0.19.2 to 0.21.1 in /frontend
7dace84 Merge branch 'master' of github.com:knadh/listmonk
8bc9bbc Merge pull request #228 from knadh/dependabot/npm_and_yarn/frontend/highlight.js-9.18.5
c8fc91e Bump highlight.js from 9.18.1 to 9.18.5 in /frontend
62182ab Refactor get-lists query for speed
a22b274 Merge branch 'master' of github.com:knadh/listmonk
ce108c8 Fix broken 'send campaign' shortcut on the Lists UI
d9ab365 Merge pull request #226 from mr-karan/fix/db-config
ad8f290 feat: Set default values for DB connection parameters
c60cc35 Remove alpha warning
docker pull listmonk/listmonk:latest
docker pull listmonk/listmonk:v0.9.0-beta
Published by knadh almost 4 years ago
This release introduces the first beta version and marks an end to the alpha releases. It also introduces support for Messengers, web services that can be added to listmonk to run not just e-mail campaigns, but any sort of message campaigns such as SMS, and FCM notifications.
cde0b4b Add a DB setup check on boot
7a9d11d Fix escaping {{ TrackLink }} in WYSIWYG editor UI
1e8b533 Fix echo's URI routing race condition that caused random 404s.
684c64c Fix SQL ORDER BY compatibility issue in Postgres 12/13.
1aecd6f Add serverside sort to tables.
a0b36bb Log subscriber UUID in message send errors
a1aeba2 Fix invalid link click registrations
7cecbbb Register missing settings/logs URL in the backend
966954d Refactor log view UI into a component.
b054ed5 Fix inconsistent quotes in Vue config
e9bf47b Fix --version string and duplicate printing
aee1bfd Add (Open/Net/Free)BSD to cross-platform release builds.
cfe66bb Fix and refactor Makefile and .goreleaser build commands.
2e361c7 Add v0.8.0 DB migrations.
f6511b6 Update JS dep (security): node-forge
1b27947 Make individual subscriber tracking optional.
50e488f Fix 'Send test' not reflecting campaign body on first page load
13aac1a Update smtppool lib adding support for Unicode in e-mail IDs
669cb09 Merge pull request #205 from knadh/fix-email-validation
86c6189 fix: use mail.ParseAddress to validate email instead of custom regex
8dbe30c Add new 'Logs' page to the UI to view stdout logs
f81d75a Allow deleting of all campaigns irrespective of status
409b259 Fix settings UI copying SMTP values on 'new'
f667935 Fix empty password save behaviour on settings.
6cf43ea Add generic HTTP postback Messenger
support.
be9fbcd Merge pull request #200 from knadh/fix-incorrect-csv-example
03338d5 Merge pull request #199 from knadh/feat-inbuilt-dev-server
2109ee1 Merge pull request #198 from knadh/fix-injected-version
025d54b fix: incorrect csv import example on frontend
6c234f1 fix: use inbuilt frontend dev server to proxy API
584c3bd fix: incorrect git tag being injected as version
23d479e Add zerodha.tech badge
fd05f8d Merge pull request #190 from rwilhelm/patch-1
d6279ed Update Settings.vue
288164e Remove 'required' from upload field that fails to recognize drag-drop
d219f65 Fix missing status column in import that affects auto-migrated installations.
26390e9 Merge branch 'master' of github.com:knadh/listmonk
216c573 Merge pull request #184 from pra85/patch-1
11b0bba Typo in README
eaba083 Merge pull request #182 from scmmishra/sidebar-toggle-fix
abe8c59 fix: update toggle on update:active
ed0d9ee chore: remove stray whitesapce
9147a92 Merge pull request #181 from scmmishra/fix-sidebar
3b141bb style: remove stray tab indentation
427fcf7 fix: inconsistent active link on sidebar navigation
8fe601a Add pagination to lists
1ef1c5a Fix incorrect default values and server response in list creation UI
docker pull listmonk/listmonk:latest
docker pull listmonk/listmonk:v0.8.0-beta
Published by knadh about 4 years ago
This is a major breaking release with a completely rewritten frontend and numerous fixes and improvements. Some of the updates:
List-Unsubscribe
headers.IMPORTANT: BasicAuth Admin authentication is now configurable in config.toml / environment variables. The API endpoints also require authentication. The older Nginx authentication is unnecessary and should be removed. To continue using the old setup (not recommended), leave the admin username and password variables empty.
The configuration file now only has the DB config and a couple other app variables.
./listmonk --new-config
and add the new DB configuration../listmonk --upgrade
to upgrade the DB schema and start ./listmonk
docker-compose stop app
docker-compose pull
. If you are not using :latest
tag in your docker-compose.yml
then edit the file and set the tag to v0.7.0-alpha
.docker-compose run --rm app ./listmonk --upgrade
.docker-compose up -d app db
.0f055ea Fix build scripts (and static file embed)
8c56407 Add rebranded design elements.
d8a60d1 Add automatic update checks.
f3e80da Clean up root and move app to cmd
directory
b822955 Add BasicAuth to admin endpoints.
7ed0755 Fix minor inconsistencies in settings.
16e47dd Load env config before DB initialisation
8979a2a Fix Quill setup to use inline CSS styles instead of classes
b54c5d8 Add upgrade file
5fb7c6c Add support for automatic, idempotent DB migrations
494c519 Upgrade JS dependencies (security fixes)
4703d78 Add a fullscreen option to the campaign richtext editor
378e814 Add campaign search UI.
ccf1c49 Refactor pagination constants
0db9579 Suffix app name in page titles
5ff5c74 Add custom email headers to SMTP settings UI
ec09790 Add support for List-Unsubscribe
header.
7ead052 Fixed reset
not clearing query on subscriber search UI
e4f233e Add missing root_url
to settings UI
8c0804b Refactor blacklist
to blocklist
2143def Fix loss of caret on image insertion in campaign from popup
13a252a Add missing 'opt-in' campaign feature to the new UI
818da1b Add 'clone template' feature to the templates UI
2587d67 Fix template creation API returning incorrect response
d919766 Add 'cancel' icon to campaigns UI
9c8b7ad Fix broken tag clearing on lists and campaign updation
0145aba Add missing tag UI to lists
f9e4a50 Fix incorrect handling of non-JSON responses in APIs
76f4fd6 Show countdown on scheduled campaigns UI
e2e65b1 Polish UI elements and fix styling issues.
942eb7c Add settings UI and "hot reload" support to the app.
d294c95 Merge branch 'refactor-api-resp'
3df889c Refactor global API response handling in axios.
39aa564 Fix missing API response data{} envelope
80ef60d Merge pull request #155 from RaghavSood/hotfix/add-to-lists-by-query
7b62a7f frontend: pass query when changing lists for subscribers
586defe Merge pull request #153 from mr-karan/docker_docs
eae88c1 Add Ctrl+Enter search on the subscriber query exp box
ab8dbd8 Fix advanced subscriber query exp not propagating to search
06bb719 feat: Add separate config for demo setup, tweak docs
525a510 Merge pull request #147 from RaghavSood/hotfix/vue-filenameHash
ceac96b frontend: Enable vue filenameHash
c2613d1 Fix ticker leak in campaign manager message push
fd044f4 Minor refactor to campaign manager.
3e75559 Fix incorrect WYSIWYG image insertion position
1b346b1 Fix 'cancelled' tag colour
b45d49f Fix HTML editor's line bar colour
dc40206 Add syntax highlighted HTML code editor
2651820 Fix campaign message rate display
61f8fae Add 'overwrite?' option to bulk import.
79dd916 Make DB pull batch size in campaign manager configurable
b45a2a0 Fix incorrect record count in the importer
e7da8fa Fix ordering of records on the subscribers page
db032d3 Change campaign status to draft on removing schedule
64d4470 Add {{ templating }} support to e-mail subjects
24192a3 Refactor and fix media uploads.
7f9a811 Merge branch 'vue'
217adf1 Add frontend README
412e016 Add missing save icon
f2030a1 Fix redirect after new campaign creation
1bcd350 Integrate config.js on the frontend
92cb70f Refactor empty/placeholder states with new component
feb5ba0 Add new dashboard (with new metrics)
97583fe Rewrite frontend with Vue+Buevy and ditch React+Ant Design.
75547b6 Refactor subscriber handlers to send opt-in mails on updation.
a03c7bd Default to empty list instead of nil in media response
693b939 Fix incorrect wrapping of subscriber handler
3048ab5 Add a check for zero SMTP config
67eb3db Fix incorrect config check in subscriber data wipe
ae68bd2 Merge pull request #126 from PhilippSeitz/bugfix/status-on-success
f789f06 fix status code on success
7a467a5 Add support for custom e-mail headers per SMTP server
docker pull listmonk/listmonk:latest
docker pull listmonk/listmonk:v0.7.0-alpha
Published by knadh over 4 years ago
82702ed Remove completed items
f06d6b3 Fix optin e-mails on subscriber addition to single option lists
bfe31b7 Fix incorrect param read bug in list deletion handler
3dcff5d Remove redundant log import
c9fc83f Fix comments
docker pull listmonk/listmonk:latest
docker pull listmonk/listmonk:v0.6.2-alpha
Published by knadh over 4 years ago
Breaking changes: This version replaces the old rudimentary SMTP pooling lib with a new one that supports retries, idle timeouts, and graceful fails. This introduces breaking changes in the form of new fields under SMTP configuration: idle_timeout, wait_timeout, max_msg_retries, tls_enabled, tls_skip_verify
.
18329ff Add TLS to SMTP config
docker pull listmonk/listmonk:latest
docker pull listmonk/listmonk:v0.6.1-alpha
Published by knadh over 4 years ago
cb331b9 Merge branch 'master' of github.com:knadh/listmonk
abddcb9 Remove redundant SMTP LOGIN auth implementation
69d3e9b Fix JSON error on HTML form subscription
9d3ca35 Integrate new SMTP pool lib
1e61760 Merge pull request #104 from mr-karan/master
23faa9f fix: Remove root URI on frontend
e58b2fa Fix typo
f498cdd Add support for hosted messages and {{ MessageURL }}
tpl tag.
3a9a2ef Refactor get-campaign
to accept uuid + get body
6bba55f Remove 'campaignDone?' check that incorrectly ignored queued messages in a finishing campaign.
0abc1ae Merge pull request #86 from thejaswinipathi/patch-1
c93ba78 Changed on PR comment
56122c0 Merge pull request #80 from jaredfolkins/master
11c7c60 enhc: add plain text email body along with HTML, add option in config.toml
docker pull listmonk/listmonk:latest
docker pull listmonk/listmonk:v0.6.0-alpha
Published by knadh over 4 years ago
b8d9ab1 Merge branch 'master' of github.com:knadh/listmonk
894ede5 Add support for message throughput rate limiting
55d8185 Merge pull request #78 from bumi/patch-1
8fbbcd3 Add note about Heroku deploy button
docker pull listmonk/listmonk:latest
docker pull listmonk/listmonk:v0.5.2-alpha
Published by knadh over 4 years ago
21ffe5f Clean up [upload] config doc
9dcd716 Add support for SMTP 'LOGIN' auth
71803ab Add support for loading custom static files with --static-dir
bbe239b Added link to Docker env configuration wiki
faf8a7a Add fix for BOM in CSV importers
docker pull listmonk/listmonk:latest
docker pull listmonk/listmonk:v0.5.1-alpha
Published by knadh over 4 years ago
This release has significant changes including several important bug fixes.
listmonk now supports public forms that can be used on public webpages to allow users to signup to mailing lists. This can be found under Lists > Forms
.
ad9ee75 Update build script to reflect new static paths
83d888a Update and cleanup deps
901c456 Fix issues with responsive UI on the campaign page
8771dc2 Refactor init functions for clearer dependency visibility
07856d3 Fix bug in e-mail scheduling
68c4ccd Fix campaign UI to update start/schedule button automatically
ba87801 Fix template preview sending invalid view requests
ca032c8 Refactor manager.CampaignMessage's exposed fields
a0d9a47 Fix incorrect send_at time in installer's sample campaign
442dec9 Fix broken subscriber data export
892d5d2 Remove 'govalidator' package dependecy
d4aea0a Add support for pushing non-campaign message with workers.
5f6a4af Cleanup unnecessary pointers
ac2145d Fix default template path in installer
40ae9cd Minor formatting fixes
709668d Move static assets to 'static' dir
9005bb6 Move internal packages to 'internal' dir
8853809 Refactor and cleanup initialization.
83b49df Add missing error logs
0a2d2d6 Refactor forms UI
276942a Replace outdated UUID lib
4faffe0 Refactor template name in public pages
c08ca14 Add subscription forms
b205761 Update feature list
docker pull listmonk/listmonk:latest
docker pull listmonk/listmonk:v0.5.0-alpha
Published by knadh over 4 years ago
This release introduces breaking changes. It adds support for double-optin lists, subscriptions, and campaigns.
{{ .UnsubscribeURL }}
loses the period and is now {{ UnsubscribeURL }}
. All templates need to be edited to reflect this change.Apply the changes to DB tables by running the following queries.
DROP TYPE IF EXISTS list_optin CASCADE; CREATE TYPE list_optin AS ENUM ('single', 'double');
DROP TYPE IF EXISTS campaign_type CASCADE; CREATE TYPE campaign_type AS ENUM ('regular', 'optin');
ALTER TABLE lists ADD COLUMN optin list_optin NOT NULL DEFAULT 'single';
ALTER TABLE campaigns ADD COLUMN type campaign_type DEFAULT 'regular';
62aa31b Refactor {{ UnsubURL }} into a global function (breaking change)
2ee2e68 Inject version during build into the frontend
f039f35 Link list name to subscribers page on lists UI
afdf053 Add 'send opt-in mail' link to subscriber modal UI
6be3352 Refactor/merge optin-list fetch queries
6cb2cd7 Tweak default list and subscriber entries in install
8616aa8 Remove status
from example on the import UI
ab8bac2 Fix title bug in list modal UI
022b35c Add support for sending 'opt-in' campaigns.
9a890c7 Add button style to default template
af14fff Refactor campaign content type references
ec22170 Fix list ID parsing in campaign UI
a2d21a8 Refactor opt-in subscriber selection queries
ea302d1 Use default template if there isn't one in campaign creation
871893a Add double opt-in support.
bdd42b6 Refactor notificatin data structure
e9685b2 Refactor HTML views with new data structures
f8a2044 Add default values to sample config URLs
f71493e Add PNG logo for e-mails
4abcb28 Refactor template functions.
docker pull listmonk/listmonk:latest
docker pull listmonk/listmonk:v0.4.0-alpha