Setting Up Ntfy Push Notifications in Proxmox VE

For a long time I was flying blind on my Proxmox host. Backups would finish (or fail) in the middle of the night and I wouldn’t know until I happened to log into the web UI and check the logs. That’s not a great way to run a homelab, especially when a failed backup might mean a VM you care about hasn’t been protected in weeks. I wanted push notifications — something that would ping my phone the moment anything noteworthy happened on my Proxmox node.

I’d already been using ntfy for other self-hosted alerting, so it was the natural choice here. Proxmox VE 8.1 introduced a proper notification framework with support for webhook endpoints, and PVE 9.x builds on that. Getting ntfy wired up is actually pretty straightforward once you know where to look. This post covers the full setup against a self-hosted ntfy instance with token authentication.


Prerequisites


Step 1: Pick Your Ntfy Topic

On your self-hosted ntfy instance, create a topic for Proxmox alerts. A topic is just a name you choose — it acts like a channel. For this guide I’ll use Proxmox as the example topic name. Replace it with your own.

Open the ntfy app or your instance’s web UI and subscribe to the topic. You can verify it’s working by opening https://ntfy.yourdomain.com/Proxmox in a browser.

Ntfy app subscribed to the Proxmox topic

Generate an API Token

If your ntfy instance requires authentication (recommended), you’ll need an access token for Proxmox to authenticate when posting notifications.

In the ntfy web UI, go to Settings → Users & Access Tokens and click Create token. Give it a descriptive label like proxmox and set an expiry if you want, or leave it as never expires.

Generating an API token in the ntfy web UI

Copy the token value — it starts with tk_. You’ll paste it into the Proxmox webhook configuration in the next step.


Step 2: Add a Webhook Endpoint in Proxmox

In the Proxmox web UI, navigate to Datacenter → Notifications.

Proxmox Datacenter Notifications panel

Click Add and select Webhook.

Add Webhook Endpoint option in Proxmox

Fill in the fields as follows:

  • Name: ntfy (or whatever you want to call this endpoint)
  • URL: https://ntfy.yourdomain.com/Proxmox
  • Method: POST

Under Headers, add the following:

Header Name Value
Title [{{ severity }}] {{ title }}
Tags {{ fields.hostname }}
Authorization Bearer tk_yourtokenhere

Replace tk_yourtokenhere with the access token from your ntfy instance. You can generate one under Settings → Users & Access Tokens in the ntfy web UI.

Under Body, enter:

{{ message }}

The {{ title }} and {{ message }} placeholders are template variables that Proxmox fills in automatically when sending a notification. title is the short event name (e.g., “vzdump backup job”) and message is the full detail.

Webhook endpoint configuration form filled out

Click Add to save the Webhook.

Click on the new target name and then click Test to send a test notification, then check your Ntfy app or browser to confirm it came through.

Test notification received in Ntfy app

Step 3: Add a Notification Matcher

Endpoints alone don’t do anything — you need a matcher to tell Proxmox which events to send to your new endpoint.

Still in Datacenter → Notifications, under the Notification Matchers section, click Add.

Add Matcher option in Proxmox Notifications

Configure it like this:

  • Matcher Name: ntfy-all (or be descriptive — e.g., ntfy-backups if you only want backup events)
  • Match Rules: leave this set to All rules match. At the bottom, click Add. Change the Note type to Match Severity or restrict to warning and error if you only want failures
  • Targets to notify: select the ntfy endpoint you just created

Leave everything else at defaults unless you want to filter to specific event types. For getting started, matching everything is the most useful — you can always refine it later.

Click Add to save the matcher.

Notification matcher configuration

That’s it for the basic setup. Run a backup job or any task on your node and you should get a notification within seconds of it completing.


Conclusion

It took me longer to write this post than it did to actually set this up, which is a good sign. Proxmox’s notification system is genuinely well designed — once you understand the endpoint and matcher model, it’s flexible enough to handle pretty much any alerting setup you can think of. Pairing it with a self-hosted ntfy instance is a natural fit since it works great on mobile and doesn’t require an email server or any complicated infrastructure.

Having backup job results show up on my phone has been one of those quality-of-life improvements that I now can’t imagine running without.