Install the mobile PWA and enable push
Install OpsKnight on a trusted device, enable push notifications, and verify incident deep links.
Before you begin
Use a supported current browser on a device protected by screen lock. Open OpsKnight through its production HTTPS URL; Web Push requires a secure context. Confirm notification permission is not blocked at OS/browser level and ask an administrator to confirm the Web Push provider is configured.
On iPhone and iPad, open OpsKnight in Safari, select Share -> Add to Home Screen, and launch that installed web app. iOS does not offer OpsKnight Web Push from an ordinary browser tab. On Android and desktop, installation is recommended for reliable background use but browser Push may also be available.
Open the feature
Open /m, sign in, then open More. Use the install and push-notification cards shown for the current browser.
Configure installation and push
- Select the browser's Install app action, or use its add-to-home-screen menu when no prompt appears.
- Launch the installed app and sign in again if the browser uses a separate installed-app session.
- Select Enable and approve the browser/OS prompt. Keep this one action directly initiated by your click; this is required by Safari/iOS/macOS and other browsers with strict user-gesture rules.
- After permission is granted, wait while the card shows Preparing. OpsKnight now prepares its service worker and provider key. On iPhone and iPad this preparation intentionally happens after the native permission prompt, not before you select Enable.
- Keep the device online while OpsKnight creates the browser subscription, saves it to the signed-in account, and verifies registration.
- Confirm the status reads On, then select Send test Push.
- Tap the notification and confirm its deep link opens the expected mobile incident.
What OpsKnight does
The PWA registers a service worker, stores a per-device subscription for the signed-in user, and routes incident notifications to mobile incident detail. The client reconciles the browser subscription, account setting, stored device, and effective server provider state. Installing the PWA does not bypass normal session or trusted-device policy.
The database Web Push provider record is authoritative when it exists. A
complete NEXT_PUBLIC_VAPID_PUBLIC_KEY plus VAPID_PRIVATE_KEY environment
pair is used only when there is no stored provider record. A disabled,
incomplete, or undecryptable stored record does not fall back to environment
credentials. A public key without its private key is not deliverable and is
rejected.
Understand the displayed state
| Status | Meaning | Action |
|---|---|---|
| Preparing | Permission was granted and service-worker/provider preparation is running | Wait; do not repeatedly tap or close the installed app |
| Install required | iOS/iPadOS is not running the installed Home Screen app | Install from Safari and reopen it |
| Blocked | Browser or OS permission is denied | Re-enable notifications in site/OS settings |
| Sign-in required | The server cannot associate this device with a user | Sign in, then return to the card |
| Off | This device has no active subscription | Select Enable |
| On | Browser and server registration are reconciled | Send a test Push |
| Needs repair | Browser/server state differs or the subscription expired | Select Repair, then test |
| Server unavailable | The device exists, but effective provider configuration is unavailable | Retry later or remove this device |
| Needs attention | Preparation or registration failed | Read the message, correct it, and retry |
Verify the setup
Confirm the installed app launches, status is On, a test notification arrives with the app backgrounded, and tapping it opens the correct incident rather than only the mobile home page. Repeat on every device; subscriptions are not automatically copied between devices.
Remove or undo
Select Disable before removing the installed app, then remove the site/app through browser or OS settings. When status is Server unavailable, use Remove this device; cleanup remains available even though delivery is not. OpsKnight removes the server registration before asking the browser to unsubscribe so a failed browser cleanup remains repairable. Revoke the session from security settings if the device is lost or untrusted.
Troubleshooting
- No install option: use HTTPS and a supported browser. On iOS/iPadOS use Safari's Add to Home Screen flow.
- Administrator has not configured Push: ask an administrator to configure a complete Web Push provider. Retrying cannot repair absent VAPID keys.
- Server unavailable: the saved device is preserved while provider state cannot be verified. Retry when the server is healthy, or remove the device.
- Permission denied/Blocked: change the site's notification permission in browser and OS settings, then return and retry.
- Needs repair: select Repair to reconcile an expired or mismatched browser/server subscription, then send a test.
- Preparation fails: request
GET /sw.jsfrom the same public origin and verify HTTP200, no redirect, final path/sw.js, a JavaScript/EcmaScript MIME type, and worker JavaScript rather than login/application HTML. If any check fails, inspect reverse-proxy rewrites, authentication redirects,DISABLE_PWA, and whether the deployed container contains the public service-worker asset. After/sw.jsis correct, reload the installed app and retry; then investigate VAPID configuration if preparation still fails. - Push is On but silent: check OS focus/battery restrictions and use Send test Push. An expired endpoint changes the card to Needs repair.
- Wrong deep link: preserve notification payload details and inspect service-worker logs.
Next steps
Last updated for v2.0.0
Edit this page on GitHub