3643bd2b31
Preserve lib/ and nodes/ tree instead of flattening, validate layout before Docker build, repair broken entrypoint patches, reconnect bridge after compose up, and detect CODE via bridge network HTTPS.
49 lines
1.7 KiB
Bash
Executable File
49 lines
1.7 KiB
Bash
Executable File
#!/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/ncadmin/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."
|