52 lines
1.5 KiB
Bash
52 lines
1.5 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# Bootstrap installer for node-red-contrib-nextcloud-agent
|
|
# Clones repo and integrates into existing nextcloud-node-red
|
|
|
|
REPO_URL="https://kode.hannesahlin.se/n3wk/nextcloud-nodered-agent.git"
|
|
INSTALL_DIR="${INSTALL_DIR:-/opt/node-red-contrib-nextcloud-agent}"
|
|
NODERED_DIR="${NODERED_DIR:-}"
|
|
|
|
echo "=== Nextcloud Agent 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 [[ -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..."
|
|
cd "$INSTALL_DIR"
|
|
git pull
|
|
else
|
|
echo "Cloning repo..."
|
|
git clone "$REPO_URL" "$INSTALL_DIR"
|
|
cd "$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" |