#!/usr/bin/env bash # install.sh — nextcloud-collabora-nodered v1.0 # Kör på Ubuntu/Nextcloud-servern efter överföring från Windows. set -euo pipefail VERSION="1.0.0" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" INSTALL_DIR="${INSTALL_DIR:-$SCRIPT_DIR}" COMPOSE="docker compose" log() { printf '[install] %s\n' "$*"; } die() { printf '[install] FEL: %s\n' "$*" >&2; exit 1; } require_cmd() { command -v "$1" >/dev/null 2>&1 || die "Saknar kommando: $1" } log "nextcloud-collabora-nodered v${VERSION}" log "Installationskatalog: ${INSTALL_DIR}" require_cmd docker if docker compose version >/dev/null 2>&1; then COMPOSE="docker compose" elif command -v docker-compose >/dev/null 2>&1; then COMPOSE="docker-compose" else die "Docker Compose saknas (docker compose eller docker-compose)" fi cd "${INSTALL_DIR}" if [ ! -f docker-compose.yml ]; then die "docker-compose.yml saknas i ${INSTALL_DIR}" fi if [ ! -f .env ]; then log "Skapar .env från .env.example" cp .env.example .env fi # Valfri tarball-import (skickad från Windows) if [ -n "${IMPORT_TARBALL:-}" ] && [ -f "${IMPORT_TARBALL}" ]; then log "Extraherar ${IMPORT_TARBALL}" tmpdir="$(mktemp -d)" tar -xzf "${IMPORT_TARBALL}" -C "${tmpdir}" src="$(find "${tmpdir}" -maxdepth 2 -name docker-compose.yml -printf '%h\n' | head -1)" [ -n "${src}" ] || die "Ogiltig tarball — saknar docker-compose.yml" rsync -a "${src}/" "${INSTALL_DIR}/" rm -rf "${tmpdir}" fi log "Bygger och startar container (port 1881)..." ${COMPOSE} build --no-cache ${COMPOSE} up -d log "Väntar på Node-RED..." for i in $(seq 1 30); do if curl -sf "http://127.0.0.1:1881" >/dev/null 2>&1; then log "Node-RED svarar på http://127.0.0.1:1881" break fi sleep 2 if [ "$i" -eq 30 ]; then log "Varning: Node-RED svarade inte inom 60 s — kontrollera: ${COMPOSE} logs -f" fi done cat <<'EOF' Nästa steg: 1. Öppna http://:1881 2. Lägg till nc-collab-config med app-lösenord (inte kontolösen) 3. Importera/kör exempelflödet (flows/example-flows.json) 4. Testa: capabilities → ncFileToPdf mot känd fil → /Dokument/OfficeOut/ CODE ska redan köra på 127.0.0.1:9980 — starta inte ny CODE-container. Befintlig nextcloud-node-red på :1880 lämnas orörd. EOF log "Klart."