Files
Claude 52b4606ab5 Add optional per-service companion doc files to write_readme
Any services/<name>.md next to services/<name>.sh gets appended to the
generated ~/docker/<name>/README.md automatically, with no changes needed
to the calling install_<name>() function. Keeps install-time-invariant
walkthroughs (third-party UI linking steps, multi-account setup) out of
the compose/README heredocs, which should stay focused on values chosen
during install.

Add services/traccar.md as the reference example: documents the
per-user Connections-tab linking needed for ntfy notifications to reach
non-admin accounts, and why TEST CHANNELS can return success without
actually sending anything (Traccar's SMS notificator silently no-ops
when the logged-in user's Phone field is empty).
2026-08-04 12:14:32 +00:00

2.1 KiB

Getting ntfy notifications to actually fire (multi-user setup)

If .env has SMS_HTTP_URL set (the ntfy setup above), a Traccar user still needs two separate things configured on their own account before they'll receive anything — this trips people up because both are per-user, not global, and neither is optional:

  1. Their own Phone field set to their ntfy topic. Settings → Users → click the user → Phone field → their topic name. Different users can share one topic or each get their own, depending on whether you want them to see the same alerts or separate ones.

  2. The notification rule linked to that user. Creating a notification (e.g. "Geofence exited" with the SMS channel checked) does not automatically apply to every user — it has to be attached. Go to Settings → Users → click the user → Connections tab, and select which Devices, Geofences, Notifications, and Users are linked to that account. A user only gets alerts for notifications, devices, and geofences actually selected there.

Both steps are required per account. There's no way to configure this once for everyone — a non-admin user who can't see a device/geofence/notification in their own Connections list won't get notified about it, even if the admin configured everything else correctly.

Why "TEST CHANNELS" can return success with nothing arriving

The TEST CHANNELS button only ever tests the currently logged-in session's user — there's no way for an admin to test "as" another account. Worse, it can report success (HTTP 204) even when nothing was sent: Traccar's SMS notificator silently no-ops (no error, no log line) if that user's Phone field is empty, since HttpSmsClient — which is what actually calls out to ntfy and would throw on failure — never gets invoked in that case. A 204 from this button only proves the request loop completed, not that ntfy was reached.

To verify a specific account actually works, log in as that account and click the button there, or just trigger a real matching event (e.g. cross a linked geofence) and watch for the notification.