Initial commit

This commit is contained in:
ml
2026-09-30 07:55:26 +02:00
commit 45ccbccaaf
7 changed files with 352 additions and 0 deletions
+47
View File
@@ -0,0 +1,47 @@
#!/usr/bin/env bash
# Start / stop the local AI container.
# ./run-ai-image.sh start (default)
# ./run-ai-image.sh stop stop and remove
# ./run-ai-image.sh logs follow container logs
# ./run-ai-image.sh status show state
set -euo pipefail
cd "$(dirname "$0")"
[ -f .ai-config ] || { echo "No .ai-config yet - run ./setup.sh first." >&2; exit 1; }
# shellcheck disable=SC1091
source .ai-config
running() { [ "$(docker inspect -f '{{.State.Running}}' "$CONTAINER_NAME" 2>/dev/null)" = "true" ]; }
exists() { docker inspect "$CONTAINER_NAME" >/dev/null 2>&1; }
case "${1:-start}" in
stop) exists && docker rm -f "$CONTAINER_NAME" >/dev/null && echo "Stopped." || echo "Not running."; exit 0 ;;
logs) exec docker logs -f "$CONTAINER_NAME" ;;
status) running && echo "Running: http://127.0.0.1:$PORT (model $MODEL)" || echo "Not running."; exit 0 ;;
start) ;;
*) echo "Usage: $0 [start|stop|logs|status]" >&2; exit 1 ;;
esac
docker image inspect "$IMAGE_NAME" >/dev/null 2>&1 || { echo "Image missing - run ./build-ai-image.sh first." >&2; exit 1; }
if running; then
echo "Already running on http://127.0.0.1:$PORT"
else
exists && docker rm -f "$CONTAINER_NAME" >/dev/null
args=(-d --name "$CONTAINER_NAME" -p "127.0.0.1:$PORT:11434" --restart unless-stopped)
[ "$USE_GPU" = "1" ] && args+=(--gpus all)
docker run "${args[@]}" "$IMAGE_NAME" >/dev/null
printf "Waiting for the model server"
for _ in $(seq 1 60); do
curl -fs "http://127.0.0.1:$PORT/api/tags" >/dev/null 2>&1 && break
printf "."; sleep 1
done
echo
curl -fs "http://127.0.0.1:$PORT/api/tags" >/dev/null 2>&1 || { echo "Server did not come up; see: ./run-ai-image.sh logs" >&2; exit 1; }
echo "Running on http://127.0.0.1:$PORT"
fi
echo
echo "Now, in your project directory:"
echo " OLLAMA_API_BASE=http://127.0.0.1:$PORT aider --model ollama_chat/$MODEL"
echo "(see RUN_AIDER.md for details)"