Skip to content
forked from DartSteven/Nutify

Modern web-based UPS monitoring system with real-time data visualization, alerts, and comprehensive reporting. Docker-ready with multi-architecture support.

Notifications You must be signed in to change notification settings

andrema2/Nutify

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nutify Official Logo

Buy Me a Coffee Help Testing Wiki Changelog Multi Monitor ?

Join our Discord channel for any issues, questions, information, or testing!

Nutify Bugs Nutify Help Nutify Support

If you like Nutify, please give it a ⭐️ on GitHub to help the project grow!

Nutify - UPS Monitoring System

Nutify is a comprehensive monitoring system designed to track the health and performance of your Uninterruptible Power Supply (UPS) devices. It provides real-time insights into critical UPS metrics, allowing you to ensure the continuous operation and protection of your valuable equipment. Nutify collects data, generates detailed reports, and visualizes key parameters through interactive charts, all accessible via a user-friendly web interface.

Setup Wizard - Mode Selection Setup Wizard - Complete

Setup Wizard - Mode Selection Setup Wizard - Complete

🆕 LATEST DOCKER IMAGES
Use these tags to always get the latest version:
• AMD64/x86_64: dartsteven/nutify:amd64-latest
• ARM64/aarch64: dartsteven/nutify:arm64-latest

📊 Is Nutify working with your UPS?
Please share your experience in the Discussions section under "Nutify UPS Compatibility List". Your feedback helps the community!

Latest Version

Current Version: 0.1.7 (07/07/2025)

For a detailed list of changes and improvements, please see the changelog.txt file.

⚠️ IMPORTANT: Latest Updates in v0.1.7 ⚠️

Version 0.1.7 introduces significant improvements including:

  • User Authentication System: Multi-user login with configurable permissions for individual pages and options
  • Enhanced Security: Comprehensive permission system for all configuration areas
  • Improved Setup Wizard: Fixed UI issues and enhanced user experience
  • System Stability: Upgraded to NUT 2.8.3 and improved core architecture
  • Better Reporting: Fixed time/battery reports with enhanced pandas integration

👉 For detailed information on new features and migration, please see the Nutify Wiki.

Key Features

  • Real-time UPS Monitoring: Continuously collects and displays data from your UPS devices
  • User Authentication System: Multi-user login with granular permission control for individual pages and configuration areas
  • Detailed Reports: Generates comprehensive reports on UPS performance with enhanced pandas integration
  • Interactive Charts: Visualizes UPS data using interactive charts
  • Setup Wizard: Enhanced configuration wizard with improved UI and navigation
  • Customizable Dashboards: Provides a web-based dashboard to view real-time data
  • Data Persistence: Stores historical UPS data in a SQLite database with improved schema
  • Dockerized Deployment: Easily deployable using Docker and Docker Compose
  • Flexible Deployment Modes: Run as a complete NUT server or as a lightweight client connecting to a remote NUT server
  • Robust Mode Detection: Multi-layered CLIENT/SERVER mode detection with automatic fallback mechanisms
  • Enhanced Notification System: Database-driven notifications with multiple channels (Email, Ntfy, Webhooks)
  • Discord Integration: Send notifications directly to Discord channels
  • System Monitoring: Real-time RAM and CPU usage widgets in the dashboard header
  • Multi-account Email Support: Configure multiple email accounts for notifications with simplified provider setup
  • Energy Monitoring: Detailed analysis of energy consumption
  • Battery Management: Monitoring of battery status and performance
  • Event Management: Logging and notification of UPS events
  • UPS Commands: Interface to send commands to the UPS with permission control
  • Dark/Light Theme: Customizable interface with both dark and light themes
  • Automated Reports: Scheduled reports with detailed UPS status and improved accuracy
  • Push Notifications: Integration with Ntfy for instant mobile alerts
  • Webhook Integration: Flexible HTTP callbacks for third-party system integration
  • Advanced Configuration: Fine-grained control over NUT settings and polling with user-based access
  • Connection Recovery: Automatic reconnection and recovery from UPS communication failures
  • Optimized Event Handling: Native Python integration with upsmon.conf for improved stability and responsiveness
  • WebSocket-based Real-time Data: Efficient caching system significantly reducing CPU and RAM usage
  • Modular Architecture: Extensible design with clean separation of concerns
  • Professional Branding: Official logo and favicon for consistent identity across platforms
  • Expanded UPS Support: Added drivers for a wider range of UPS models
  • Enhanced Security: User authentication and permission system protecting configuration areas

Quick Start

To run Nutify using Docker Compose:

  1. Create a docker-compose.yaml file with the following minimal configuration:
services:
  nut:
    image: dartsteven/nutify:arm64-latest  # Use amd64-latest or armv7-latest based on your architecture
    container_name: Nutify
    privileged: true
    cap_add:
      - SYS_ADMIN
      - SYS_RAWIO
      - MKNOD
    devices:
      - /dev/bus/usb:/dev/bus/usb:rwm
    device_cgroup_rules:
      - 'c 189:* rwm'
    volumes:
      - ./Nutify/logs:/app/nutify/logs
      - ./Nutify/instance:/app/nutify/instance
      - ./Nutify/ssl:/app/ssl
      - ./Nutify/etc/nut:/etc/nut
      - /dev:/dev:rw              # Full /dev access improves hotplug handling
      - /run/udev:/run/udev:ro    # Access to udev events
    environment:

      - SECRET_KEY=test1234567890 # for password encryption and decryption in the database
      - UDEV=1                    # Improve USB detection
    ports:
      - 3493:3493
      - 5050:5050
      - 443:443
    restart: always
    user: root
  1. Start Nutify:

    docker-compose up -d
  2. Access the Setup Wizard: Open your web browser and navigate to http://localhost:5050

  3. Follow the Setup Wizard for initial configuration:

    • Select your Timezone.
    • Choose the Operating Mode:
      • SERVER (Standalone): If the UPS is directly connected to this machine.
      • CLIENT (Netclient): If connecting to a remote NUT server.
    • Enter a Name for your UPS (e.g., myups).
    • Configure the connection details (driver, port, etc.). The wizard can attempt Automatic Detection or allow Manual Configuration.
    • Review your settings.
    • Save & Restart to apply the configuration.

Web-Based Configuration

Nutify 0.1.6 introduces a new setup wizard that simplifies the entire configuration process. Instead of manually editing the docker-compose.yaml file, you can now:

  1. Start with minimal configuration: Only a few environment variables are needed in docker-compose.yaml
  2. Access the web interface: Navigate to the web UI after starting the container
  3. Follow the setup wizard: Step-by-step configuration for your UPS setup
  4. Configure all settings via the UI: No need to restart containers when changing settings

The setup wizard allows you to configure:

  • UPS connection type (Standalone/Netwrok Server - Network Client)
  • Manual Configuration or Auto-detect with nut-scanner
  • Driver selection from the extensive list of supported drivers
  • Connection parameters (hostname, port, etc.)

Here are some examples of the Setup Wizard screens:

Setup Wizard - Mode Selection Setup Wizard - Complete

Supported Architectures

Nutify is available for multiple hardware platforms:

Architecture Docker Image Tag Devices
🖥️ AMD64/x86_64 dartsteven/nutify:amd64-latest Standard PCs, servers, most cloud VMs
🍓 ARM64/aarch64 dartsteven/nutify:arm64-latest Raspberry Pi 4, Pi 400, Compute Module 4, Apple M1/M2 Macs

You can also use specific version tags (e.g., dartsteven/nutify:amd64-0.1.6) if you need a particular version.

Tested UPS Models

Nutify aims for broad compatibility with UPS devices supported by Network UPS Tools (NUT).

Is your UPS model working with Nutify but not listed here? Please help us expand this list by sharing your experience in the

UPS Compatibility List discussion

Knowing which models work helps the entire community.

While Nutify should work with most NUT-compatible devices, the models listed above have specific confirmation from users.

Documentation Nutify Wiki

For detailed documentation, including:

  • Complete configuration options
  • Advanced features
  • Troubleshooting
  • Screenshots and examples
  • Technical details
  • ... And More ...

License

This project is licensed under the MIT License - see the LICENSE file for details.

Screenshots

Dark Theme Light Theme Setup Wizard - Complete

Support the Project

Nutify is developed and maintained in my free time. If you find this project useful and would like to support its continued development, please consider making a donation.

Your support helps cover development costs and encourages further improvements and new features. Thank you for your generosity!

Donate Bitcoin   

Stargazers over time

Stargazers over time

About

Modern web-based UPS monitoring system with real-time data visualization, alerts, and comprehensive reporting. Docker-ready with multi-architecture support.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 45.5%
  • JavaScript 36.6%
  • HTML 12.2%
  • CSS 4.0%
  • Shell 1.4%
  • Dockerfile 0.3%