Files
nextcloud-collabora-nodered/install.sh
T
2026-08-22 14:56:38 +02:00

82 lines
2.3 KiB
Bash

#!/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://<server-ip>: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."