Files
remark42/backend/_example/memory_store
Dmitry VerkhoturovandUmputun f8f2becb4b Fix dropped notification errors and switch to errors.Join
notify/email.go accumulated multi-recipient errors with
multierror.Append(fmt.Errorf(...)) instead of
multierror.Append(result, ...), so the accumulator was overwritten each
iteration and only the last failing recipient's error survived; earlier
failures were silently dropped. The telegram notifier did it correctly.

Replace hashicorp/go-multierror with the stdlib errors.Join everywhere
it was used (notify/email.go, notify/telegram.go, rest/api/rest_private.go,
store/service/service.go, store/image/image.go and store/engine/bolt.go),
which fixes the bug and drops the direct dependency. It stays indirect
because go-pkgz/lcw/v2 still imports it. A regression test in
email_test.go now sends two failing recipients and asserts both errors
are reported.
2026-07-11 01:28:31 -05:00
..
2022-07-19 17:13:02 -05:00

sample store implementation

memory_store illustrates how to make a custom storage plugin for remark42.

In order to run remark42 with memory_store copy provided compose-dev-memstore.yml to the root directory and run:

  1. docker compose -f compose-dev-memstore.yml build
  2. docker compose -f compose-dev-memstore.yml up

As usual, demo site will run on http://127.0.0.1:8080/web/

note: in order to work with the latest (current) version of master go.mod uses replacement directive for the backend package. In real-life usage replace github.com/umputun/remark42/backend => ../../ should not be used.