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
termdashfor 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
-
Clone the repository:
git clone https://github.com/yourusername/ArinDash.git cd ArinDash -
Install dependencies:
go mod download
Configuration
ArinDash uses a config.toml file for its settings. A template is provided as config_template.toml.
-
Copy the template:
cp config_template.toml config.toml -
Edit
config.tomlwith 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.gzfrom OpenWeatherMap bulk data. - NINA Warnings: Set your
gebietsCodefor the area you want to monitor. - News: Provide your News API key and preferred sources.
-
Customize widgets:
- Websites: Copy
websites_template.jsontowebsites.jsonand update it with the URLs and icons you want to monitor. - Network Devices: Copy
devices_template.jsontodevices.jsonand configure it with the MAC addresses and names of the devices you want to track.
- Websites: Copy
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.
Languages
Go
100%