Initial: RPi Docker Compose stack
- Mosquitto MQTT broker - Zigbee2MQTT with BLZ dongle (ThirdReality, BL702, Pine64 fork) - Node-RED 5.0 with dashboard - justfile for remote management
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
# rpi-zigbee-stack — Docker Compose stack management for RPi 3B+
|
||||
|
||||
set export
|
||||
RPI := "root@192.168.9.147"
|
||||
COMPOSE := "/root/compose.yaml"
|
||||
|
||||
# Default: show stack status
|
||||
default:
|
||||
ssh {{RPI}} "docker compose -f {{COMPOSE}} ps"
|
||||
|
||||
# ---- Service management ----
|
||||
|
||||
# Start all services
|
||||
up:
|
||||
ssh {{RPI}} "docker compose -f {{COMPOSE}} up -d"
|
||||
|
||||
# Stop all services
|
||||
down:
|
||||
ssh {{RPI}} "docker compose -f {{COMPOSE}} down"
|
||||
|
||||
# Restart all services
|
||||
restart:
|
||||
ssh {{RPI}} "docker compose -f {{COMPOSE}} restart"
|
||||
|
||||
# Restart a specific service
|
||||
restart-svc SERVICE:
|
||||
ssh {{RPI}} "docker compose -f {{COMPOSE}} restart {{SERVICE}}"
|
||||
|
||||
# Pull latest images
|
||||
pull:
|
||||
ssh {{RPI}} "docker compose -f {{COMPOSE}} pull"
|
||||
|
||||
# ---- Logs ----
|
||||
|
||||
# Tail all logs
|
||||
logs:
|
||||
ssh {{RPI}} "docker compose -f {{COMPOSE}} logs --tail 50"
|
||||
|
||||
# Follow all logs
|
||||
logs-follow:
|
||||
ssh {{RPI}} "docker compose -f {{COMPOSE}} logs -f"
|
||||
|
||||
# Logs for a specific service
|
||||
logs-svc SERVICE:
|
||||
ssh {{RPI}} "docker compose -f {{COMPOSE}} logs --tail 50 {{SERVICE}}"
|
||||
|
||||
# ---- Zigbee ----
|
||||
|
||||
# Show zigbee2mqtt status
|
||||
zb-status:
|
||||
ssh {{RPI}} "docker logs zigbee2mqtt --tail 10 2>&1"
|
||||
|
||||
# Permit zigbee joining for 60 seconds
|
||||
zb-permit:
|
||||
ssh {{RPI}} "docker exec mosquitto mosquitto_pub -t zigbee2mqtt/bridge/request/permit_join -m '{\"value\":true,\"time\":60}'"
|
||||
|
||||
# Disable zigbee joining
|
||||
zb-deny:
|
||||
ssh {{RPI}} "docker exec mosquitto mosquitto_pub -t zigbee2mqtt/bridge/request/permit_join -m '{\"value\":false}'"
|
||||
|
||||
# List zigbee devices
|
||||
zb-devices:
|
||||
ssh {{RPI}} "docker exec mosquitto mosquitto_pub -t zigbee2mqtt/bridge/request/devices -m ''"
|
||||
|
||||
# ---- Node-RED ----
|
||||
|
||||
# Open Node-RED editor
|
||||
nr-editor:
|
||||
xdg-open http://192.168.9.147:1880 2>/dev/null || open http://192.168.9.147:1880 2>/dev/null
|
||||
|
||||
# Open Node-RED dashboard
|
||||
nr-dashboard:
|
||||
xdg-open http://192.168.9.147:1880/ui 2>/dev/null || open http://192.168.9.147:1880/ui 2>/dev/null
|
||||
|
||||
# ---- Maintenance ----
|
||||
|
||||
# Sync compose.yaml and configs to RPi
|
||||
sync:
|
||||
scp compose.yaml {{RPI}}:/root/compose.yaml
|
||||
scp mosquitto.conf {{RPI}}:/root/mosquitto/config/mosquitto.conf
|
||||
scp zigbee2mqtt.yaml {{RPI}}:/root/zigbee2mqtt/configuration.yaml
|
||||
@echo "Configs synced to RPi. Run 'just restart' to apply."
|
||||
|
||||
# Full redeploy: sync configs + restart
|
||||
redeploy: sync restart
|
||||
|
||||
# Show disk usage on RPi
|
||||
df:
|
||||
ssh {{RPI}} "df -h / /var/lib/docker"
|
||||
|
||||
# Show Docker disk usage
|
||||
docker-df:
|
||||
ssh {{RPI}} "docker system df"
|
||||
|
||||
# Prune unused Docker images/volumes
|
||||
prune:
|
||||
ssh {{RPI}} "docker system prune -f"
|
||||
|
||||
# ---- Snapshots ----
|
||||
|
||||
# Backup current RPi configs to local repo
|
||||
backup:
|
||||
ssh {{RPI}} "cat /root/compose.yaml" > compose.yaml
|
||||
ssh {{RPI}} "cat /root/mosquitto/config/mosquitto.conf" > mosquitto.conf
|
||||
ssh {{RPI}} "cat /root/zigbee2mqtt/configuration.yaml" > zigbee2mqtt.yaml
|
||||
@echo "Backed up. Run git diff to see changes."
|
||||
Reference in New Issue
Block a user