Fix Docker/nätverk mot faktisk server: bridge 172.17.0.2, Gitea, Alpine-mönster
This commit is contained in:
+44
-16
@@ -1,12 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
# install.sh — nextcloud-collabora-nodered v1.0
|
||||
# Kör på Ubuntu/Nextcloud-servern efter överföring från Windows.
|
||||
# Kör på cloud (192.168.1.10): /home/ncdeploy/nextcloud-collabora-nodered
|
||||
set -euo pipefail
|
||||
|
||||
VERSION="1.0.0"
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
INSTALL_DIR="${INSTALL_DIR:-$SCRIPT_DIR}"
|
||||
COMPOSE="docker compose"
|
||||
CODE_CONTAINER="${CODE_CONTAINER:-code}"
|
||||
COLLABORA_IP="${COLLABORA_IP:-172.17.0.2}"
|
||||
|
||||
log() { printf '[install] %s\n' "$*"; }
|
||||
die() { printf '[install] FEL: %s\n' "$*" >&2; exit 1; }
|
||||
@@ -24,7 +26,7 @@ if docker compose version >/dev/null 2>&1; then
|
||||
elif command -v docker-compose >/dev/null 2>&1; then
|
||||
COMPOSE="docker-compose"
|
||||
else
|
||||
die "Docker Compose saknas (docker compose eller docker-compose)"
|
||||
die "Docker Compose saknas"
|
||||
fi
|
||||
|
||||
cd "${INSTALL_DIR}"
|
||||
@@ -38,19 +40,36 @@ if [ ! -f .env ]; then
|
||||
cp .env.example .env
|
||||
fi
|
||||
|
||||
# Valfri tarball-import (skickad från Windows)
|
||||
# Valfri tarball 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"
|
||||
[ -n "${src}" ] || die "Ogiltig tarball"
|
||||
rsync -a "${src}/" "${INSTALL_DIR}/"
|
||||
rm -rf "${tmpdir}"
|
||||
fi
|
||||
|
||||
log "Bygger och startar container (port 1881)..."
|
||||
${COMPOSE} build --no-cache
|
||||
# Verifiera att CODE redan kör (starta INTE ny)
|
||||
if ! docker ps --format '{{.Names}}' | grep -qx "${CODE_CONTAINER}"; then
|
||||
die "CODE-container '${CODE_CONTAINER}' körs inte. Starta inte ny CODE — fixa befintlig instans först."
|
||||
fi
|
||||
|
||||
code_ip="$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' "${CODE_CONTAINER}" 2>/dev/null | head -1)"
|
||||
if [ -n "${code_ip}" ] && [ "${code_ip}" != "${COLLABORA_IP}" ]; then
|
||||
log "OBS: CODE IP är ${code_ip} (inte ${COLLABORA_IP}). Uppdatera COLLABORA_URL i .env om nödvändigt."
|
||||
if grep -q '^COLLABORA_URL=' .env; then
|
||||
sed -i "s|^COLLABORA_URL=.*|COLLABORA_URL=http://${code_ip}:9980|" .env
|
||||
fi
|
||||
fi
|
||||
|
||||
log "Bygger och startar sidecar (port 1881, nätverk bridge + collab_default)..."
|
||||
if [ "${FORCE_REBUILD:-0}" = "1" ]; then
|
||||
${COMPOSE} build --no-cache
|
||||
else
|
||||
${COMPOSE} build
|
||||
fi
|
||||
${COMPOSE} up -d
|
||||
|
||||
log "Väntar på Node-RED..."
|
||||
@@ -60,22 +79,31 @@ for i in $(seq 1 30); do
|
||||
break
|
||||
fi
|
||||
sleep 2
|
||||
if [ "$i" -eq 30 ]; then
|
||||
log "Varning: Node-RED svarade inte inom 60 s — kontrollera: ${COMPOSE} logs -f"
|
||||
fi
|
||||
[ "$i" -eq 30 ] && log "Varning: Node-RED svarade inte inom 60 s"
|
||||
done
|
||||
|
||||
cat <<'EOF'
|
||||
log "Testar CODE capabilities från sidecar..."
|
||||
collab_url="$(grep '^COLLABORA_URL=' .env | cut -d= -f2- || echo "http://${COLLABORA_IP}:9980")"
|
||||
if docker exec nextcloud-collabora-nodered curl -sf "${collab_url}/hosting/capabilities" >/dev/null 2>&1; then
|
||||
log "OK: CODE nås på ${collab_url}"
|
||||
else
|
||||
log "VARNING: Kunde inte nå ${collab_url}/hosting/capabilities från sidecar."
|
||||
log " Kontrollera: docker network inspect bridge | grep -A2 code"
|
||||
log " Alternativ: docker network connect bridge nextcloud-collabora-nodered"
|
||||
fi
|
||||
|
||||
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/
|
||||
1. Öppna http://192.168.1.10:1881
|
||||
2. nc-collab-config: app-lösenord, collaboraUrl=${collab_url}
|
||||
3. Kör acceptansflödet (capabilities → ncFileToPdf)
|
||||
|
||||
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.
|
||||
Git (Gitea): https://git.domain.name/
|
||||
git remote add origin https://git.domain.name/<user>/nextcloud-collabora-nodered.git
|
||||
git push -u origin main
|
||||
|
||||
Orört: nextcloud-node-red :1880 (odds_network), odds-scraper, Gitea-databaslösen.
|
||||
EOF
|
||||
|
||||
log "Klart."
|
||||
|
||||
Reference in New Issue
Block a user