87 lines
3.5 KiB
Markdown
87 lines
3.5 KiB
Markdown
# 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.
|