Initial release v1.0.0 — Nextcloud Collabora Node-RED sidecar
This commit is contained in:
+81
@@ -0,0 +1,81 @@
|
||||
#!/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."
|
||||
Reference in New Issue
Block a user