---
title: "Deploy On-call Notification Router with Apprise"
description: "An authenticated notification router with persistent provider routes."
category: "Observability"
url: https://railway.com/deploy/on-call-notification-router-with-apprise
---

# Deploy On-call Notification Router with Apprise

An authenticated notification router with persistent provider routes.

**[Deploy On-call Notification Router with Apprise on Railway](https://railway.com/template/on-call-notification-router-with-apprise)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/on-call-notification-router-with-apprise/manifest.json

- **Creator:** dankeewithtwoes's Projects
- **Category:** Observability

## Template content

### App

- **Image:** caronc/apprise@sha256:0b2913b15c8eb47c25345722985ffbfae701326edde21909c205d296d62dd52c

### Gateway

- **Image:** caddy@sha256:d8542f48d34a9cf4e4c11a478865229840e87e4c96ea3f439101f31a5d35f75f
- **Start command:** `/bin/sh -c 'set -eu; hash=$(caddy hash-password --plaintext "$GATEWAY_PASSWORD"); printf "{\n admin off\n auto_https off\n}\n:8080 {\n header X-Robots-Tag noindex\n basic_auth {\n operator %s\n }\n reverse_proxy %s {\n header_up X-Forwarded-Proto https\n }\n}\n" "$hash" "$UPSTREAM" > /tmp/Caddyfile; exec caddy run --config /tmp/Caddyfile --adapter caddyfile'`
- **Public domain:** Yes

## Documentation

# Deploy and Host On-call Notification Router with Apprise on Railway

An authenticated notification router with persistent provider routes.

## About Hosting On-call Notification Router with Apprise

Small on-call teams consolidating alert delivery from scripts.

Sign in through the operator gateway, create a route configuration with your own provider URLs and send a test notification. Scripts must authenticate to the gateway with Basic auth. Use curl -u operator:YOUR_PASSWORD and the upstream /notify endpoint.

### Included services and storage

| Service | Persistent storage | Public access |
| --- | --- | --- |
| App | /config | Private network only |
| Gateway | None; container state is disposable | HTTPS domain |

### First deployment

1. Review required inputs in the deploy form and supply your own administrator email where requested.
2. Deploy the services and wait for the application and any database migrations to finish.
3. Open the generated HTTPS domain and follow the workflow above.
4. For the first browser prompt use username `operator` and the generated `Gateway.GATEWAY_PASSWORD` from Railway variables. App-specific accounts, where present, remain separate. The App service has no public domain.

## Why Deploy On-call Notification Router with Apprise on Railway

The definition supplies an HTTPS endpoint, generated credentials where supported and explicit storage paths. PostgreSQL, when present, stays private. Public upstream image manifests are locked to immutable digests so an upstream tag change does not silently replace a running version.

## Common Use Cases

- Route a backup-script alert.
- Fan out a deployment notification.
- Keep notification destinations outside application code.

## Dependencies for On-call Notification Router with Apprise

- [Upstream application and its documentation](https://github.com/caronc/apprise-api). The upstream authors own the application and its license. This recipe does not claim application authorship or official endorsement.
- Caddy gateway using generated Basic authentication and WebSocket-capable reverse proxying.
- A Railway plan with resources sufficient for these services. Hosting, storage and outbound traffic are billed by Railway; no software subscription, bank connection, SMTP account or provider credit is included.

### Operational limits and backups

The template includes no messaging accounts or delivery credits. Provider URLs can contain secrets and are stored on the /config volume. Attachments are disabled. This is a notification gateway, not an alert scheduler or an end-to-end delivery guarantee.

Run one replica for volume-backed applications. Schedule volume backups and export important application data; a persistent volume is not a backup. Keep generated secrets with the backups and review upstream migration notes before changing the pinned image. Credentials cannot all be rotated by changing first-run environment variables after accounts already exist.

### Validation status

Prepared on 2026-10-18 from upstream installation documentation and public image manifests. Railway schema, variable references and publication metadata are checked before publication. Application runtime boot checks were not performed. This is an independently authored deployment recipe for existing software, not a claim of novel software, audited security or Railway partner verification.


## Deploy this recipe

[![Deploy on Railway](https://railway.com/button.svg)](https://railway.com/new/template/on-call-notification-router-with-apprise?utm_source=railway-marketplace&amp;utm_medium=listing&amp;utm_campaign=toolkit-discovery&amp;utm_content=oncall-notification-router)

Review the required inputs and hosting resource costs before deploying.

### Related deployment recipes

- [ntfy Private Notifications with Persistent Data](https://railway.com/template/ntfy-private-notifications-with-persiste) — Private push notifications with generated admin and persistent storage.
- [n8n with PostgreSQL &amp; Durable Storage](https://railway.com/template/n8n-with-postgresql-and-durable-storage) — Workflow automation with private Postgres, durable files and webhook URLs.
- [Uptime Kuma with Persistent Storage](https://railway.com/template/uptime-kuma-with-persistent-storage) — Uptime checks, alerts and status pages with persistent monitor data.

These are separate deployments; no preconfigured integration between the applications is implied.

Disclosure: this template is maintained independently. Its maintainer may earn Railway usage kickbacks when other people deploy it. Railway bills hosting separately; no paid software subscription or provider credits are included.



## Similar templates

- [Rootprint](https://railway.com/deploy/rootprint-1) — Open-source logs and traces with full-text search on object-storage.
- [VPS Fleet Watch Hub with Beszel](https://railway.com/deploy/vps-fleet-watch-hub-with-beszel) — A persistent Beszel hub for external VPS agents and fleet alerts.
- [Pyroscope profiling](https://railway.com/deploy/pyroscope-profiling) — Protected continuous profiling with durable Pyroscope storage.

Open this page in a browser: https://railway.com/deploy/on-call-notification-router-with-apprise
