Files

62 lines
2.1 KiB
Markdown

# Pi Monitoring Stack
Purpose: turn a Raspberry Pi 4 (8GB) into a low-power monitoring/control plane for your Gitea migration environment.
This module deploys:
- Portainer (single admin view)
- Grafana (dashboards)
- Prometheus (metrics)
- Uptime Kuma (service checks)
- Node Exporter + cAdvisor (Pi host + container metrics)
## Folder Contents
- `bootstrap_pi.sh`: first-time host prep (packages, Docker, firewall, hardening)
- `mount_ssd.sh`: format/mount SSD and create persistent data paths
- `deploy_stack.sh`: deploy monitoring stack with Docker Compose
- `upgrade_stack.sh`: pull new images and recreate stack
- `backup_stack.sh`: backup stack data/config to `OPS_ROOT/backups`
- `restore_stack.sh`: restore from backup archive
- `status.sh`: show service status and endpoint reachability
- `teardown_stack.sh`: stop/remove stack; optionally delete stack data
- `install_portainer_agent_remote.sh`: install Portainer Agent on Fedora/Unraid
- `docker-compose.yml`: stack definition
- `stack.env.example`: environment template
- `prometheus/prometheus.yml`: Prometheus config
- `USAGE_GUIDE.md`: full setup and operations guide
## Quick Start
Run on the Raspberry Pi host:
```bash
cd /path/to/gitea-migration/setup/pi-monitoring
./bootstrap_pi.sh --yes
./mount_ssd.sh --device=/dev/sda1 --yes
cp stack.env.example stack.env
# edit stack.env and set a strong GRAFANA_ADMIN_PASSWORD
./deploy_stack.sh --yes
./status.sh
```
Then from your admin machine, install Portainer agent on remote Docker hosts:
```bash
./install_portainer_agent_remote.sh --host=<unraid-ip> --user=<unraid-user> --port=22 --yes
./install_portainer_agent_remote.sh --host=<fedora-ip> --user=<fedora-user> --port=22 --yes
```
In Portainer UI (`https://<pi-ip>:9443`), add environments using:
- `tcp://<unraid-ip>:9001`
- `tcp://<fedora-ip>:9001`
## Security Notes
- `stack.env` contains secrets; do not commit it.
- Portainer Agent exposes Docker control on `9001`; keep it inside trusted LAN/VPN.
- Keep UFW enabled and only expose required ports.
- Use SSD for durability; avoid long-term DB workloads on SD card.