diff --git a/index.html b/index.html index df9e5e3..2f17c90 100644 --- a/index.html +++ b/index.html @@ -220,9 +220,9 @@ emoteEl.style.color = data.color; messageEl.style.color = data.color; - // Show event message if available, otherwise show state + // Only show message when there's something to report const topEvent = data.active_events && data.active_events[0]; - messageEl.textContent = (topEvent && topEvent.message) || data.message; + messageEl.textContent = (topEvent && topEvent.message) || ''; // Update animation class emoteEl.className = ''; diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..4155337 --- /dev/null +++ b/install.sh @@ -0,0 +1,79 @@ +#!/bin/bash +# Kao Installation Script +# Installs to /opt/kao and sets up systemd service + +set -e + +INSTALL_DIR="/opt/kao" +SERVICE_FILE="/etc/systemd/system/kao.service" +CURRENT_USER=$(whoami) + +echo "====================================" +echo " Kao Installer" +echo "====================================" +echo "Install directory: $INSTALL_DIR" +echo "Running as user: $CURRENT_USER" +echo "" + +# Check if running with appropriate permissions +if [ ! -w "/opt" ]; then + echo "Error: Need write access to /opt" + echo "Run with: sudo $0" + exit 1 +fi + +# Create install directory +echo "[1/5] Creating install directory..." +mkdir -p "$INSTALL_DIR" +cp -r aggregator.py kao.py index.html config.json requirements.txt detectors "$INSTALL_DIR/" +chown -R "$CURRENT_USER:$CURRENT_USER" "$INSTALL_DIR" + +# Create virtual environment +echo "[2/5] Creating virtual environment..." +cd "$INSTALL_DIR" +python3 -m venv venv +./venv/bin/pip install --upgrade pip -q +./venv/bin/pip install -r requirements.txt -q + +# Create systemd service +echo "[3/5] Creating systemd service..." +cat > "$SERVICE_FILE" << EOF +[Unit] +Description=Kao - System Status Monitor +After=network.target + +[Service] +Type=simple +User=$CURRENT_USER +WorkingDirectory=$INSTALL_DIR +ExecStart=$INSTALL_DIR/venv/bin/python $INSTALL_DIR/kao.py +Restart=always +RestartSec=5 + +[Install] +WantedBy=multi-user.target +EOF + +# Reload systemd and enable service +echo "[4/5] Enabling service..." +systemctl daemon-reload +systemctl enable kao.service + +# Start service +echo "[5/5] Starting Kao..." +systemctl start kao.service + +echo "" +echo "====================================" +echo " Installation complete!" +echo "====================================" +echo "" +echo "Kao is now running at http://$(hostname -I | awk '{print $1}'):5000" +echo "" +echo "Commands:" +echo " sudo systemctl status kao # Check status" +echo " sudo systemctl restart kao # Restart" +echo " sudo systemctl stop kao # Stop" +echo " sudo journalctl -u kao -f # View logs" +echo "" +echo "Config file: $INSTALL_DIR/config.json" diff --git a/uninstall.sh b/uninstall.sh new file mode 100644 index 0000000..5af93aa --- /dev/null +++ b/uninstall.sh @@ -0,0 +1,35 @@ +#!/bin/bash +# Kao Uninstall Script + +set -e + +INSTALL_DIR="/opt/kao" +SERVICE_FILE="/etc/systemd/system/kao.service" + +echo "====================================" +echo " Kao Uninstaller" +echo "====================================" + +# Check permissions +if [ ! -w "/opt" ]; then + echo "Error: Need write access" + echo "Run with: sudo $0" + exit 1 +fi + +# Stop and disable service +echo "[1/3] Stopping service..." +systemctl stop kao.service 2>/dev/null || true +systemctl disable kao.service 2>/dev/null || true + +# Remove service file +echo "[2/3] Removing systemd service..." +rm -f "$SERVICE_FILE" +systemctl daemon-reload + +# Remove install directory +echo "[3/3] Removing files..." +rm -rf "$INSTALL_DIR" + +echo "" +echo "Kao has been uninstalled."