#!/usr/bin/env bash set -euo pipefail # Bootstrap installer for node-red-contrib-nextcloud-zammad # Clones repo and integrates into existing nextcloud-node-red REPO_URL="https://kode.hannesahlin.se/n3wk/nextcloud-nodered-zammad.git" INSTALL_DIR="${INSTALL_DIR:-/opt/node-red-contrib-nextcloud-zammad}" NODERED_DIR="${NODERED_DIR:-}" echo "=== Nextcloud Zammad Node-RED Bootstrap Installer ===" # Auto-detect nextcloud-node-red directory if not set if [[ -z "$NODERED_DIR" ]]; then for dir in \ "/opt/nextcloud-node-red" \ "/home/ncdeploy/nextcloud-node-red" \ "/root/nextcloud-node-red" \ "$(docker inspect -f '{{.Config.Labels}}' nextcloud-node-red 2>/dev/null | grep -o 'com.docker.compose.project.working_dir=[^ ]*' | cut -d= -f2)"; do if [[ -n "$dir" && -d "$dir" && -f "$dir/Dockerfile" ]]; then NODERED_DIR="$dir" break fi done fi if [[ -z "$NODERED_DIR" ]]; then echo "ERROR: Could not auto-detect nextcloud-node-red directory." echo "Set NODERED_DIR environment variable." exit 1 fi echo "Target Node-RED: $NODERED_DIR" # Clone or update repo if [[ -d "$INSTALL_DIR/.git" ]]; then echo "Updating existing repo..." git -C "$INSTALL_DIR" pull --ff-only || echo "Pull failed, continuing with existing code..." else echo "Cloning repo..." git clone --depth 1 "$REPO_URL" "$INSTALL_DIR" fi # Run integration export NODERED_DIR "$INSTALL_DIR/integrate-into-nodered.sh" echo "" echo "=== Bootstrap Complete ===" echo "Rebuild with: cd $NODERED_DIR && docker compose build --no-cache && docker compose up -d"