• v2.3 de38b70aad

    Version 2.3 Stable

    SluberskiHomeLab released this 2025-10-08 14:35:15 -05:00 | 0 commits to main since this release

    What's Changed

    • Added new Themes
      • Service Mode Light
      • Service Mode Dark
      • Retro
      • Matrix
      • Nuclear
      • High Contrast light
      • High Contrast Dark
    • Added a notification and alert system
      • Uses Discord Webhooks for notifications
      • Works only in Service Mode

    Full Changelog: https://github.com/SluberskiHomeLab/ditdashdot/compare/v2.2...v2.3

    Downloads
  • v2.2 bf28fec087

    Version 2.2 Stable

    SluberskiHomeLab released this 2025-10-03 08:03:14 -05:00 | 14 commits to main since this release

    Version 2.2 Changelog

    Added

    • Multiple Pages Support: Dashboard now supports multiple pages with individual configurations

      • Collapsible navigation menu (hamburger menu) in top left corner
      • Each page can have its own set of groups and services
      • Clean URL routing (/page/1, /page/2, etc.)
      • Auto-redirect from root URL to first available page
    • Enhanced Navigation:

      • "Edit config" button added to dashboard (top right)
      • "Return to dashboard" button added to configuration page (top right)
      • Navigation menu shows all available pages with proper theming
    • Database Schema Updates:

      • New pages table with title and display order
      • Added page_id foreign key to groups table
      • Migration scripts for seamless upgrades
      • Default "Home" page created automatically
    • Configuration Management:

      • New "Pages" tab in configuration interface
      • Full CRUD operations for pages (Create, Read, Update, Delete)
      • Page assignment for groups with visual indicators
      • Validation to prevent deletion of pages with associated groups
    • Comprehensive Widgets System: Added dedicated support for widgets to display information from specific services

      • Weather Widget: Displays current weather conditions, temperature, humidity, and wind speed
        • Configurable API key, location, units (metric/imperial), and update intervals
        • Real-time weather data from OpenWeatherMap API
        • Weather icons and detailed conditions display
      • Sun Position Widget: Shows sunrise, sunset times and daylight duration
        • Configurable latitude/longitude coordinates
        • Real-time daylight progress tracking with visual progress bar
        • Automatic day/night status detection
      • Date/Time Widget: Displays current time and date with customizable formatting
        • Horizontal layout with time prominently displayed first, then date
        • Configurable timezone, 12/24-hour format, date formats
        • Optional greeting messages and timezone display
        • Real-time updates every second
    • Widget Management Interface:

      • New "Widgets" tab in configuration page
      • Full CRUD operations for widgets (Create, Read, Update, Delete)
      • JSON configuration editor with real-time validation
      • Widget type selection dropdown (datetime, weather, sun_position)
      • Display order and enable/disable toggles
      • Page assignment for widgets
    • Database Schema:

      • New widgets table with JSONB configuration support
      • Migration script 004_add_widgets.sql for seamless upgrades
      • Support for flexible widget configurations

    Changed

    • Service Configuration: IP address and port fields are now optional

      • Updated database constraints to allow NULL values
      • Enhanced form validation and error handling
      • Improved user experience for services without IP/port
    • API Enhancements:

      • Added comprehensive error handling and logging
      • Better validation for required fields
      • Specific error messages for different failure types
      • New endpoints for pages management (/api/pages)
    • Frontend Improvements:

      • Enhanced error handling with detailed console logging
      • Better form field handling for optional values
      • Improved conditional rendering for IP:port display
      • Updated service cards to handle optional fields gracefully
    • Widget Layout and Display:

      • DateTime widgets displayed prominently below page title at full size
      • Other widgets (weather, sun position) displayed at 50% size below search area
      • Improved visual hierarchy with clean separation of widget types
      • All widgets now use compact 12pt font sizes for better space utilization
      • Responsive scaling with appropriate sizing for both full and small display modes
    • Enhanced JSON Configuration Editor:

      • Fixed JSON editing functionality to allow proper text input during editing
      • Real-time validation with visual error indicators (red border for invalid JSON)
      • Improved state management to handle temporary invalid JSON states
      • Prevention of saving widgets with invalid JSON configurations
      • Better user experience with immediate feedback during editing
    • Widget Component Architecture:

      • Extensible widget system designed for easy addition of new widget types
      • Consistent theming across all widgets using dashboard color schemes
      • Responsive design with proper scaling for different display contexts
      • Error handling and loading states for all API-dependent widgets

    Fixed

    • Database constraint violations when saving services without IP/port
    • Form validation issues in configuration interface
    • Navigation and routing edge cases
    • Service display inconsistencies

    Technical Details

    • New API Endpoints:

      • GET /api/pages - List all pages
      • POST /api/pages - Create new page
      • PUT /api/pages/:id - Update page
      • DELETE /api/pages/:id - Delete page
      • GET /api/widgets - List all widgets
      • POST /api/widgets - Create new widget
      • PUT /api/widgets/:id - Update widget
      • DELETE /api/widgets/:id - Delete widget
    • Database Migrations:

      • 002_optional_ip_port.sql - Made IP and port optional
      • 003_add_pages.sql - Added pages functionality
    • New Components:

      • NavigationMenu.js - Collapsible navigation drawer
      • RootRedirect.js - Handles root URL redirection
      • WidgetContainer.js - Main widget display controller with selective rendering
      • DateTimeWidget.js - Real-time clock and date display
      • WeatherWidget.js - Weather conditions and forecast
      • SunPositionWidget.js - Solar position and daylight tracking
    • Widget Configuration Examples:

      • Weather: {"apiKey": "your-key", "location": "City,Country", "units": "metric"}
      • Sun Position: {"latitude": 40.7128, "longitude": -74.0060}
      • DateTime: {"timezone": "America/New_York", "format12Hour": true, "showSeconds": false}

    Documentation

    • WIDGETS.md: Comprehensive widget documentation including:
      • Configuration guide for all widget types
      • API key setup instructions
      • Troubleshooting guide
      • Usage examples and best practices

    Docker Images

    • Published to Docker Hub as sluberskihomelab/ditdashdot-dashboard:2.2
    • Published to Docker Hub as sluberskihomelab/ditdashdot-api:2.2
    • Also available with :latest tag
    Downloads
  • v2.1 b3443201b2

    Version 2.1 Stable

    SluberskiHomeLab released this 2025-09-29 16:49:54 -05:00 | 23 commits to main since this release

    Added Navigation Buttons:

    • Added "Edit config" button to the dashboard (top right)
    • Added "Return to dashboard" button to the config page (top right)
    • Both buttons use Material-UI IconButtons with consistent styling
    • Used React Router's Link component for navigation

    Made IP and Port Optional:

    • Created new migration 002_optional_ip_port.sql
    • Modified database schema by dropping NOT NULL constraints
    • Updated server endpoints to handle null values for ip and port
    • Updated frontend form to mark these fields as optional
    • Added proper null handling in both frontend and backend
    • Improved error handling and validation

    Updated Frontend Components:

    • Modified ServiceCard.js to conditionally show IP:port only when both exist
    • Updated ConfigurationPage.js form validation
    • Added better error handling and logging
    • Improved form field handling for optional values

    Updated Backend (server/index.js):

    • Added better validation for required fields
    • Improved error handling with specific error messages
    • Added proper type conversion for numeric values
    • Added detailed logging for debugging
    • Added specific handling for database constraints

    Database Changes:

    • Successfully ran migration to make IP and port optional

    All these changes have resulted in:

    • More intuitive navigation between dashboard and config

    • Flexible service configuration with optional IP/port

    • More robust error handling

    • Improved user experience in the configuration interface

    • The application now provides more flexibility in service configuration while maintaining a clean and user-friendly interface.

    Downloads
  • v2.0 cf94f9d7d9

    Version 2.0 Stable

    SluberskiHomeLab released this 2025-09-20 14:21:58 -05:00 | 31 commits to main since this release

    Added

    • PostgreSQL database backend for storing configuration
    • Web-based configuration interface at /config endpoint
    • RESTful API for managing dashboard settings
    • Material-UI based configuration GUI
    • Real-time configuration updates
    • Docker Compose setup with database and API services
    • Bar Icons management through configuration UI
    • Support for configurable icon shortcuts under search bar
    • Field validation and error handling for icon management

    Fixed

    • Fixed syntax errors in ConfigurationPage.js causing build failures
    • Fixed ESLint warnings in React components:
      • Removed unused props spread in TabPanel component
      • Improved interval management using useRef
      • Enhanced timeout cleanup in service ping functionality
      • Added proper error handling for fetch requests
    • Fixed API endpoint issues:
      • Corrected column name mismatch between frontend and backend for settings
      • Aligned group API field names with database schema
      • Added proper error handling and response messages
    • Improved React component cleanup and memory management
    • Enhanced error handling in configuration interface
    • Resolved field name mismatches between frontend and database for bar icons
    • Fixed icon URL persistence in configuration interface
    • Added proper data transformation in API responses for consistent field naming
    Downloads
  • v1.2 7bd2bc0308

    Version 1.2 Stable

    SluberskiHomeLab released this 2025-09-17 09:33:27 -05:00 | 78 commits to main since this release

    Changelog

    All notable changes to DitDashDot will be documented in this file.

    [B1.1.5] - 2025-09-17

    Added

    • Added support for customizing browser tab title through config.yml
    • Added support for customizing favicon through config.yml
    • Updated documentation with new configuration options

    [B1.1.4] - 2025-09-17

    Fixed

    • Fixed Dockerfile keyword casing to follow Docker style conventions
    • Fixed "AS" keyword capitalization in multi-stage build

    [B1.1.3] - 2025-09-17

    Fixed

    • Fixed Dockerfile configuration for proper config file handling
    • Improved nginx configuration for better performance and security
    • Added proper volume mounts for configuration files
    • Updated Docker build and run instructions in README.md

    [B1.1.2] - 2025-09-17

    Added

    • Dockerfile for direct Docker build and deployment
    • Updated README.md with Docker build instructions

    [B1.1.1] - 2025-09-16

    Added

    • Font customization support through config.yml
      • font_family: Customize the font used throughout the dashboard
      • font_size: Control the base text size for the dashboard
      • icon_size: Adjust the size of service icons

    Changed

    • Updated ServiceCard component to support customizable fonts and sizes
    • Enhanced configuration documentation in README.md with new appearance settings

    Developer Changes

    • Added new state variables in App.js for font settings
    • Improved prop passing for style customization in ServiceCard component
    • Extended configuration loading to support appearance customization options
    Downloads
  • v1.1 928b4848ac

    v1.1 Stable

    SluberskiHomeLab released this 2025-08-21 12:20:35 -05:00 | 89 commits to main since this release

    Changelog

    Feature Updates

    • Added ping status dots to service cards.
    • Introduced a service_mode theme that changes service card color based on ping status.
    • Added a small quick access bar of applications centered under the search bar.
    • Enabled setting the dashboard background via URL instead of requiring background.jpg.

    Bug Fixes

    • Fixed theme handling to ensure proper text color changes.
    • Improved centering and resizing of the background picture.
    • Updated design to be more rounded and modern, moving away from a 1990s look.

    Docker

    • The latest tag has been updated in
    Downloads
  • v1.0 af57ac4b08

    1.0 Stable

    SluberskiHomeLab released this 2025-08-20 13:51:37 -05:00 | 104 commits to main since this release

    DitDashDot

    DitDashDot is a simple, clean, and easy-to-configure services dashboard designed specifically for homelabs. Built with React.js and containerized with Docker, it provides a central hub to view and manage your homelab services.

    *This is Release 1.0 there will be many releases in between. I am working hard on release 1.1 with hopes to get 2.0 on the way shortly after. *

    Features

    • Simple and intuitive dashboard interface
    • Built with React.js for a fast and modern web experience
    • Runs in Docker for easy deployment and management
    • Clean design focused on usability
    • Easily configurable to fit your homelab setup
    • Simple yaml configuration
    • Integrated Service pings
    • Dark mode support
    Downloads