75 lines
2.8 KiB
Markdown
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.
|