Listmonk Versions Save

High performance, self-hosted, newsletter and mailing list manager with a modern dashboard. Single binary app.

v0.9.0-beta

3 years ago

What is new?

This version includes several bug fixes and improvements including some major new features.

  • Multilingual (i18n) support with 4 bundled languages: Malayalam by @joicemjoseph, German by @m42e , Portuguese by @diogotcorreia, and French by @TomBoss.
  • Query/filter subscriber CSV bulk export.
  • Public subscription form (/subscription/form).
  • Alternate plain text content for HTML e-mails.
  • Rolling / sliding window rate limiting for fine grained control on the speed of outgoing messages.

Changelog

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 images

  • docker pull listmonk/listmonk:latest
  • docker pull listmonk/listmonk:v0.9.0-beta

v0.8.0-beta

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

image

Changelog

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 images

  • docker pull listmonk/listmonk:latest
  • docker pull listmonk/listmonk:v0.8.0-beta

v0.7.0-alpha

3 years ago

This is a major breaking release with a completely rewritten frontend and numerous fixes and improvements. Some of the updates:

  • New frontend and UI. Snappier and responsive.
  • Bulk of the configuration has moved from the TOML file to a new settings UI.
  • Built-in BasicAuth for admin dashboard. The Nginx auth proxy is no longer necessary.
  • Fullscreen richtext editor with a new syntax-highlighted HTML editor.
  • Support for List-Unsubscribe headers.
  • Automatic update check and notification on the dashboard
  • Better controls on the bulk importer.

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.

Upgrading

The configuration file now only has the DB config and a couple other app variables.

Binary

  • Download the latest binary.
  • Backup the old config file, generate a new config file with ./listmonk --new-config and add the new DB configuration.
  • Run ./listmonk --upgrade to upgrade the DB schema and start ./listmonk
  • Go to the "Settings" UI on the dashboard and replicate the settings from the old config file. Imporant: Bulk of the config has moved to the settings UI and should be removed from config.toml or from the environment variables. Only retain what is in config.toml.sample and remove everything else.

Docker

  • Stop the app container using docker-compose stop app
  • Pull the latest version with 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.
  • Run the DB migrations with docker-compose run --rm app ./listmonk --upgrade.
  • Recreate the service with docker-compose up -d app db.
  • Go to the "Settings" UI on the dashboard and replicate the settings from the old config file.

Changelog

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 images

  • docker pull listmonk/listmonk:latest
  • docker pull listmonk/listmonk:v0.7.0-alpha

v0.6.2-alpha

3 years ago

Changelog

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 images

  • docker pull listmonk/listmonk:latest
  • docker pull listmonk/listmonk:v0.6.2-alpha

v0.6.1-alpha

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

Changelog

18329ff Add TLS to SMTP config

Docker images

  • docker pull listmonk/listmonk:latest
  • docker pull listmonk/listmonk:v0.6.1-alpha

v0.6.0-alpha

3 years ago

:warning: Use release v0.6.1-alpha instead of this version (broken TLS support)

Changelog

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 images

  • docker pull listmonk/listmonk:latest
  • docker pull listmonk/listmonk:v0.6.0-alpha

v0.5.2-alpha

4 years ago

Changelog

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 images

  • docker pull listmonk/listmonk:latest
  • docker pull listmonk/listmonk:v0.5.2-alpha

v0.5.1-alpha

4 years ago

Changelog

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 images

  • docker pull listmonk/listmonk:latest
  • docker pull listmonk/listmonk:v0.5.1-alpha

v0.5.0-alpha

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.

Changelog

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 images

  • docker pull listmonk/listmonk:latest
  • docker pull listmonk/listmonk:v0.5.0-alpha

v0.4.0-alpha

4 years ago

This release introduces breaking changes. It adds support for double-optin lists, subscriptions, and campaigns.

listmonk1 listmonk3

Uprading from the previous version.

  • The template function {{ .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';

Changelog

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 images

  • docker pull listmonk/listmonk:latest
  • docker pull listmonk/listmonk:v0.4.0-alpha