ArinDash/README.md

87 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ArinDash
ArinDash is a customizable terminal dashboard (TUI) written in Go, powered by [`termdash`](https://github.com/mum4k/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](https://www.nerdfonts.com/cheat-sheet).
## Installation
1. Clone the repository:
```bash
git clone https://github.com/yourusername/ArinDash.git
cd ArinDash
```
2. Install dependencies:
```bash
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:
```bash
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](http://bulk.openweathermap.org/sample/).
- **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:
```bash
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](LICENSE) file for details.