# 5: Apprise - Notifications Hub

Apprise provides a unified notification gateway (HTTP API) for 90+ providers (email, Slack, Discord, Telegram, etc.). Infinity Tools integrates Apprise for infrastructure alerts (e.g., [Borgmatic](https://docs.speedbits.io/books/3-pro-path/page/6-borgmatic-enterprise-backup-solution "6: Installing Borgmatic - Enterprise Backup Solution")). For provider matrices and syntax, see the [official Apprise documentation](https://github.com/caronc/apprise).

We included it here since [Borgmatic](https://docs.speedbits.io/books/3-pro-path/page/6-borgmatic-enterprise-backup-solution "6: Installing Borgmatic - Enterprise Backup Solution"), the backup solution provided by Infinity Tools, requires it (and we assume you like to create backups).

## Prerequisites

- ✅ Traefik installed (Chapter 4) for HTTPS (optional)
- ✅ Docker running (Chapter 3)
- ✅ Optional: Subdomain (Chapter 4.5), e.g., `alerts.example.com`

## Installation via Infinity Tools

### Menu Installation

```
📱 APPLICATIONS → Apprise → Install
```

### CLI Installation

```
sudo bash /opt/InfinityTools/Solutions/setup-apprise.sh --install
# With domain (Traefik mode)
export APPRISE_DOMAIN="alerts.example.com"
sudo -E bash /opt/InfinityTools/Solutions/setup-apprise.sh --install
```

## Service Endpoints

- Local API: `http://apprise:8000/notify`
- With domain (Traefik): `https://alerts.example.com/notify`

## Provider URLs

Apprise uses provider URLs to define targets:

```
# SMTP (STARTTLS)
mailtos://USERNAME:PASSWORD@SMTP_HOST:587/?from=from@example.com&to=ops@example.com

# Slack (Webhook)
slack://TOKENA/TOKENB/TOKENC

# Telegram
tgram://BOT_TOKEN/CHAT_ID

```

## Sending Notifications

### cURL

```
curl -X POST "http://apprise:8000/notify" \
  -d "title=Backup" \
  -d "body=Borgmatic completed successfully" \
  -d "url=PROVIDER_URL"
```

### JSON

```
curl -X POST "http://apprise:8000/notify" \
  -H 'Content-Type: application/json' \
  -d '{
    "title": "Backup",
    "body": "Borgmatic completed successfully",
    "url": ["PROVIDER_URL1", "PROVIDER_URL2"]
  }'
```

## Integration Notes

- **Borgmatic:** Points to Apprise API for start/finish/failure hooks
- **Other services:** Can post to the same endpoint
- **Security:** Prefer Traefik HTTPS and restrict access if exposing publicly

## Troubleshooting

- Logs: `docker logs apprise`
- Validate provider URL syntax against docs
- Check egress connectivity to provider endpoints

## Next

Proceed to Borgmatic (Chapter 6) to configure automated backups with notifications.