ArinDash/README.md

75 lines
2.8 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.
- **WiFi QR Code**: Display a QR code for easy WiFi connection sharing.
- **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.
- **WiFi**: 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/).
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, simply execute:
```bash
go run main.go
```
### Controls
- **Esc / Ctrl+C**: Exit the application.
## 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.