#!/bin/bash # Installation script for Matrix64 LED Display # Run this once on your Raspberry Pi set -e INSTALL_DIR="/opt/matrix64" REPO_URL="https://gitlab.kingstudio.es/jocaru/matrix64" echo "=== Matrix64 LED Display Installation ===" # Clone or update repository if [ -d "$INSTALL_DIR" ]; then echo "Directory exists, updating..." cd "$INSTALL_DIR" git pull origin master else echo "Cloning repository..." git clone "$REPO_URL" "$INSTALL_DIR" cd "$INSTALL_DIR" fi # Install Python dependencies echo "Installing Python dependencies..." pip3 install -r requirements.txt # Create .env from example if not exists if [ ! -f "$INSTALL_DIR/.env" ]; then echo "Creating .env from template..." cp "$INSTALL_DIR/.env.example" "$INSTALL_DIR/.env" echo "IMPORTANT: Edit $INSTALL_DIR/.env with your actual values!" fi # Install systemd service echo "Installing systemd service..." cp "$INSTALL_DIR/matrix64.service" /etc/systemd/system/ systemctl daemon-reload systemctl enable matrix64 # Make update script executable chmod +x "$INSTALL_DIR/update.sh" # Set up cron job for auto-updates (every 5 minutes) CRON_JOB="*/5 * * * * $INSTALL_DIR/update.sh" (crontab -l 2>/dev/null | grep -v "matrix64/update.sh"; echo "$CRON_JOB") | crontab - echo "" echo "=== Installation Complete ===" echo "" echo "Next steps:" echo "1. Edit /opt/matrix64/.env with your Home Assistant token and URLs" echo "2. Start the service: sudo systemctl start matrix64" echo "3. Check status: sudo systemctl status matrix64" echo "4. View logs: sudo journalctl -u matrix64 -f" echo "" echo "Auto-updates are enabled (every 5 minutes via cron)"