2025-12-22 18:49:05 +01:00

ArinDash

ArinDash is a customizable terminal dashboard (TUI) written in Go, powered by termdash. It allows you to monitor various services, network devices, and system information in a single terminal view.

Features

  • Clock, Date & Calendar: Real-time time, date, and calendar display.
  • Weather: Current weather information via OpenWeatherMap.
  • Pi-hole Integration: Monitor your Pi-hole statistics, including query counts and blocked percentages.
  • Docker Monitoring: View the status of your Docker containers.
  • HTTP Prober: Check the availability and status codes of your favorite websites.
  • Network Device Monitoring: Track which devices are online in your local network.
  • Wi-Fi QR Code: Display a QR code for easy Wi-Fi connection sharing.
  • NINA Warnings: Stay informed about emergency warnings in Germany via the NINA-Service.
  • News: Get the latest news headlines from various sources via News API.
  • Every Day Mood: Track your daily mood with an interactive calendar.
  • Zukitchi: A cute animated terminal pet/sprite to keep you company.
  • Interactive TUI: Built with termdash for a responsive and visually appealing terminal interface.

Prerequisites

  • Go: Version 1.25.5 or later.
  • Docker: If you want to use the Docker monitoring widget.
  • Nerd Fonts: Recommended for displaying icons correctly in the terminal. You can find icons at the Nerd Fonts Cheat Sheet.

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/ArinDash.git
    cd ArinDash
    
  2. Install dependencies:

    go mod download
    

Configuration

ArinDash uses a config.toml file for its settings. A template is provided as config_template.toml.

  1. Copy the template:

    cp config_template.toml config.toml
    
  2. Edit config.toml with your specific details:

    • Pi-hole: Set your host and API password.
    • Wi-Fi: Configure your SSID and password for the QR code widget.
    • Weather: Provide your OpenWeatherMap API key and Location ID. You can find your Location ID in the city.list.json.gz from OpenWeatherMap bulk data.
    • NINA Warnings: Set your gebietsCode for the area you want to monitor.
    • News: Provide your News API key and preferred sources.
  3. Customize widgets:

    • Websites: Copy websites_template.json to websites.json and update it with the URLs and icons you want to monitor.
    • Network Devices: Copy devices_template.json to devices.json and configure it with the MAC addresses and names of the devices you want to track.

Usage

To run ArinDash, execute:

go run main.go

Controls

  • Esc / Ctrl+C: Exit the application.
  • News Widget:
    • Left / Right Arrow Keys: Navigate through news articles.
  • Every Day Mood Widget:
    • Arrow Keys: Navigate through the calendar days and months.
    • 1, 2, 3: Assign a mood.
    • Backspace: Clear the mood for the selected day.

Project Structure

  • main.go: Entry point and layout definition.
  • widgets/: Contains individual widget implementations (Clock, Docker, Pi-hole, etc.).
  • apis/: API clients for interacting with external services (Docker, Pi-hole, etc.).
  • config/: Configuration loading logic.
  • util/: Helper functions and utilities.

License

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

Description
No description provided
Readme MIT 251 KiB
Languages
Go 100%