A service for managing web push notifications across multiple projects using Firebase Cloud Messaging (FCM).
- Multi-project support with separate Firebase configurations
- Topic-based notifications
- User-specific notifications
- Customizable notification decorations
- Icon management
- Secure API authentication
- Docker support
Installs the latest release binary as a system service:
curl -sSL https://raw.githubusercontent.com/metalmon/notification-relay/main/install-binary.sh | sudo bash
After installation:
-
Configure your Firebase settings:
sudo nano /etc/notification-relay/config.json
-
Add your service account key:
sudo cp path/to/service-account.json /etc/notification-relay/
-
Start the service:
sudo systemctl start notification-relay sudo systemctl enable notification-relay
Full production installation with Docker support:
curl -sSL https://raw.githubusercontent.com/metalmon/notification-relay/main/install.sh | sudo bash
This method:
- Sets up Docker containers
- Creates system service
- Configures logging
- Sets up proper permissions
- Provides production-ready deployment
- Configuration Guide - Detailed configuration instructions
- Firebase Setup Guide - How to set up Firebase and generate VAPID keys
- API Documentation - API endpoints and usage
- Decoration Guide - Notification decoration configuration
- Icons Guide - Icon configuration and usage
config.json
- Main configuration file (required)credentials.json
- API credentials (auto-generated)decoration.json
- Notification decoration rulestopic-decoration.json
- Topic-specific decoration rulesicons.json
- Project icon pathsuser-device-map.json
- User device token mapping (auto-generated)
NOTIFICATION_RELAY_CONFIG
- Path to config.jsonGOOGLE_APPLICATION_CREDENTIALS
- Path to service account JSONLISTEN_PORT
- Server port (default: 5000)TRUSTED_PROXIES
- Trusted proxy CIDR ranges
- Always use HTTPS in production
- Configure trusted proxies appropriately
- Keep service account and VAPID keys secure
- Use strong API credentials
- Set appropriate file permissions