Skip to content

v2.1.0

Compare
Choose a tag to compare
@github-actions github-actions released this 12 Feb 15:30
· 510 commits to master since this release

listmonk-logo

This version contains a number of fixes, improvements, (small) feature additions, and performance improvements.

Improvements

  • An improved mobile UI and CSS/JS customization for admin and public pages from the settings UI under the new "Appearance" tab. This reduces the need for loading custom templates with --static-dir. Contributed by @sweetppro
  • Accurate, realtime messages / minute counter on running campaigns.
  • --passive mode (that doesn't process campaigns) for running multiple instances of the app.
  • Per-campaign custom SMTP headers.
  • TLS (in addition to STARTTLS) support for SMTP servers.
  • Accurate unconfirmed / confirmed / unsubscribed counts on the lists UI.
  • Search lists like campaigns.
  • Support for public CDN endpoints in media uploads.
  • {{ TrackLink }} now accepts dynamic arguments, such as a link from subscriber's attributes.
  • Campaign analytics now shows unique counts if individual tracking is turned on.
  • New Dutch (@Jjagg) and Hungarian (@bohemtucsok) language packs.

Fixes

  • POP3 bounce mail scanning on mail envelopes.
  • S3/IAM blocking indefinitely on bad configuration in non-AWS environments.
  • Richtext / HTML conversion adding stray spaces to links in the editor.
  • A number of other minor UX fixes.

Shoutout to @NicoHood for patiently reporting a number of UX glitches and suggesting improvements.

How to upgrade

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

Changes to public templates

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.

What's next?

  • Transactional e-mails and messages.
  • (Multi) user management system.

Changelog

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_ids.
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