Initial import: bare-metal stacks, Server UI, GPU fan, tutorials.
Infrastructure configs for GMKtec K11 (Docker, vLLM, LocalAI, ComfyUI, control-plane, gpu-fan agent, Server UI with CLI/file explorer/GPU fan curve). Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Executable
+55
@@ -0,0 +1,55 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
STACK_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)"
|
||||
|
||||
# shellcheck disable=SC1091
|
||||
source "${SCRIPT_DIR}/ensure-dirs.sh"
|
||||
|
||||
cd "${STACK_DIR}"
|
||||
|
||||
if [[ ! -f .env ]]; then
|
||||
echo "ERROR: .env not found. Run: cp .env.example .env"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
set -a
|
||||
# shellcheck disable=SC1091
|
||||
source .env
|
||||
set +a
|
||||
|
||||
DATA_ROOT="${DATA_ROOT:-/data}"
|
||||
|
||||
if ! mountpoint -q "${DATA_ROOT}" 2>/dev/null; then
|
||||
echo "ERROR: ${DATA_ROOT} is not mounted"
|
||||
echo " Complete disk setup (tutorial 04 part A) first"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ensure_localai_dirs "${DATA_ROOT}"
|
||||
|
||||
if ! docker info &>/dev/null; then
|
||||
echo "ERROR: Docker is not running"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "=== LocalAI stack ==="
|
||||
echo "Image: ${LOCALAI_IMAGE:-localai/localai:v4.4.3-gpu-nvidia-cuda-13}"
|
||||
echo "Port: ${LOCALAI_PORT:-8080}"
|
||||
echo "Models: ${DATA_ROOT}/apps/localai/models (empty OK)"
|
||||
echo "GPU: CUDA_VISIBLE_DEVICES=${CUDA_VISIBLE_DEVICES:-0}"
|
||||
echo ""
|
||||
|
||||
docker compose --profile localai pull
|
||||
docker compose --profile localai up -d
|
||||
|
||||
echo ""
|
||||
echo "Started. Follow logs:"
|
||||
echo " docker compose --profile localai logs -f localai"
|
||||
echo ""
|
||||
echo "Health check:"
|
||||
echo " curl -s http://localhost:${LOCALAI_PORT:-8080}/readyz"
|
||||
echo ""
|
||||
echo "Web UI:"
|
||||
echo " http://localhost:${LOCALAI_PORT:-8080}"
|
||||
Reference in New Issue
Block a user