Files
LongTermContexter/install-linux.sh

51 lines
1.4 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
STACK_DIR="/opt/openwebui-ollama"
SERVICE_NAME="openwebui-ollama.service"
SERVICE_PATH="/etc/systemd/system/${SERVICE_NAME}"
if ! command -v docker >/dev/null 2>&1; then
echo "Docker is not installed. Install Docker first, then rerun this script."
exit 1
fi
if ! docker compose version >/dev/null 2>&1; then
echo "Docker Compose plugin is not available. Install docker-compose-plugin, then rerun this script."
exit 1
fi
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
sudo mkdir -p "${STACK_DIR}"
sudo cp "${SCRIPT_DIR}/docker-compose.yml" "${STACK_DIR}/docker-compose.yml"
sudo tee "${SERVICE_PATH}" >/dev/null <<'EOF'
[Unit]
Description=Open WebUI + Ollama Docker Stack
Requires=docker.service
After=docker.service network-online.target
Wants=network-online.target
[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/opt/openwebui-ollama
ExecStart=/usr/bin/docker compose up -d
ExecStop=/usr/bin/docker compose down
TimeoutStartSec=0
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now "${SERVICE_NAME}"
# Keep local models persistent and pull a small starter model.
sudo docker exec ollama ollama pull llama3.2 || true
echo "Deployment complete."
echo "Open WebUI: http://<your-linux-host-ip>:3000"
echo "Service status: sudo systemctl status ${SERVICE_NAME}"