P0 — Vision: - swapper_config_node2.yaml: add llava-13b as vision model (vision:true) /vision/models now returns non-empty list; inference verified ~3.5s - ollama.url fixed to host.docker.internal:11434 (was localhost, broken in Docker) P1 — Security: - Remove NODES_NODA1_SSH_PASSWORD from .env and docker-compose.node2-sofiia.yml - SSH ED25519 key generated, authorized on NODA1, mounted as /run/secrets/noda1_ssh_key - sofiia-console reads key via NODES_NODA1_SSH_PRIVATE_KEY env var - secrets/noda1_id_ed25519 added to .gitignore P1 — Router: - services/router/router-config.node2.yml: new node2-specific config replaces all 172.17.0.1:11434 → host.docker.internal:11434 - docker-compose.node2-sofiia.yml: mount router-config.node2.yml (not root config) P1 — Ports: - router (9102), swapper (8890), sofiia-console (8002): bind to 127.0.0.1 - gateway (9300): keep 0.0.0.0 (Telegram webhook requires public access) Artifacts: - ops/patch_node2_P0P1_20260227.md — change log - ops/validation_node2_P0P1_20260227.md — all checks PASS - ops/node2.env.example — safe env template (no secrets) - ops/security_hardening_node2.md — SSH key migration guide + firewall - ops/node2_models_pull.sh — model pull script for P0/P1 Made-with: Cursor
40 lines
1.1 KiB
Bash
Executable File
40 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# ops/node2_models_pull.sh
|
|
# Pull minimal required models for NODA2 P0 (Vision) + P1 (Text)
|
|
# Usage: ./ops/node2_models_pull.sh
|
|
set -euo pipefail
|
|
|
|
OLLAMA_URL="${OLLAMA_URL:-http://localhost:11434}"
|
|
|
|
echo "=== NODA2 Model Pull Script ==="
|
|
echo "Ollama URL: $OLLAMA_URL"
|
|
echo ""
|
|
|
|
pull_model() {
|
|
local model="$1"
|
|
local label="$2"
|
|
echo "→ Pulling $label ($model)..."
|
|
if ollama list 2>/dev/null | grep -q "^${model%:*}"; then
|
|
echo " SKIP — already present"
|
|
else
|
|
ollama pull "$model"
|
|
echo " DONE"
|
|
fi
|
|
}
|
|
|
|
# P0: Vision — llava:13b (already present, verify)
|
|
echo "--- P0: Vision models ---"
|
|
pull_model "llava:13b" "LLaVA 13B (P0 fallback vision)"
|
|
|
|
# P1 RECOMMENDED: Better vision quality (uncomment when ready)
|
|
# pull_model "qwen3-vl:8b" "Qwen3-VL 8B (recommended vision)"
|
|
|
|
# P1: Primary text model (already present, verify)
|
|
echo ""
|
|
echo "--- P1: Text models ---"
|
|
pull_model "qwen3.5:35b-a3b" "Qwen3.5 35B A3B (primary LLM)"
|
|
|
|
echo ""
|
|
echo "=== Done. Current models ==="
|
|
ollama list 2>/dev/null || echo "(ollama not in PATH, check manually)"
|