#!/usr/bin/env bash # install.sh — integrera Collabora-noder i befintlig nextcloud-node-red (:1880) # # Standard: INSTALL_MODE=integrate (ingen ny container, ingen port 1881) # Sidecar (endast om du uttryckligen vill): INSTALL_MODE=sidecar # set -euo pipefail VERSION="1.0.0" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" INSTALL_DIR="${INSTALL_DIR:-$SCRIPT_DIR}" INSTALL_MODE="${INSTALL_MODE:-integrate}" NODERED_DIR="${NODERED_DIR:-/home/ncdeploy/nextcloud-node-red}" CODE_CONTAINER="${CODE_CONTAINER:-code}" COLLABORA_IP="${COLLABORA_IP:-172.17.0.2}" log() { printf '[install] %s\n' "$*"; } die() { printf '[install] FEL: %s\n' "$*" >&2; exit 1; } log "nextcloud-collabora-nodered v${VERSION} (läge: ${INSTALL_MODE})" if [ "${INSTALL_MODE}" = "sidecar" ]; then log "Sidecar-läge — varning: standard är integrate (befintlig :1880)" require_cmd() { command -v "$1" >/dev/null 2>&1 || die "Saknar: $1"; } require_cmd docker COMPOSE="docker compose" docker compose version >/dev/null 2>&1 || COMPOSE="docker-compose" cd "${INSTALL_DIR}" [ -f docker-compose.yml ] || die "docker-compose.yml saknas" [ -f .env ] || cp .env.example .env if ! docker ps --format '{{.Names}}' | grep -qx "${CODE_CONTAINER}"; then die "CODE-container '${CODE_CONTAINER}' körs inte" fi ${COMPOSE} build ${COMPOSE} up -d log "Sidecar startad på :1881 (ej rekommenderat om :1880 redan kör)" exit 0 fi # === integrate (default) === chmod +x "${SCRIPT_DIR}/scripts/integrate-into-nodered.sh" PKG_SRC="${INSTALL_DIR}" \ NODERED_DIR="${NODERED_DIR}" \ CODE_CONTAINER="${CODE_CONTAINER}" \ COLLABORA_IP="${COLLABORA_IP}" \ bash "${SCRIPT_DIR}/scripts/integrate-into-nodered.sh" log "Klart."