Files
ai-server/scripts/start.sh
2025-09-22 15:07:35 +05:00

119 lines
3.7 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# AI Server Start Script for Ubuntu
# Optimized for RTX 2060
set -e
# Colors
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
echo -e "${BLUE}🚀 Запуск AI Server...${NC}"
# Check if running as root for system services
if [[ $EUID -eq 0 ]]; then
echo -e "${YELLOW}Запуск системных сервисов...${NC}"
# Start Ollama service
echo "🤖 Запуск Ollama..."
systemctl start ollama
# Wait for Ollama to start
sleep 5
# Check Ollama status
if systemctl is-active --quiet ollama; then
echo -e "${GREEN}✅ Ollama запущен${NC}"
else
echo -e "${RED}❌ Ошибка запуска Ollama${NC}"
journalctl -u ollama --no-pager -l | tail -10
exit 1
fi
# Start Web UI service
echo "🌐 Запуск веб-интерфейса..."
systemctl start ai-server-webui
# Wait for containers to start
sleep 10
# Check Web UI status
if systemctl is-active --quiet ai-server-webui; then
echo -e "${GREEN}Веб-интерфейс запущен${NC}"
else
echo -e "${RED}❌ Ошибка запуска веб-интерфейса${NC}"
journalctl -u ai-server-webui --no-pager -l | tail -10
exit 1
fi
else
echo -e "${YELLOW}Запуск пользовательских сервисов...${NC}"
# Change to working directory
cd /opt/ai-server
# Check if Ollama is running
echo "🤖 Проверка Ollama..."
if ! curl -s http://localhost:11434 >/dev/null 2>&1; then
echo -e "${YELLOW}Ollama не отвечает, попытка запуска...${NC}"
sudo systemctl start ollama
sleep 5
# Check again
if ! curl -s http://localhost:11434 >/dev/null 2>&1; then
echo -e "${RED}Не удается запустить Ollama${NC}"
echo "Попробуйте: sudo systemctl status ollama"
exit 1
fi
fi
echo -e "${GREEN}✅ Ollama доступен${NC}"
# Start web interface containers
echo "🌐 Запуск веб-интерфейса..."
docker compose up -d
# Wait for containers
sleep 10
# Check container status
if docker compose ps | grep -q "running"; then
echo -e "${GREEN}Веб-интерфейс запущен${NC}"
else
echo -e "${RED}❌ Ошибка запуска контейнеров${NC}"
docker compose logs --tail=20
exit 1
fi
fi
# Get server IP
SERVER_IP=$(hostname -I | awk '{print $1}')
echo ""
echo -e "${GREEN}🎉 AI Server успешно запущен!${NC}"
echo ""
echo -e "${BLUE}📍 Доступные сервисы:${NC}"
echo " 🌐 Веб-интерфейс: http://${SERVER_IP}:3000"
echo " 🤖 Ollama API: http://${SERVER_IP}:11434"
echo " 📊 Portainer: http://${SERVER_IP}:9000 (если включен)"
echo ""
echo -e "${BLUE}💡 GPU информация:${NC}"
if command -v nvidia-smi &> /dev/null; then
nvidia-smi --query-gpu=name,memory.used,memory.total,utilization.gpu --format=csv,noheader,nounits 2>/dev/null | \
awk -F', ' '{printf " GPU: %s\n VRAM: %d/%d MB (%.1f%%)\n Загрузка: %d%%\n", $1, $2, $3, ($2/$3)*100, $4}'
else
echo " ❌ NVIDIA GPU недоступен"
fi
echo ""
echo -e "${YELLOW}📋 Полезные команды:${NC}"
echo " ai-status - проверка статуса"
echo " ai-stop - остановка сервера"
echo " ai-logs - просмотр логов"
echo " ai-models - список моделей"
echo ""
echo -e "${GREEN}Готово к работе! 🎯${NC}"