An alert notification system for monitoring and visualizing alerts from various monitoring platforms. Built with Rust and Dioxus, chauve provides a clean, responsive interface for aggregating and displaying alerts from multiple sources.
- Install Rust (1.70+ recommended)
- Clone this repository
- Install Dioxus CLI:
cargo install dioxus-cli
- Start the development app:
dx serve --desktop
- in another shell, sync tailwind css
npx @tailwindcss/cli -i ./assets/source.css -o ./assets/main.css --watch
Configure your alert providers in Settings.toml. Currently, Grafana is supported as a provider:
[grafana]
url = "https://your-grafana-instance.com"
token = "your-api-token"You can configure multiple Grafana instances by adding multiple entries.
The project follows a clean architecture pattern with clear separation of concerns:
src/
├── entities/ # Data models and core entities
├── providers/ # External service integrations
├── ui/ # User interface components
├── poller.rs # Alert polling logic
└── settings.rs # Configuration management
The architecture is extensible to support multiple alert providers through a plugin system. Currently, Grafana integration is implemented, but the design allows for easy addition of other providers like Prometheus, Datadog, etc.
- Real-time alert monitoring with 5-second auto-refresh
- Manual refresh capability via "Update!" button
- Clean, responsive UI built with Dioxus and Tailwind CSS
- Support for multiple Grafana instances
- Extensible provider architecture
- Add support for additional providers (Prometheus, Datadog, etc.)
- Implement configurable refresh intervals
- Add alert filtering and grouping by severity
- Enhanced error handling and notifications
- Improved settings validation
Contributions are welcome! Please feel free to submit issues or pull requests.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -am 'Add some amazing feature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a pull request
Distributed under the MIT License. See LICENSE for more information.