mirror of
https://github.com/wu736139669/hapi.git
synced 2026-10-06 18:39:47 +00:00
90 lines
3.4 KiB
Markdown
90 lines
3.4 KiB
Markdown
# Notifications
|
|
|
|
Get notified when sessions need input, request permissions, fail, or complete — via native app notifications, Telegram, Server酱 (ServerChan), Web Push, or voice.
|
|
|
|
Web Push needs no provider configuration: [install the PWA](./pwa.md) and allow notifications. The channels below are optional.
|
|
|
|
## Native app notifications
|
|
|
|
See [Native apps](./native-apps.md) for build, pairing and platform requirements.
|
|
|
|
For official Android and iOS apps, pair an updated hub and allow notifications.
|
|
No Firebase project or Apple developer account is needed. Notification content
|
|
is end-to-end encrypted through the official push relay, which also works when
|
|
you access the hub through Tailscale or your own HTTPS setup. Android requires
|
|
Google Play services and FCM connectivity.
|
|
|
|
Private app builds need matching Firebase/APNs credentials. An Android build
|
|
without Firebase configuration has no FCM push. For a self-signed iOS build,
|
|
the signing account, bundle ID and APNs environment must match the provider
|
|
configuration; the official relay cannot deliver to an arbitrary self-build.
|
|
See the [native push contract](../api/native-companion-contract.md) for settings
|
|
and delivery details. This push relay is independent of the `--relay` network
|
|
tunnel.
|
|
|
|
## Telegram Setup
|
|
|
|
Enable Telegram notifications and Mini App access:
|
|
|
|
1. Message [@BotFather](https://t.me/BotFather) and create a bot
|
|
2. Set the bot token and public URL
|
|
3. Start the hub and bind your account
|
|
|
|
```bash
|
|
export TELEGRAM_BOT_TOKEN="your-bot-token"
|
|
export HAPI_PUBLIC_URL="https://your-public-url"
|
|
|
|
hapi hub
|
|
```
|
|
|
|
Then message your bot with `/start`, open the app, and bind using
|
|
`CLI_API_TOKEN:<namespace>` (for example, `your-token:default`).
|
|
|
|
Related environment variables:
|
|
|
|
- `TELEGRAM_NOTIFICATION` - Enable/disable Telegram notifications (default: `true`)
|
|
|
|
**Troubleshooting:**
|
|
|
|
- If binding fails, verify `HAPI_PUBLIC_URL` is accessible from the internet
|
|
- Telegram Mini App requires HTTPS (not HTTP)
|
|
|
|
## ServerChan (Server酱) Setup
|
|
|
|
Server酱 pushes notifications to WeChat and other channels. The hub sends ServerChan messages when a session is ready for input, requests a permission, a task fails, or a session completes.
|
|
|
|
1. Get a SendKey from [sct.ftqq.com](https://sct.ftqq.com/)
|
|
2. Set the SendKey and start the hub:
|
|
|
|
```bash
|
|
export SERVERCHAN_SENDKEY="your-sendkey"
|
|
export HAPI_PUBLIC_URL="https://your-public-url"
|
|
|
|
hapi hub
|
|
```
|
|
|
|
Messages include a link back to the session, built from `HAPI_PUBLIC_URL`.
|
|
|
|
Related environment variables:
|
|
|
|
- `SERVERCHAN_NOTIFICATION` - Enable/disable ServerChan notifications (default: `true`)
|
|
- `SERVERCHAN_BACKGROUND_ONLY` - Only send ServerChan notifications when the namespace has no visible HAPI connection (default: `false`)
|
|
|
|
When `SERVERCHAN_BACKGROUND_ONLY=true`, a visible HAPI connection suppresses ServerChan for the entire namespace. Hidden, disconnected, or closed HAPI pages do not count as visible, so ServerChan can act as a background fallback. This is namespace-wide and does not select a particular device.
|
|
|
|
These values can also be set in `settings.json` (`serverChanSendKey`, `serverChanNotification`, `serverChanBackgroundOnly`).
|
|
|
|
## Voice assistant setup
|
|
|
|
Enable voice control:
|
|
|
|
1. Get an API key from [elevenlabs.io](https://elevenlabs.io/app/settings/api-keys)
|
|
2. Set the environment variable:
|
|
|
|
```bash
|
|
export ELEVENLABS_API_KEY="your-api-key"
|
|
hapi hub --relay
|
|
```
|
|
|
|
See [Voice Assistant](./voice-assistant.md) for usage details.
|