Iris is a comprehensive alert management and notification system designed to receive alerts from monitoring systems like Grafana and AlertManager, and dispatch notifications through multiple channels including SMS and email.
- Alert Management: Receive, store, and manage alerts from AlertManager
- Multi-Channel Notifications: Support for SMS (Kavenegar, Smsir)
- User & Role Management: Complete RBAC (Role-Based Access Control) system
- Group Management: Organize users into groups for efficient alert routing
- Web Dashboard: React-based web interface for monitoring and managing alerts
- Notification Providers: Configurable priority-based notification provider system
- Schedulers: Background workers for processing alerts and messages
- RESTful API: Comprehensive REST API for integration
- JWT Authentication: Secure token-based authentication
- CAPTCHA Support: Built-in CAPTCHA for user registration
- Go: 1.23.0 or higher
- PostgreSQL: 13 or higher
- Node.js: 16 or higher (for web frontend)
- Git: For version control
git clone https://github.com/lyralab/iris.git
cd irisgo mod downloadcd web
npm install
cd ..Create a PostgreSQL database:
CREATE DATABASE iris;
CREATE USER iris_user WITH PASSWORD 'your_password';
GRANT ALL PRIVILEGES ON DATABASE iris TO iris_user;The application automatically runs migrations on startup.
-
Error: "JWT_SECRET not set"
- Solution: Set the
JWT_SECRETenvironment variable
- Solution: Set the
-
Error: Database connection failed
- Solution: Check database credentials and ensure PostgreSQL is running
- Check that the appropriate notification provider is enabled
- Verify API tokens are correct
- Check scheduler configuration
- Review application logs for errors
- Verify the backend is running
- Check the
base_urlinweb/src/config.js - Ensure CORS is properly configured
- Follow Go best practices and conventions
- Use meaningful variable and function names
- Add comments for exported functions
- Write tests for new features
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
For issues and questions:
- Create an issue on GitHub
- Contact the development team
- MIT