Symptom: Clicking the add-on in the HA sidebar shows a white/blank screen.
Cause: ntfy's web app is a React Single-Page Application that loads all assets using absolute paths (e.g. /static/js/app.js). When served through HA Ingress, the browser requests these assets from the HA root path instead of the ntfy path โ resulting in 404 errors and a broken app.
Workaround: Always access ntfy directly:
http://homeassistant.local:4280
Fix status: Cannot be fixed in this add-on without a change in ntfy upstream to support a configurable base-path. This is a known ntfy issue.
#Token List Not Available in Admin Panel
Symptom: The Tokens tab in the Admin Panel cannot display existing tokens.
Cause: The token listing API (GET /v1/account/token) is a user-scoped endpoint that requires the request to come from the same origin as the server. The admin panel runs on port 4281 while ntfy is on port 4280 โ the browser blocks the cross-origin request for security reasons.
Workaround: To view or delete tokens, use the ntfy web UI:
http://homeassistant.local:4280 โ Account โ Access Tokens
Fix status: Would require either a dedicated admin token endpoint in ntfy, or serving the admin panel from the same port as ntfy (which would require significant architectural changes).
#Cannot Change User Roles via Admin Panel
Symptom: There is no "Change Role" button in the user table.
Cause: The ntfy v2 REST API (PUT /v1/users) only creates new users. It rejects the request if the user already exists. There is no dedicated endpoint for updating the role of an existing user.
Workaround:
- To promote a
user to admin: set admin_username in the add-on config to their username, restart โ the account gets the admin role.
- To demote an
admin to user: delete and recreate the account as a regular user.
#Cannot Delete or Modify Admin Accounts via API
Symptom: Delete and Change Password buttons are hidden for admin accounts.
Cause: The ntfy API returns 401 unauthorized: can only remove regular users from API when attempting to delete or modify admin accounts. This is a deliberate security restriction in ntfy.
Workaround: Admin accounts can only be managed via the add-on configuration (admin_username / admin_password). Change the config and restart to update the admin password.
#Only One Admin Account in Config
Symptom: There is only one admin_username / admin_password field in the configuration.
Cause: To keep the config simple, we support bootstrapping one admin at a time.
Workaround: To create multiple admin accounts, change admin_username to the second admin, restart, then set it back and restart again. See Configuration for step-by-step instructions.
#No Multi-Architecture Support for armhf / armv7 / i386
The add-on only supports amd64 and aarch64. Home Assistant has dropped official support for armhf, armv7 and i386 hardware. If you are running one of these architectures, it is recommended to migrate to a supported platform.
Here are the current CLI limitations in our add-on and whether they're fixable:
1. No interactive CLI access for the user
The add-on has no shell or terminal exposed. You have to go through docker exec via the HA SSH add-on every time. It's clunky and not documented anywhere visible.
โ Fixable: We could add a small shell script wrapper or a button in the admin panel that generates the correct docker exec command pre-filled with the container ID.
2. NTFY_AUTH_FILE must be set manually every time
The CLI doesn't auto-detect the database path โ if you forget export NTFY_AUTH_FILE=/data/ntfy/user.db every command silently fails or errors.
โ Fixable: Could be solved by adding a shell profile (/etc/profile.d/ntfy.sh) inside the container that exports it automatically on login. One line in the Dockerfile.
3. No token auto-provisioning
Tokens for HA rest_commands have to be created manually via CLI or Web UI after every fresh install. If the database resets, the token is gone and HA automations break silently with 403.
โ Fixable: We could generate a fixed HA token at startup in run.sh (same way we create the admin user), log it once, and optionally write it to a known file in /data/ntfy/.
4. Password input is interactive
ntfy user add and ntfy user change-pass prompt for a password interactively. In scripts you have to pass NTFY_PASSWORD=... as an env var โ that's not obvious and not documented for users.
โ Already partially solved in our run.sh via NTFY_PASSWORD env var for the admin bootstrap. But not documented anywhere for manual use.
5. No ACL management in the admin panel
Topic-level access control (ntfy access) is entirely CLI-only โ there's no UI for it, not even in the official ntfy Web UI.
โ Fixable in our admin panel: We could add an ACL section that calls the ntfy API to read and write access rules. Would be a meaningful addition over Farmer Ed's setup.
Summary โ what's worth fixing:
| Limitation |
Fix effort |
Impact |
| Token auto-provisioning at startup |
Low โ few lines in run.sh |
High โ prevents 403 after reinstall |
Auto-set NTFY_AUTH_FILE in container profile |
Very low โ one Dockerfile line |
Medium |
| ACL management in admin panel |
Medium |
High โ currently CLI-only |
| Interactive password annoyance |
Already solved internally |
Low |