A powerful, self-hosted notification routing system built with Next.js 16, featuring intelligent rule-based routing, field correlation, and multi-channel delivery.
- 🔀 Intelligent Routing: Dynamic rule-based notification routing with AND/OR logic
- ⏱️ Field Correlation: Track and correlate notifications across multiple sources within time windows
- 📡 Multi-Channel Support: Gotify, Discord, Slack, Telegram, Email, Apprise, and custom webhooks
- 🎯 Unified Rule System:
- Immediate rules for instant triggers
- Correlation rules for multi-source verification
- 📊 Comprehensive Logging: Track all webhook requests and rule triggers
- 🔐 Secure Authentication: Single-user mode with Auth.js v5
- 🐳 Docker Ready: Full Docker and Docker Compose support
- ⚡ High Performance: Built on Next.js 16 with Turbopack
# Pull the latest image
docker pull ghcr.io/surgical17/smart-notification-router:main
# Run with environment variables
docker run -d \
-p 3000:3000 \
-e DATABASE_URL=file:/app/prisma/dev.db \
-e AUTH_SECRET=your-secret-key-here \
-e AUTH_URL=http://localhost:3000 \
-v smart-router-data:/app/prisma \
ghcr.io/surgical17/smart-notification-router:main# docker-compose.yml
version: '3.8'
services:
smart-notification-router:
image: ghcr.io/surgical17/smart-notification-router:main
ports:
- "3000:3000"
environment:
- DATABASE_URL=file:/app/prisma/dev.db
- AUTH_SECRET=your-secret-key-here
- AUTH_URL=http://localhost:3000
volumes:
- smart-router-data:/app/prisma
restart: unless-stopped
volumes:
smart-router-data:# Clone the repository
git clone https://github.com/Surgical17/smart-notification-router.git
cd smart-notification-router
# Create environment file
cp .env.example .env
# Edit .env and set AUTH_SECRET (generate with: openssl rand -base64 32)
# Start with Docker Compose
docker-compose up -d
# View logs
docker-compose logs -fThe application will be available at http://localhost:3000
# Install dependencies
npm install
# Setup database
npx prisma generate
npx prisma db push
# Run development server
npm run dev- Setup Guide - Detailed setup instructions
- Deployment Guide - Production deployment with Docker and GitHub Actions
- Features - Complete feature documentation
- Changelog - Version history and changes
- Navigate to
http://localhost:3000/register - Create your admin account (only one user allowed)
- Login and start creating webhooks and rules
# Database
DATABASE_URL=file:./prisma/dev.db
# Authentication (REQUIRED)
AUTH_SECRET=your-secret-key-here
AUTH_URL=http://localhost:3000
# Node Environment
NODE_ENV=developmentReceive alerts only when multiple monitoring systems confirm an issue:
- Nagios reports down → wait
- Zabbix confirms → wait
- Prometheus confirms → ALERT!
Track deployments across regions and alert when all complete:
- US-East deployed → wait
- EU-West deployed → wait
- AP-Southeast deployed → SUCCESS!
Correlate health checks from multiple services:
- Database healthy → wait
- Cache healthy → wait
- API healthy → ALL SYSTEMS GO!
- Frontend: Next.js 16 (App Router), React 19, TailwindCSS, shadcn/ui
- Backend: Next.js API Routes, Prisma ORM
- Database: SQLite (default), PostgreSQL compatible
- Authentication: Auth.js v5 (NextAuth)
- Notifications: Apprise CLI, Direct integrations
- Deployment: Docker, Docker Compose
Incoming Webhooks
↓
Rule Engine (Immediate Rules)
↓
Field Correlation Engine
↓
Notification Dispatcher
↓
Multi-Channel Delivery
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
The official Docker image is automatically built and published via GitHub Actions on every push to main.
docker pull ghcr.io/surgical17/smart-notification-router:mainAvailable tags:
main- Latest stable build from main branchstaging- Development builds from staging branch
For issues, questions, or feature requests:
- Open an issue on GitHub
- Check the documentation
Version: 0.7.0.2 Status: Production Ready
