62 lines
2.3 KiB
Bash
Executable File
62 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
set -euo pipefail
|
|
HOST106="aissa@10.4.7.18"
|
|
HOST19="aissa@10.4.7.19"
|
|
PASS='Foodlinkk#2026'
|
|
BASE="/tmp/foodlinkk-deploy"
|
|
|
|
echo "==> Deploy cockpit label + docling UI to VM106"
|
|
sshpass -p "$PASS" rsync -az \
|
|
"$BASE/cockpit/app/routes/admin_api.py" \
|
|
"$BASE/cockpit/app/routes/documents.py" \
|
|
"$BASE/cockpit/templates/documents.html" \
|
|
"$BASE/cockpit/static/css/documents-workbench.css" \
|
|
"$BASE/migrations/028_docling_results.sql" \
|
|
"$HOST106:~/foodlinkk-command-center/"
|
|
|
|
sshpass -p "$PASS" ssh -o StrictHostKeyChecking=no "$HOST106" <<'REMOTE106'
|
|
cd ~/foodlinkk-command-center
|
|
docker exec -i foodlinkk_db psql -U aissa -d foodlinkk < migrations/028_docling_results.sql 2>/dev/null || true
|
|
cp -f admin_api.py cockpit/app/routes/admin_api.py
|
|
cp -f documents.py cockpit/app/routes/documents.py
|
|
cp -f documents.html cockpit/templates/documents.html
|
|
cp -f documents-workbench.css cockpit/static/css/documents-workbench.css
|
|
docker compose build cockpit && docker compose up -d cockpit
|
|
REMOTE106
|
|
|
|
echo "==> Deploy Docling to doc-ingest VM19"
|
|
sshpass -p "$PASS" ssh -o StrictHostKeyChecking=no "$HOST19" 'mkdir -p ~/foodlinkk-ai/doc-ingest/app'
|
|
sshpass -p "$PASS" scp -o StrictHostKeyChecking=no \
|
|
"$BASE/doc-ingest/app/docling_service.py" \
|
|
"$BASE/doc-ingest/app/docling_routes.py" \
|
|
"$HOST19:~/foodlinkk-ai/doc-ingest/app/"
|
|
|
|
sshpass -p "$PASS" ssh -o StrictHostKeyChecking=no "$HOST19" <<'REMOTE19'
|
|
set -e
|
|
cd ~/foodlinkk-ai/doc-ingest
|
|
grep -q '^docling' requirements.txt || echo 'docling>=2.14.0' >> requirements.txt
|
|
grep -q 'docling_routes' app/main.py || python3 <<'PY'
|
|
from pathlib import Path
|
|
p = Path("app/main.py")
|
|
text = p.read_text()
|
|
if "docling_routes" not in text:
|
|
text = text.replace(
|
|
"from app.pptx_template import ensure_blank_template",
|
|
"from app.pptx_template import ensure_blank_template\nfrom app.docling_routes import router as docling_router",
|
|
)
|
|
needle = 'app = FastAPI(title="Foodlinkk Doc Ingest"'
|
|
pos = text.find(needle)
|
|
if pos >= 0:
|
|
line_end = text.find("\n", pos)
|
|
text = text[: line_end + 1] + "\napp.include_router(docling_router)\n" + text[line_end + 1 :]
|
|
p.write_text(text)
|
|
print("patched main.py")
|
|
PY
|
|
if ! grep -q 'libgl1' Dockerfile; then
|
|
sed -i 's/libpq5/libpq5 libgl1 libglib2.0-0 libgomp1/' Dockerfile
|
|
fi
|
|
docker compose up -d --build 2>&1 | tail -20
|
|
REMOTE19
|
|
|
|
echo "==> Done"
|