| #!/bin/sh |
| set -eu |
|
|
| echo "[ollamaServer] Starting Ollama on ${OLLAMA_HOST}" |
| ollama serve & |
| OLLAMA_PID=$! |
|
|
| |
| TRIES=0 |
| until ollama list >/dev/null 2>&1; do |
| TRIES=$((TRIES + 1)) |
| if [ "$TRIES" -gt 180 ]; then |
| echo "[ollamaServer] Ollama did not become ready in time" |
| kill "$OLLAMA_PID" || true |
| exit 1 |
| fi |
| sleep 1 |
| done |
|
|
| echo "[ollamaServer] Ollama is ready" |
|
|
| pull_if_missing() { |
| MODEL="$1" |
| if ollama list | awk 'NR>1 {print $1}' | grep -Fxq "$MODEL"; then |
| echo "[ollamaServer] Model already present: $MODEL" |
| else |
| echo "[ollamaServer] Pulling model: $MODEL" |
| ollama pull "$MODEL" |
| fi |
| } |
|
|
| pull_if_missing "embeddinggemma:latest" |
| pull_if_missing "hf.co/LiquidAI/LFM2-1.2B-RAG-GGUF:Q5_K_M" |
| pull_if_missing "hf.co/MaziyarPanahi/gemma-3-1b-it-GGUF:Q3_K_M" |
| pull_if_missing "ornith:9b" |
| pull_if_missing "nemotron-3-nano:4b" |
|
|
| echo "[ollamaServer] Startup complete" |
| wait "$OLLAMA_PID" |