-
Notifications
You must be signed in to change notification settings - Fork 25
Home
Note: Nutify now includes an official logo and favicon for better brand recognition and improved user experience across browser tabs.
- Introduction & Overview
- Key Features
- System Architecture
- Docker Compose Configuration
- Setup Wizard
- Docker Image Tags
- Role-Based Authentication System
- Dummy UPS Configuration
- Supported UPS Drivers
- Operational Modes
- SSL Configuration
- Email Reports and Alerts
- Technologies Used
- Installation and Usage
- Feature Details
- Troubleshooting
- Bug Reporting Guidelines
- Configuration Changes
Welcome to the Nutify Wiki! This comprehensive guide provides detailed information about the Nutify UPS Monitoring System, including configuration options, features, troubleshooting, and more.
Nutify is a modern, modular UPS monitoring system designed to provide real-time insights, advanced reporting, and seamless management of Uninterruptible Power Supply (UPS) devices. With a user-friendly web interface, robust backend, role-based authentication system, and extensive integration options, Nutify ensures your critical systems remain protected and monitored at all times.
- Backend: Python, Flask, SQLAlchemy (ORM only)
- Frontend: JavaScript, HTML, CSS, Tailwind CSS
- Database: SQLite (persistent, optimized for time-series data)
- Deployment: Docker & Docker Compose (multi-architecture support)
Nutify offers a comprehensive set of features for UPS monitoring and management:
- Real-time UPS Monitoring: Continuously collects and displays data from your UPS devices, including voltage, power, battery status, load, and more.
- Role-Based Authentication: Multi-user system with admin and user roles, providing secure access control and granular permissions for different configuration areas.
- Detailed Reports: Generates comprehensive reports on UPS performance over selected time ranges (daily, weekly, monthly, custom). Reports include statistical summaries and visual charts with enhanced pandas integration.
- Interactive Charts: Visualizes UPS data using interactive charts for easy analysis of trends and anomalies in voltage, power, battery levels, and other metrics.
- Customizable Dashboards: Provides a web-based dashboard to view real-time data and access reports.
- Data Persistence: Stores historical UPS data in a SQLite database for trend analysis and reporting with improved schema and integrity.
- Dockerized Deployment: Easily deployable using Docker and Docker Compose, ensuring consistent setup across different environments.
- Enhanced Setup Wizard: Easy-to-use configuration wizard with improved UI, button alignment, and navigation for hassle-free initial setup.
- System Monitoring: Real-time RAM and CPU usage widgets in the dashboard header to monitor system resources.
- Discord Integration: Send notifications directly to Discord channels with customizable message formatting.
- User-Friendly Interface: Accessible and intuitive web interface built with modern web technologies.
- Energy Monitoring: Detailed analysis of energy consumption with cost calculation and efficiency metrics.
- Battery Management: Monitoring of battery status, remaining runtime, and performance over time.
- Event Management: Logging and notification of UPS events such as power outages, low battery, etc.
- UPS Commands: Interface to send commands to the UPS such as battery test, shutdown, etc.
- Dark/Light Theme: Customizable interface with both dark and light themes for optimal viewing in any environment.
- Email Reports: Automated email reports with detailed UPS status and alerts for critical events.
- UPS Data Export: Download complete UPS data in JSON format for analysis or backup.
- Connection Recovery: Automatic reconnection and recovery mechanisms for UPS communication failures.
- Expanded UPS Support: Added drivers for a wider range of UPS models including blazer_usb, blazer_ser, richcomm_usb, tripplite_usb, riello_usb and more.
- Enhanced Security: Comprehensive permission system protecting all API endpoints and configuration areas with role-based access control.
- Improved User Experience: Fixed Setup Wizard navigation, configuration editor state persistence, and streamlined authentication interface.
Nutify is built using a modular architecture, comprising the following key components:
-
Data Collection: Nutify interacts with UPS devices to collect real-time data using the Network UPS Tools (NUT) protocol. It retrieves metrics such as:
- Input and Output Voltage
- Battery Charge and Runtime
- UPS Load
- Power Consumption
- Frequency
- Transfer Thresholds
-
Database: Collected data is stored in a SQLite database. The database schema is designed to efficiently store time-series data from UPS devices.
-
Backend (Python/Flask): The backend is developed in Python using the Flask framework. It handles:
- Data retrieval from UPS devices
- Data processing and storage in the database
- API endpoints for the frontend to access data and reports
- Generation of reports and charts
- Scheduling of data collection tasks
- Event and notification management
-
Real-time Data Management: The system uses an optimized approach for handling real-time data:
- WebSocket-based caching system delivers data efficiently to the frontend
- Eliminates redundant upsc calls, significantly reducing CPU and RAM usage
- Native Python integration with upsmon.conf replaces direct queries
- Enhanced event detection system for improved stability and responsiveness
-
Frontend (JavaScript/HTML/CSS): The frontend is built using JavaScript and utilizes libraries for interactive charts and Tailwind CSS for styling. It provides:
- Real-time dashboards displaying current UPS status
- Navigation to reports and charts
- User interface for configuring reports and time ranges
- Visualization of key metrics such as battery charge, power, load, etc.
-
Specialized Modules: The system is organized into specialized modules to handle different functionalities:
- energy.py: Energy consumption management and analysis
- battery.py: Battery monitoring and analysis
- power.py: Power and load analysis
- voltage.py: Voltage monitoring
- upscmd.py: UPS command management
- upsrw.py: UPS variable reading and writing
- mail.py: Email notification system
- scheduler.py: Report and task scheduling
- webhook.py: External system integration
- ntfy.py: Push notification services
To run Nutify using Docker Compose, you need to configure a minimal docker-compose.yaml file. Below is an example configuration with detailed explanations:
services:
nut:
image: dartsteven/nutify:amd64-latest # Official Nutify image for AMD64 architecture (use amd64-latest, arm64-latest, or armv7-latest)
# build: . # Or build from source # Uncomment to build from source instead of using pre-built image
container_name: Nutify # Name of the container in Docker
privileged: true # Grants extended privileges to the container for hardware access
cap_add: # Additional Linux capabilities for the container
- SYS_ADMIN # Allows administrative operations
- SYS_RAWIO # Allows direct I/O access
- MKNOD # Allows creation of special files
devices: # Device mapping from host to container
- /dev/bus/usb:/dev/bus/usb:rwm # Maps USB devices for UPS detection (read-write-mknod)
device_cgroup_rules: # Control group rules for device access
- 'c 189:* rwm' # USB device access rule (character device 189)
environment: # Environment variables for container configuration
# ===== SERVER CONFIGURATION =====
- SERVER_PORT=5050 # Port for web interface [default: 5050]
- SERVER_HOST=0.0.0.0 # Host address to bind web server [default: 0.0.0.0]
- SECRET_KEY=your-secure-secret-key-here # REQUIRED: Secret key for password encryption (32+ chars)
# ===== OPTIONAL CONFIGURATION =====
- SSL_ENABLED=false # Enable/disable HTTPS [default: false]
- LOG=true # Enable/disable logging [default: false]
- LOG_LEVEL=DEBUG # Log level (DEBUG, INFO, WARNING, ERROR, CRITICAL)
- LOG_WERKZEUG=true # Enable/disable Flask's Werkzeug logs
- ENABLE_LOG_STARTUP=Y # Set to Y to enable essential startup logs
ports: # Port mapping from host to container
- 3493:3493 # NUT server port
- 5050:5050 # Web interface port
- 443:443 # HTTPS port (when SSL_ENABLED=true)
volumes: # Volume mapping for persistent data
- ./Nutify_volumes/logs:/app/nutify/logs # Log files
- ./Nutify_volumes/instance:/app/nutify/instance # Application data including SQLite database
- ./Nutify_volumes/ssl:/app/ssl # SSL certificates directory
- ./Nutify_volumes/etc/nut:/etc/nut # NUT configuration directory
restart: always # Restart policy (always restart on failure)
user: root # Run container as root user for hardware access-
environment: Sets environment variables for the container:-
SERVER_PORT: Port on which the web server will listen [default: 5050] -
SERVER_HOST: Host address to bind web server [default: 0.0.0.0] -
SECRET_KEY: REQUIRED: Secret key for password encryption (use 32+ chars)
-
-
volumes: Mounts volumes to persist data:-
./Nutify_volumes/logs:/app/nutify/logs: Nutify log files -
./Nutify_volumes/instance:/app/nutify/instance: Nutify instance directory, including the SQLite database -
./Nutify_volumes/ssl:/app/ssl: SSL certificates directory -
./Nutify_volumes/etc/nut:/etc/nut: NUT configuration directory
-
Unlike previous versions, further configuration is now handled through the Setup Wizard rather than through environment variables.
Nutify 0.1.6 introduces a new Setup Wizard that significantly simplifies the configuration process. Instead of manually configuring numerous environment variables in the docker-compose.yaml file, users can now configure Nutify through an intuitive web interface.
After starting Nutify with the minimal docker-compose configuration, navigate to:
http://localhost:5050
If this is your first time running Nutify, you'll be automatically redirected to the Setup Wizard.
- Server Name: Name of your server
- Timezone Selection: Choose your local timezone for accurate time reporting
-
UPS Connection Type:
- SERVER Mode: For direct connection to a UPS device
- CLIENT Mode: For connecting to a remote NUT server
-
UPS Driver Selection (SERVER mode only):
- Choose from a wide range of supported drivers
- Get guidance on selecting the appropriate driver for your UPS model
-
Connection Parameters:
- Configure UPS name, port, and detection settings
- Set authentication credentials
-
Review and Confirmation:
- Summary of your configuration choices
- Option to modify settings before finalizing
- User-Friendly: No need to manually edit configuration files
- Guided Approach: Step-by-step process with helpful explanations
- Error Prevention: Validation of inputs prevents common configuration mistakes
- Dynamic Configuration: Changes are applied without needing to restart the container
- Comprehensive Setup: Configures all aspects of Nutify in one interface
After completing the initial setup, you can access additional configuration options through the Options page:
- Notification Settings: Configure email, webhooks, and push notifications
- Advanced NUT Settings: Fine-tune NUT configuration parameters
- Scheduler Settings: Configure automated reports and tasks
- Database Management: Database backup and optimization tools
Nutify provides Docker images for different architectures with two types of tags:
These tags always point to the most recent version of Nutify for each architecture:
| Architecture | Docker Image Tag | Description |
|---|---|---|
| AMD64/x86_64 | dartsteven/nutify:amd64-latest |
For standard PCs, servers, and most cloud VMs |
| ARM64/aarch64 | dartsteven/nutify:arm64-latest |
For Raspberry Pi 4, Pi 400, Compute Module 4, Apple M1/M2 Macs |
Using these tags ensures you always get the latest version with all bug fixes and features. This is the recommended approach for most users.
If you need a specific version of Nutify (for example, for stability or compatibility reasons), you can use version-specific tags:
| Architecture | Docker Image Tag Format | Example |
|---|---|---|
| AMD64/x86_64 | dartsteven/nutify:amd64-X.Y.Z |
dartsteven/nutify:amd64-0.1.6 |
| ARM64/aarch64 | dartsteven/nutify:arm64-X.Y.Z |
dartsteven/nutify:arm64-0.1.6 |
Where X.Y.Z is the version number (e.g., 0.1.6).
- For production environments: If stability is critical, use a version-specific tag to ensure consistent behavior.
-
For development or personal use: Use the
latesttag to always get the newest features and fixes. -
For automatic updates: Use the
latesttag in combination with a container update solution like Watchtower.
To update to the latest version when using version-specific tags:
- Update your
docker-compose.yamlfile to use the new version tag - Run
docker-compose pullto download the new image - Run
docker-compose up -dto restart the container with the new image
If you're using the latest tag, simply run:
docker-compose pull
docker-compose up -dStarting with version 0.1.7, Nutify includes a user authentication system with administrator and user roles, where administrators can configure granular permissions for individual users to access specific pages and configuration areas.
Nutify supports two main user roles:
- Full Access: Complete control over all Nutify features and configurations
- User Management: Can create, modify, and delete user accounts
-
Configuration Access: Full read/write access to all settings including:
- Email configuration and testing
- Webhook management and testing
- Advanced NUT settings
- Database management
- System configuration
- Execute Permissions: Can perform all actions including tests, saves, and administrative operations
- Configurable Page Access: Administrator can grant access to specific dashboard pages (home, energy, power, battery, voltage, info, command, settings, events, options)
- Configurable Options Access: Administrator can grant access to specific options tabs (email, extranotifs, webhook, database, log, advanced, admin)
- Granular Control: Each permission can be individually enabled or disabled by the administrator
- Default Access: By default has access only to monitoring pages (energy, power, battery, voltage, info, events) but no commands or settings
The authentication system uses a flexible approach:
- Control access to main dashboard pages: home, energy, power, battery, voltage, info, command, settings, events, options
- Administrator automatically has access to all pages
- Users can be individually configured by administrator to access specific pages
- Each page permission can be enabled or disabled independently
- Control access to configuration areas within the Options page: email, extranotifs, webhook, powerflow, database, log, advanced, admin
- Administrator automatically has access to all options tabs
- Users can be individually configured by administrator to access specific tabs
- Each tab permission can be enabled or disabled independently
- When granted access to a tab, user can perform all operations within that tab
- Secure Password Handling: All passwords are encrypted and securely stored
- Session Management: Automatic session timeout and secure session handling
- API Protection: All API endpoints are protected with appropriate permission checks
- Input Validation: Comprehensive input validation and sanitization
- Access Control: Granular access control for different system areas
- Initial Setup: During the Setup Wizard, you'll create the initial administrator account
- Login: Access the system using your admin credentials
- User Management: Navigate to Options > Admin to manage additional user accounts
- Role Assignment: Assign appropriate roles based on user requirements
- Permission Testing: Verify that users have appropriate access levels
- Strong Passwords: Use strong, unique passwords for all accounts
- Least Privilege: Assign users the minimum permissions required for their role
- Regular Review: Periodically review user accounts and permissions
- Admin Protection: Ensure at least one administrator account remains active
If you're experiencing issues with UPS detection or want to test Nutify without a physical UPS, you can use the dummy UPS configuration. This feature can be enabled through the Setup Wizard.
During the setup process, if no physical UPS is detected, the wizard will offer you the option to set up a dummy UPS for testing purposes. Alternatively, you can access this option in the Advanced settings after the initial setup.
The dummy UPS allows Nutify to start properly even when no physical UPS is detected, which is useful for:
- Testing the interface and functionality
- Developing and customizing Nutify
- Configuring notifications and reports before connecting a real UPS
- Learning how to use Nutify in a safe environment
Nutify includes the most essential and widely used UPS drivers from Network UPS Tools (NUT). These drivers support the majority of UPS devices available on the market.
-
usbhid-ups
- Description: The standard driver for most modern USB-connected UPS devices
- Compatibility: Works with most APC, CyberPower, Eaton, and other major brand UPS devices with USB connections
- Usage: Select during Setup Wizard or in Advanced settings
-
nutdrv_qx
- Description: A generic driver for UPS devices using the Megatec/Q1 protocol
- Compatibility: Works with many Megatec, Voltronic Power, Blazer, and other UPS models
- Usage: Select during Setup Wizard or in Advanced settings
-
blazer_usb
- Description: Driver for UPS devices using the Megatec/Voltronic protocol (USB)
- Compatibility: Many budget UPS models from various manufacturers
- Usage: Select during Setup Wizard or in Advanced settings
-
blazer_ser
- Description: Driver for UPS devices using the Megatec/Voltronic protocol (Serial)
- Compatibility: Voltronic-based UPS models with serial connection
- Usage: Select during Setup Wizard or in Advanced settings
-
snmp-ups
- Description: Driver for network-connected UPS devices using SNMP
- Compatibility: Works with network-enabled UPS devices from APC, Eaton, and others
- Usage: Select during Setup Wizard or in Advanced settings
-
richcomm_usb
- Description: Driver for Richcomm-based UPS devices with USB connection
- Compatibility: Various UPS models using Richcomm controllers
- Usage: Select during Setup Wizard or in Advanced settings
-
tripplite_usb
- Description: Driver for Tripp Lite UPS devices with USB connection
- Compatibility: Various Tripp Lite UPS models
- Usage: Select during Setup Wizard or in Advanced settings
-
riello_usb
- Description: Driver for Riello UPS devices with USB connection
- Compatibility: Various Riello UPS models
- Usage: Select during Setup Wizard or in Advanced settings
-
apcsmart
- Description: Driver for APC Smart-UPS models with serial connection
- Compatibility: Older APC Smart-UPS models
- Usage: Select during Setup Wizard or in Advanced settings
-
mge-shut
- Description: Driver for MGE UPS SYSTEMS UPS models
- Compatibility: Various MGE UPS models
- Usage: Select during Setup Wizard or in Advanced settings
-
genericups
- Description: Generic driver for simple UPS models
- Compatibility: Basic UPS devices with limited features
- Usage: Select during Setup Wizard or in Advanced settings
-
liebert
- Description: Driver for Liebert UPS models
- Compatibility: Various Liebert UPS models
- Usage: Select during Setup Wizard or in Advanced settings
-
victronups
- Description: Driver for Victron UPS/inverter models
- Compatibility: Victron Energy UPS and inverter models
- Usage: Select during Setup Wizard or in Advanced settings
-
powercom
- Description: Driver for PowerCom UPS models
- Compatibility: Various PowerCom UPS models
- Usage: Select during Setup Wizard or in Advanced settings
-
clone
- Description: Clone driver for UPS with multiple ports/cables
- Compatibility: UPS models that support multiple connections
- Usage: Select during Setup Wizard or in Advanced settings
-
upscode2
- Description: Driver for UPScode II compatible UPS models
- Compatibility: UPS models supporting the UPScode II protocol
- Usage: Select during Setup Wizard or in Advanced settings
-
bestups
- Description: Driver for Best Power UPS models
- Compatibility: Best Power UPS models
- Usage: Select during Setup Wizard or in Advanced settings
-
belkin
- Description: Driver for Belkin UPS models
- Compatibility: Various Belkin UPS models
- Usage: Select during Setup Wizard or in Advanced settings
-
dummy-ups (always included by default)
- Description: A virtual driver for testing without a physical UPS
- Usage: Select during Setup Wizard if no physical UPS is available
This selection of drivers covers more than 95% of UPS models available on the market. If you need support for a specific driver not listed here, please open an issue on GitHub.
The Setup Wizard will help you select the appropriate driver based on your UPS model. For manual selection:
- Check the manufacturer and model of your UPS
- Start with the default
usbhid-upsdriver for most modern USB UPS devices - If your UPS is not detected, try
nutdrv_qxorblazer_usbfor USB connections - For serial-connected devices, use
blazer_seror other specific serial drivers - For specific brand devices, use the corresponding driver (
tripplite_usb,riello_usb, etc.) - For network-connected UPS devices, use
snmp-ups
You can reference the NUT hardware compatibility list for specific recommendations.
Nutify supports two operational modes that provide flexibility in how you deploy and use the system:
In SERVER mode, Nutify runs a complete Network UPS Tools (NUT) server with local UPS drivers. This is the default mode and is used when:
- You have a UPS device connected directly to the host machine
- You want to monitor a UPS through SNMP
- You want to share your UPS with other devices on the network
To configure SERVER mode, select this option in the Setup Wizard and follow the guided steps to:
- Select the appropriate UPS driver
- Configure connection parameters
- Set up authentication credentials
In CLIENT mode, Nutify connects to a remote NUT server without running local drivers. This is useful when:
- Your UPS is already connected to another NUT server
- You want to monitor a UPS from multiple locations
- You want a lightweight monitoring dashboard without running UPS drivers
To configure CLIENT mode, select this option in the Setup Wizard and provide:
- The IP address of the remote NUT server
- The name of the UPS on the remote server
- Authentication credentials if required
Nutify's robust mode detection system ensures reliable operation even in complex network environments.
Nutify supports secure HTTPS connections through SSL/TLS. This feature is particularly useful when accessing your Nutify instance over the internet or when you need to ensure secure communications.
To enable SSL, set the following environment variable in your docker-compose.yaml file:
environment:
- SSL_ENABLED=true # Enable HTTPSWhen SSL is enabled:
- Nutify will automatically check for existing certificates in the
/app/ssldirectory - If valid certificates are found, they will be used for HTTPS connections
- If no certificates exist or they have expired, Nutify will generate self-signed certificates
- The web interface will be accessible via HTTPS on port 443
You can provide your own certificates by mounting them in the /app/ssl directory:
volumes:
- ./Nutify_volumes/ssl:/app/ssl # SSL certificates directoryPlace your certificates in the ./Nutify_volumes/ssl directory with the following names:
-
cert.pem: The SSL certificate -
key.pem: The private key
Self-signed certificates are suitable for personal use, but for production environments, consider using certificates from a trusted certificate authority.
Nutify can send automated email reports with detailed information about your UPS status. These reports include:
Comprehensive reports with charts and statistics about your UPS performance over time.
Immediate notifications when critical events occur, such as power outages or low battery conditions.
To configure email reports, use the Options page in the web interface, which now provides an improved interface for email configuration:
- Navigate to Options > Email
- Select your email provider or configure custom SMTP settings
- Enter your email credentials and sender information
- Configure notification preferences and schedules
- Test your email configuration before saving
Nutify is built using a variety of modern technologies:
- Backend: Python, Flask, SQLAlchemy
- Frontend: JavaScript, HTML, CSS, Tailwind CSS
- Database: SQLite
- Charting: Chart.js, ApexCharts.js
- Containerization: Docker, Docker Compose
- UPS Communication: Network UPS Tools (NUT)
Before installing Nutify, ensure you have the following:
- Docker and Docker Compose installed on your system
- A UPS compatible with NUT (Network UPS Tools) or a remote NUT server
-
Create Docker Compose Configuration: Create a
docker-compose.yamlfile with the minimal configuration described in the "Docker Compose Configuration" section. -
Start Nutify:
docker-compose up -d
-
Access the Setup Wizard: Open your web browser and navigate to
http://localhost:5050 -
Follow the Setup Wizard: Complete the step-by-step configuration process to set up your UPS monitoring.
-
Access Nutify Dashboard: After completing the setup, you'll be redirected to the main dashboard where you can view your UPS status.
To use a specific architecture, simply modify the image line in your docker-compose.yaml file:
services:
nut:
image: dartsteven/nutify:arm64-latest # For ARM64 devices like Raspberry Pi 4All architectures provide identical functionality, allowing you to run Nutify on virtually any hardware from small single-board computers to powerful servers.
Displays the current status of the UPS, including battery charge, remaining runtime, power, and load.
The new Setup Wizard simplifies the initial configuration process:
Real-time CPU and RAM usage monitoring is available in the dashboard header:
Analyzes energy consumption over time, with cost calculation and efficiency metrics.
Tracks power consumption, load percentage, and other power-related metrics.
Displays input and output voltage over time.
Tracks battery status, remaining runtime, and performance over time.
Provides detailed information about your UPS device.
Sends commands to the UPS such as battery test, shutdown, etc.
Allows reading and writing UPS variables for advanced configuration.
Logs and notifies UPS events such as power outages, low battery, etc.
Direct access to system APIs for integration with other tools.
Download complete UPS data in JSON format for analysis or backup:
Automatic reconnection and recovery mechanisms for UPS communication failures:
Configure scheduled tasks such as reports generation and data collection.
Tools for database maintenance and optimization.
If your UPS is not detected during the Setup Wizard:
- Ensure the UPS is properly connected to your system
- Make sure the Docker container has access to USB devices (check the
devicessection in docker-compose.yaml) - Try using a different UPS driver in the Advanced settings
- Check the logs for any error messages
If the Setup Wizard doesn't appear automatically:
- Ensure the container is running with
docker ps - Check if the web interface is accessible at http://localhost:5050
- Navigate manually to http://localhost:5050/setup/welcome
- Check container logs with
docker logs <container_name>
If you're having issues with SSL certificates:
- Ensure the certificate files are properly named (
cert.pemandkey.pem) - Check that the certificate files have the correct permissions
- Verify that the certificate is valid and not expired
If email reports are not being sent:
- Use the Test Email feature in the Options > Email page
- Check your SMTP server settings
- Verify that your email provider allows SMTP connections
- Check the logs for any error messages related to email sending
If you encounter any issues not covered in this troubleshooting section, please:
- Check the logs for any error messages
- Search for similar issues in the GitHub repository
- Join our Discord server for community support
- Open a new issue on GitHub with detailed information about your problem
To help us effectively address and resolve bugs, please provide the following information when reporting issues:
-
Environment Details:
- Platform (Linux, Windows, macOS)
- Architecture (AMD64, ARM64, etc.)
- Virtualization (if applicable)
- Docker version
- Docker Compose version
-
Configuration Files:
- Complete
docker-compose.yamlfile - JSON configuration file (if applicable)
- Any custom configuration files
- Complete
-
System Information:
- Host operating system details
- Container logs
- Relevant system logs
- UPS model and connection type
-
Issue Description:
- Clear steps to reproduce the issue
- Expected behavior
- Actual behavior
- Error messages (if any)
- Screenshots (if applicable)
Without this information, we cannot effectively investigate or resolve reported issues. Please ensure you provide all relevant details when submitting bug reports.
Version 0.1.7 introduces significant enhancements while maintaining compatibility with existing configurations:
-
Authentication System:
- New role-based authentication system with multi-user support
- Automatic migration of existing configurations to support user roles
- Enhanced security with comprehensive permission system
-
Database Schema:
- Updated database schema to support user authentication and role-based permissions
- Automatic migration preserves all existing UPS data and configurations
- Improved data integrity and relationship constraints
-
Enhanced Security:
- All API endpoints now protected with permission-based access control
- Secure password handling and session management
- Input validation and sanitization improvements
-
UI Improvements:
- Fixed Setup Wizard navigation and button alignment issues
- Improved configuration editor state persistence
- Streamlined authentication interface
Starting with version 0.1.6, Nutify transitioned from manual Docker Compose configuration to a Setup Wizard interface:
-
Configuration Migration: All configuration settings previously managed through Docker Compose environment variables are now handled through the Setup Wizard interface.
-
Database Impact:
- Configuration tables were reset during the migration from 0.1.5 to 0.1.6
- UPS metric data (voltage, power, battery status, etc.) was preserved
- This was necessary to ensure proper integration with the new configuration system
-
Current Status: Nutify is continuously evolving with regular improvements and new features. We appreciate your feedback and patience during this development process.
-
Backup Recommendation: While your UPS metric data is preserved during updates, we recommend backing up your configuration before updating.
-
Documentation Updates: This wiki is regularly updated to reflect new features and configuration approaches. Please refer to the Setup Wizard and Authentication sections for current information.
Thank you for using Nutify! If you find it useful, please star the project on GitHub and join our community for support and updates.