#!/bin/bash # Deploy latest kiosk code. # Always commits to Gitea and restarts kiosk-dev (dev/test machine). # If the production kiosk is reachable, deploys there too. # Usage: ./deploy.sh ["commit message"] KIOSK_LOCAL="jgitta@192.168.88.44" KIOSK_REMOTE="jgitta@100.64.0.1" REPO_DIR="$(cd "$(dirname "$0")" && pwd)" HOME_SRC="$REPO_DIR/home-screen-index.html" HOME_DST="/home/jgitta/kiosk-home/index.html" COMMIT_MSG="${1:-deploy: update from kiosk-dev $(date +%Y-%m-%d)}" echo "==> Syncing home screen to $HOME_DST..." if [ -f "$HOME_SRC" ]; then mkdir -p "$(dirname "$HOME_DST")" cp "$HOME_SRC" "$HOME_DST" chown jgitta:jgitta "$HOME_DST" 2>/dev/null || true else echo " WARNING: $HOME_SRC missing — home screen not updated" fi echo "==> Committing and pushing to Gitea..." git -C "$REPO_DIR" add -A git -C "$REPO_DIR" commit -m "$COMMIT_MSG" 2>/dev/null || echo " (nothing new to commit)" git -C "$REPO_DIR" push origin master || echo " (nothing new to push)" echo "==> Restarting kiosk-dev..." /usr/local/bin/kiosk-restart echo "==> Trying production kiosk..." KIOSK="" if ssh -o ConnectTimeout=5 -o BatchMode=yes $KIOSK_LOCAL "echo ok" &>/dev/null; then KIOSK="$KIOSK_LOCAL" echo " Reaching production via local network" elif ssh -o ConnectTimeout=8 -o BatchMode=yes $KIOSK_REMOTE "echo ok" &>/dev/null; then KIOSK="$KIOSK_REMOTE" echo " Reaching production via Tailscale" else echo " Production kiosk unreachable — skipping (will deploy when online)" fi if [ -n "$KIOSK" ]; then ssh "$KIOSK" " cd /home/jgitta/kiosk-browser git pull cp home-screen-index.html /home/jgitta/kiosk-home/index.html /usr/local/bin/kiosk-restart " echo " Production updated." fi echo "==> Deploy complete!"