Add node docs, collabora purple UI, and portable install env
Human-readable help in all six palette nodes, docs/NODES.md with usage examples, expanded example flows, and auto-detect NODERED_DIR plus CODE bridge IP from .env on any VM.
This commit is contained in:
@@ -9,7 +9,8 @@ NODERED_DIR="${NODERED_DIR:-/home/ncadmin/nextcloud-node-red}"
|
||||
NODERED_CONTAINER="${NODERED_CONTAINER:-nextcloud-node-red}"
|
||||
NODERED_PORT="${NODERED_PORT:-1880}"
|
||||
CODE_CONTAINER="${CODE_CONTAINER:-code}"
|
||||
COLLABORA_IP="${COLLABORA_IP:-172.17.0.2}"
|
||||
COLLABORA_IP="${COLLABORA_IP:-}"
|
||||
NEXTCLOUD_URL="${NEXTCLOUD_URL:-https://cloud.hannesahlin.se}"
|
||||
MARKER="nextcloud-collabora-nodered"
|
||||
|
||||
log() { printf '[integrate] %s\n' "$*"; }
|
||||
@@ -141,11 +142,66 @@ compose_run() {
|
||||
run_as_root env DOCKER_BUILDKIT=1 ${compose} "$@"
|
||||
}
|
||||
|
||||
code_bridge_ip() {
|
||||
docker inspect -f '{{range $k,$v := .NetworkSettings.Networks}}{{if eq $k "bridge"}}{{$v.IPAddress}}{{end}}{{end}}' "${CODE_CONTAINER}" 2>/dev/null
|
||||
}
|
||||
|
||||
detect_code_ip() {
|
||||
local ip
|
||||
ip="$(code_bridge_ip)"
|
||||
if [ -n "${ip}" ]; then
|
||||
COLLABORA_IP="${ip}"
|
||||
log "CODE bridge-IP: ${COLLABORA_IP} (container ${CODE_CONTAINER})"
|
||||
return 0
|
||||
fi
|
||||
if [ -n "${COLLABORA_IP}" ]; then
|
||||
warn "Kunde inte läsa bridge-IP — använder COLLABORA_IP=${COLLABORA_IP}"
|
||||
return 0
|
||||
fi
|
||||
die "CODE bridge-IP saknas — sätt COLLABORA_IP eller kontrollera att ${CODE_CONTAINER} kör på Docker bridge"
|
||||
}
|
||||
|
||||
detect_nodered_dir() {
|
||||
if [ -d "${NODERED_DIR}" ] && [ -f "${NODERED_DIR}/Dockerfile" ]; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
local from_compose
|
||||
from_compose="$(docker inspect -f '{{index .Config.Labels "com.docker.compose.project.working_dir"}}' "${NODERED_CONTAINER}" 2>/dev/null || true)"
|
||||
if [ -n "${from_compose}" ] && [ -f "${from_compose}/Dockerfile" ]; then
|
||||
NODERED_DIR="${from_compose}"
|
||||
log "Node-RED-katalog från compose-label: ${NODERED_DIR}"
|
||||
return 0
|
||||
fi
|
||||
|
||||
for candidate in \
|
||||
"/home/ncadmin/nextcloud-node-red" \
|
||||
"/opt/nextcloud-node-red"; do
|
||||
if [ -f "${candidate}/Dockerfile" ]; then
|
||||
NODERED_DIR="${candidate}"
|
||||
log "Node-RED-katalog hittad: ${NODERED_DIR}"
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
|
||||
die "NODERED_DIR saknas eller ogiltig — sätt sökväg till befintlig nextcloud-node-red (Dockerfile + entrypoint.sh)"
|
||||
}
|
||||
|
||||
resolve_paths() {
|
||||
if [ -f "${PKG_SRC}/.env" ]; then
|
||||
set -a
|
||||
# shellcheck disable=SC1091
|
||||
. "${PKG_SRC}/.env"
|
||||
set +a
|
||||
fi
|
||||
|
||||
if [ "$(id -u)" -eq 0 ] && [ -d "/home/ncadmin/nextcloud-node-red" ]; then
|
||||
NODERED_DIR="${NODERED_DIR:-/home/ncadmin/nextcloud-node-red}"
|
||||
PKG_SRC="${PKG_SRC:-/home/ncadmin/nextcloud-collabora-nodered}"
|
||||
fi
|
||||
|
||||
detect_nodered_dir
|
||||
detect_code_ip
|
||||
}
|
||||
|
||||
stop_sidecar_if_any() {
|
||||
@@ -293,10 +349,6 @@ wait_nodered() {
|
||||
warn "Node-RED svarade inte inom 60 s"
|
||||
}
|
||||
|
||||
code_bridge_ip() {
|
||||
docker inspect -f '{{range $k,$v := .NetworkSettings.Networks}}{{if eq $k "bridge"}}{{$v.IPAddress}}{{end}}{{end}}' "${CODE_CONTAINER}" 2>/dev/null
|
||||
}
|
||||
|
||||
verify_code_from_nodered() {
|
||||
local code_ip
|
||||
code_ip="$(code_bridge_ip)"
|
||||
@@ -328,21 +380,26 @@ main() {
|
||||
wait_nodered
|
||||
verify_code_from_nodered
|
||||
|
||||
local host_ip
|
||||
local host_ip code_ip nc_url
|
||||
host_ip="$(hostname -I 2>/dev/null | awk '{print $1}' || echo "127.0.0.1")"
|
||||
code_ip="$(code_bridge_ip)"
|
||||
[ -n "${code_ip}" ] || code_ip="${COLLABORA_IP}"
|
||||
nc_url="${NEXTCLOUD_URL:-https://cloud.hannesahlin.se}"
|
||||
|
||||
cat <<EOF
|
||||
|
||||
Integrering klar — samma Node-RED på port ${NODERED_PORT}
|
||||
UI: http://${host_ip}:${NODERED_PORT}
|
||||
Noder: nc-collab-config, collabora-bridge, nc-office, ...
|
||||
Noder: palett "nextcloud collabora" (6 st + config)
|
||||
|
||||
Nästa steg:
|
||||
1. nc-collab-config → app-lösenord, collaboraUrl=https://172.17.0.2:9980 (verifyTls=false)
|
||||
2. Importera flows/example-flows.json från ${PKG_SRC} (valfritt)
|
||||
3. Test: capabilities → ncFileToPdf
|
||||
Skapa config först (kugghjul → nc-collab-config):
|
||||
Nextcloud: ${nc_url}
|
||||
Collabora: https://${code_ip}:9980 (verifyTls=false)
|
||||
Publik WOPI: ${nc_url}
|
||||
Auth: användarnamn + app-lösenord
|
||||
|
||||
Ingen ny container skapad. odds-scraper orörd.
|
||||
Testa: collabora-wopi (capabilities) → collabora-bridge (ncFileToPdf)
|
||||
Exempelflöde: flows/example-flows.json
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user