#!/bin/bash # SamCloud Home Lab Dashboard Management Script DASHBOARD_PATH="/Volumes/SamMgmt/CF DDClient/homelab_dashboard.py" PLIST_PATH="/Library/LaunchDaemons/ca.samcloud.homelab-dashboard.plist" case "$1" in start) echo "๐Ÿš€ Starting home lab dashboard..." python3 "$DASHBOARD_PATH" --host 0.0.0.0 --port 8080 ;; status) echo "๐Ÿ“Š Checking home lab dashboard status..." if pgrep -f "homelab_dashboard.py" > /dev/null; then echo "โœ… Dashboard is running" echo "๐ŸŒ Available at: http://localhost:8080" else echo "โŒ Dashboard is not running" fi ;; install-service) echo "๐Ÿ“ฆ Installing dashboard service..." if [[ "$OSTYPE" == "darwin"* ]]; then sudo cp homelab_dashboard.plist "$PLIST_PATH" sudo launchctl load "$PLIST_PATH" echo "โœ… macOS LaunchDaemon installed and started" else sudo cp homelab-dashboard.service /etc/systemd/system/ sudo systemctl enable homelab-dashboard sudo systemctl start homelab-dashboard echo "โœ… Systemd service installed and started" fi ;; stop-service) echo "๐Ÿ›‘ Stopping dashboard service..." if [[ "$OSTYPE" == "darwin"* ]]; then sudo launchctl unload "$PLIST_PATH" 2>/dev/null || true else sudo systemctl stop homelab-dashboard fi echo "โœ… Service stopped" ;; logs) echo "๐Ÿ“‹ Dashboard logs:" if [[ "$OSTYPE" == "darwin"* ]]; then tail -f /var/log/homelab_dashboard.log else sudo journalctl -u homelab-dashboard -f fi ;; open) echo "๐ŸŒ Opening dashboard in browser..." if command -v open &> /dev/null; then open http://localhost:8080 elif command -v xdg-open &> /dev/null; then xdg-open http://localhost:8080 else echo "Please open http://localhost:8080 in your browser" fi ;; test) echo "๐Ÿงช Testing dashboard components..." python3 -c " from homelab_dashboard import HomeLabDashboard import json dashboard = HomeLabDashboard() print('๐Ÿ” Testing DDNS status...') ddns_status = dashboard.get_ddns_status() print('DDNS Status:', ddns_status.get('status', 'unknown')) print('๐Ÿ’ป Testing system info...') system_info = dashboard.get_system_info() print('CPU Usage:', system_info['cpu']['usage'], '%') print('โœ… All components working') " ;; *) echo "SamCloud Home Lab Dashboard Management" echo "" echo "Usage: $0 {start|status|install-service|stop-service|logs|open|test}" echo "" echo "Commands:" echo " start - Start dashboard in foreground" echo " status - Check if dashboard is running" echo " install-service - Install as system service" echo " stop-service - Stop system service" echo " logs - Show dashboard logs" echo " open - Open dashboard in browser" echo " test - Test dashboard components" ;; esac