Skip to content

Notifications

OpenTask supports two notification channels. Both are optional.

Web Push

Works on all platforms including iOS Safari. Notifications are sent directly from your server — no third-party relay.

Setup

  1. Generate VAPID keys:

    bash
    npx web-push generate-vapid-keys
  2. Add the keys to your environment:

    yaml
    # docker-compose.yml
    environment:
      VAPID_PUBLIC_KEY: <your-public-key>
      VAPID_PRIVATE_KEY: <your-private-key>
      VAPID_EMAIL: mailto:you@example.com
  3. Restart OpenTask. Users can enable notifications from Settings.

iOS Native Push (APNs)

Real push notifications with interactive snooze actions on iPhone and Apple Watch. Requires the iOS companion app and an Apple Developer Program membership ($99/year).

Setup

  1. Create an APNs key in the Apple Developer portal
  2. Download the .p8 key file to your server
  3. Add the configuration to your environment:
    yaml
    environment:
      APNS_KEY_ID: <key-id>
      APNS_TEAM_ID: <team-id>
      APNS_KEY_PATH: /path/to/AuthKey.p8
      APNS_BUNDLE_ID: io.mcnitt.opentask
  4. Build and install the iOS companion app (see iOS App)

Notification Actions

From the lock screen or notification banner:

  • Done — Mark the task complete
  • +1hr — Snooze to the next rounded hour
  • All +1hr — Bulk snooze all overdue tasks

Long-press a notification for an interactive snooze grid with preset times, hour increments, and decrements.

Apple Watch handles notification actions directly on the wrist — no iPhone interaction needed.