82 lines
2.3 KiB
Bash
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."
|