> ## Documentation Index
> Fetch the complete documentation index at: https://3to1go.docs.thesteau.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Central notifications

> Get an ntfy message whenever Central receives a snapshot.

Central can post a message to an [ntfy](https://ntfy.sh) topic after the storage step of upload finalization. That includes some storage failures, so a message isn't proof of success. Earlier failures, such as a rejected request or checksum mismatch, do not send a notification. Publishing is optional and best-effort: a failed notification never blocks Central.

<Note>
  Edge has its own, separate notification settings that fire when an upload **succeeds from Edge's side**. See [Edge notifications](/edge/notifications). You can use either or both.
</Note>

## Set up

<Steps>
  <Step title="Open the dialog">
    In Central, click **Configure ntfy**.
  </Step>

  <Step title="Enter your server and topic">
    * **ntfy Server URL**: for example `https://ntfy.sh` or your own server.
    * **Topic**: for example `backups`.
  </Step>

  <Step title="Test and save">
    Click **Test** to send a sample message, then **Save**.
  </Step>
</Steps>

If your ntfy server uses a private CA, add it under [Trusted certificates](/shared/trusted-certificates).

## Only notify for some uploads

Leave these empty to be notified about every upload. Fill any of them to only notify when the upload matches **all** filled fields:

| Field | Matches |
| - | - |
| Match Edge ID | The sending Edge's `EDGE_ID` |
| Match Instance ID | The sending Edge's instance ID |
| Match Source Address | The IP address the upload came from |

## Message template

The default message is:

```text theme={null}
Central received {{ edge_id }}/{{ edge_instance_id }} job {{ job_name }} from {{ advertised_url }} as {{ stored_as }}.
```

Write your own in **Message Template** using these placeholders. **Defaults** restores the default.

| Placeholder | Value |
| - | - |
| `{{ edge_id }}` | Name of the Edge that sent the upload |
| `{{ edge_instance_id }}` | Instance ID of the sending Edge |
| `{{ job_name }}` | Name of the backup job |
| `{{ advertised_url }}` | URL the Edge advertises to Central, if set |
| `{{ source_address }}` | IP address of the sending Edge |
| `{{ stored_as }}` | Filename as stored on Central |

Messages are sent with the header `X-Relay-Event: upload-received`.
