#!/usr/bin/env bash # Defaults DEFAULT_BIND="127.0.0.1" DEFAULT_PORT="11439" DEFAULT_ORIGINS="app://obsidian.md*" DEFAULT_KEEP_ALIVE="1h" print-help() { cat << EOF Usage: ollama-for-obsidian [options] Options: -b, --bind The address to bind to (default: "${DEFAULT_BIND}") -p, --port The port to listen on (default: "${DEFAULT_PORT}") -o, --origins A comma separated list of extra allowed origins -m, --models Override ollama's default models directory -k, --keep-alive The duration that models stay loaded in memory (default: "${DEFAULT_KEEP_ALIVE}") -h, --help Print this help message EOF } BIND="${DEFAULT_BIND}" PORT="${DEFAULT_PORT}" EXTRA_ORIGINS="" KEEP_ALIVE="${DEFAULT_KEEP_ALIVE}" while [[ $# -gt 0 ]]; do case "$1" in -b | --bind) BIND="$2" shift 2 ;; -p | --port) PORT="$2" shift 2 ;; -o | --origins) EXTRA_ORIGINS="$2" shift 2 ;; -m | --models) export OLLAMA_MODELS="$2" shift 2 ;; -k | --keep-alive) KEEP_ALIVE="$2" shift 2 ;; -h | --help) print-help exit 0 ;; *) echo "Unknown option: $1" >&2 print-help >&2 exit 1 ;; esac done export OLLAMA_HOST="${BIND}:${PORT}" export OLLAMA_KEEP_ALIVE="${KEEP_ALIVE}" export OLLAMA_ORIGINS="${DEFAULT_ORIGINS}" if [[ -n "${EXTRA_ORIGINS}" ]]; then export OLLAMA_ORIGINS="${OLLAMA_ORIGINS},${EXTRA_ORIGINS}" fi exec ollama serve "$@"