diff --git a/chromium-setup/emmc-provisioning/cloud-init/first-boot.sh b/chromium-setup/emmc-provisioning/cloud-init/first-boot.sh index 53a54e6..cc96ff9 100644 --- a/chromium-setup/emmc-provisioning/cloud-init/first-boot.sh +++ b/chromium-setup/emmc-provisioning/cloud-init/first-boot.sh @@ -34,7 +34,7 @@ install_oneshot() { # --- 1. Packages --- log "--- Installing packages ---" apt-get update -qq -apt-get install -y -qq git chromium-browser wmctrl openssh-server \ +apt-get install -y -qq git chromium wmctrl openssh-server \ kde-plasma-desktop kscreen maliit-keyboard xinput-calibrator # --- 2. Dirs and kiosk files from file server --- diff --git a/chromium-setup/emmc-provisioning/scripts/sync-portal-files-to-lxc.sh b/chromium-setup/emmc-provisioning/scripts/sync-portal-files-to-lxc.sh new file mode 100755 index 0000000..f0f6f26 --- /dev/null +++ b/chromium-setup/emmc-provisioning/scripts/sync-portal-files-to-lxc.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash +# Sync portal (file server) content from the repo to the LXC. +# Updates /var/lib/cm4-provisioning/portal-files/ so first-boot and the +# dashboard /files/ serve the same scripts and assets as in the repo. +# Usage: ./sync-portal-files-to-lxc.sh [user@lxc_ip] +# Example: ./sync-portal-files-to-lxc.sh root@10.130.60.141 + +set -e +LXC="${1:-root@10.130.60.141}" +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +REPO_DIR="$(dirname "$SCRIPT_DIR")" +CLOUDINIT_DIR="$REPO_DIR/cloud-init" +REMOTE_PORTAL="/var/lib/cm4-provisioning/portal-files" +REMOTE_FIRST_BOOT="${REMOTE_PORTAL}/first-boot" + +if [[ ! -d "$CLOUDINIT_DIR" ]]; then + echo "Error: cloud-init dir not found: $CLOUDINIT_DIR" + exit 1 +fi + +echo "Syncing portal files to $LXC ($REMOTE_PORTAL) ..." +ssh "$LXC" "command -v rsync >/dev/null 2>&1 || (apt-get update -qq && apt-get install -y rsync)" +ssh "$LXC" "mkdir -p $REMOTE_FIRST_BOOT" + +# first-boot.sh at portal root (cloud-init downloads it by URL, not from first-boot/ subfolder) +rsync -avz "$CLOUDINIT_DIR/first-boot.sh" "$LXC:$REMOTE_PORTAL/" + +# config-files/* → portal-files/first-boot/ +rsync -avz --exclude='README.md' \ + "$CLOUDINIT_DIR/config-files/" \ + "$LXC:$REMOTE_FIRST_BOOT/" + +# plymouth-custom/* (custom.plymouth, custom.script, splash.png if present) → portal-files/first-boot/ +rsync -avz \ + "$CLOUDINIT_DIR/files-from-guard/plymouth-custom/" \ + "$LXC:$REMOTE_FIRST_BOOT/" + +# one-shot scripts from cloud-init root → portal-files/first-boot/ +rsync -avz \ + "$CLOUDINIT_DIR/set-rotation-once.sh" \ + "$CLOUDINIT_DIR/set-wallpaper-once.sh" \ + "$LXC:$REMOTE_FIRST_BOOT/" + +echo "Done. Portal files at http://$(echo "$LXC" | cut -d@ -f2):5000/files/"