docs: fix VAPID_SUBJECT (no mailto:), add recent features to roadmap

- Self-Hosting: VAPID_SUBJECT without mailto: prefix (library adds it)
- Self-Hosting: fix keygen command to go run ./cmd/keygen
- Self-Hosting: add iOS/Android push delivery notes
- Roadmap: add formatting toolbar, DM kaomoji/GIFs, last-channel restore, DM push
2026-07-06 14:06:18 -04:00
parent 5d46d600c8
commit 2238a0fddc
2 changed files with 10 additions and 7 deletions
+4 -1
@@ -81,4 +81,7 @@
- [x] WebAuthn passkey backend (full begin/finish flow) - [x] WebAuthn passkey backend (full begin/finish flow)
- [x] WebAuthn passkey frontend (register/login buttons) - [x] WebAuthn passkey frontend (register/login buttons)
- [x] REST API documentation (Swagger UI at /docs) - [x] REST API documentation (Swagger UI at /docs)
- [x] Swaggo handler annotations (in progress) - [x] Inline markdown formatting toolbar (B/I/S/code/spoiler)
- [x] GIF picker and kaomoji in DMs
- [x] Restore last active channel on login
- [x] DM push notifications
+6 -6
@@ -50,7 +50,7 @@ GIPHY_API_KEY=<your-key>
# Push notifications (optional) # Push notifications (optional)
VAPID_PUBLIC_KEY=<generated> VAPID_PUBLIC_KEY=<generated>
VAPID_PRIVATE_KEY=<generated> VAPID_PRIVATE_KEY=<generated>
VAPID_SUBJECT=mailto:admin@your.domain VAPID_SUBJECT=admin@your.domain
``` ```
## Ports required ## Ports required
@@ -125,19 +125,19 @@ To enable push notifications:
1. Generate VAPID keys: 1. Generate VAPID keys:
```bash ```bash
# Use any VAPID key generator, e.g.: go run ./cmd/keygen
go run -exec "go run ./cmd/gen-vapid" .
# Or use an online generator
``` ```
2. Add to `.env`: 2. Add to `.env`:
```env ```env
VAPID_PUBLIC_KEY=<generated> VAPID_PUBLIC_KEY=<generated>
VAPID_PRIVATE_KEY=<generated> VAPID_PRIVATE_KEY=<generated>
VAPID_SUBJECT=mailto:admin@your.domain VAPID_SUBJECT=admin@your.domain
``` ```
3. Users can subscribe via the web UI (browser notifications) Set `VAPID_SUBJECT` to your email address **without** the `mailto:` prefix (the library adds it automatically).
3. Users are auto-subscribed on login. On iOS, the prompt requires a tap gesture (a banner appears). On Android, notifications deliver through FCM when Chrome is running. Ensure Chrome battery optimization is set to Unrestricted for reliable delivery when the PWA is closed.
## Roles & permissions ## Roles & permissions