#!/bin/bash # Kipinä — liitä koneesi laskentaverkkoon set -e HUB_URL="${KIPINA_HUB:-wss://kipina.studio/ws}" MODEL="${KIPINA_MODEL:-qwen2.5-coder:3b}" echo "" echo " ╔══════════════════════════════════════╗" echo " ║ Kipinä Agentic Network — Node Join ║" echo " ╚══════════════════════════════════════╝" echo "" # 1. Ollama if command -v ollama &>/dev/null; then echo " ✓ Ollama löytyi: $(ollama --version 2>/dev/null || echo 'asennettu')" else echo " Ollama ei ole asennettu." echo "" read -p " Asennetaanko Ollama? (k/e) " -n 1 -r; echo if [[ $REPLY =~ ^[Kk]$ ]]; then echo " Asennetaan Ollama..." curl -fsSL https://ollama.ai/install.sh | sh else echo " Ollama vaaditaan laskentaan. Asenna: https://ollama.ai" exit 1 fi fi # 2. Varmistetaan että Ollama on käynnissä if ! curl -s http://localhost:11434/api/tags &>/dev/null; then echo " Käynnistetään Ollama..." ollama serve &>/dev/null & sleep 3 if ! curl -s http://localhost:11434/api/tags &>/dev/null; then echo " ✗ Ollama ei käynnistynyt. Aja: ollama serve" exit 1 fi fi echo " ✓ Ollama käynnissä" # 3. Malli if ollama list 2>/dev/null | grep -q "$MODEL"; then echo " ✓ Malli $MODEL ladattu" else echo " Ladataan malli $MODEL..." ollama pull "$MODEL" fi # 4. Native-node echo "" echo " Yhdistetään hubiin: $HUB_URL" echo " Malli: $MODEL" echo " Ctrl+C pysäyttää" echo "" # Tarkistetaan onko native-node käännetty SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" NATIVE_BIN="$SCRIPT_DIR/target/release/native-node" if [ -f "$NATIVE_BIN" ]; then HUB_URL="$HUB_URL" OLLAMA_MODEL="$MODEL" "$NATIVE_BIN" elif command -v cargo &>/dev/null && [ -f "$SCRIPT_DIR/native-node/Cargo.toml" ]; then echo " Käännetään native-node..." cd "$SCRIPT_DIR" cargo build --release -p native-node --no-default-features 2>&1 | tail -1 HUB_URL="$HUB_URL" OLLAMA_MODEL="$MODEL" "$NATIVE_BIN" else echo " ✗ native-node binääriä ei löydy eikä Rust ole asennettu." echo " Asenna Rust: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh" echo " Tai lataa valmis binääri: https://kipina.studio/download" exit 1 fi