test-server2

This commit is contained in:
2025-09-22 15:31:51 +05:00
parent a8f09eb4ea
commit 51e1496379
6 changed files with 82 additions and 13 deletions

View File

@@ -81,6 +81,13 @@ docker compose logs -f # Логи контейнеров
## 🐛 Устранение неполадок
### Ollama сервис не запускается:
```bash
# Если видите ошибку "permission denied" для /nonexistent
chmod +x fix-ollama.sh
sudo ./fix-ollama.sh
```
### GPU не найден:
```bash
nvidia-smi # Проверка драйверов

57
fix-ollama.sh Normal file
View File

@@ -0,0 +1,57 @@
#!/bin/bash
# Fix script for Ollama service permission issues
echo "🔧 Исправление проблем с сервисом Ollama..."
# Colors
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m'
# Stop the service
echo "Остановка сервиса Ollama..."
sudo systemctl stop ollama
# Fix user home directory
echo "Исправление домашней директории пользователя aiserver..."
sudo usermod -d /opt/ai-server aiserver
# Create proper Ollama directory
echo "Создание правильной директории для Ollama..."
sudo mkdir -p /opt/ai-server/.ollama
sudo chown -R aiserver:aiserver /opt/ai-server/.ollama
sudo chmod 755 /opt/ai-server/.ollama
# Update systemd service
echo "Обновление systemd сервиса..."
sudo systemctl daemon-reload
# Start the service
echo "Запуск сервиса Ollama..."
sudo systemctl start ollama
# Wait a moment
sleep 5
# Check status
if sudo systemctl is-active --quiet ollama; then
echo -e "${GREEN}✅ Ollama сервис успешно запущен!${NC}"
# Test connection
if curl -s http://localhost:11434 >/dev/null 2>&1; then
echo -e "${GREEN}✅ Ollama API доступен${NC}"
else
echo -e "${YELLOW}⚠️ Ollama API пока недоступен (может потребоваться время)${NC}"
fi
else
echo -e "${RED}❌ Ошибка запуска Ollama сервиса${NC}"
echo "Логи:"
sudo journalctl -u ollama --no-pager -l | tail -10
exit 1
fi
echo ""
echo -e "${GREEN}🎉 Исправление завершено!${NC}"
echo "Теперь можете использовать: ai-start, ai-status"

View File

@@ -178,10 +178,15 @@ install_ollama() {
# Создание пользователя для сервиса
if ! id "$SERVICE_USER" &>/dev/null; then
useradd -r -s /bin/false -d /nonexistent $SERVICE_USER
useradd -r -s /bin/false -d /opt/ai-server -m $SERVICE_USER
usermod -aG docker $SERVICE_USER
log_success "Пользователь $SERVICE_USER создан"
fi
# Создание домашней директории Ollama
mkdir -p /opt/ai-server/.ollama
chown -R $SERVICE_USER:$SERVICE_USER /opt/ai-server/.ollama
log_success "Директория Ollama создана"
}
# Настройка systemd сервиса для Ollama
@@ -233,14 +238,14 @@ install_models() {
log_step "Установка модели $DEFAULT_MODEL..."
log_info "Это может занять несколько минут в зависимости от скорости интернета..."
# Установка модели от имени пользователя сервиса
sudo -u $SERVICE_USER ollama pull $DEFAULT_MODEL
# Установка модели от имени пользователя сервиса с правильной переменной окружения
sudo -u $SERVICE_USER OLLAMA_HOME=/opt/ai-server/.ollama ollama pull $DEFAULT_MODEL
log_success "Модель $DEFAULT_MODEL установлена"
# Список доступных моделей
log_info "Доступные модели:"
sudo -u $SERVICE_USER ollama list
sudo -u $SERVICE_USER OLLAMA_HOME=/opt/ai-server/.ollama ollama list
}
# Создание рабочей директории

View File

@@ -18,6 +18,7 @@ Environment="OLLAMA_MAX_LOADED_MODELS=2"
Environment="OLLAMA_FLASH_ATTENTION=1"
Environment="CUDA_VISIBLE_DEVICES=0"
Environment="OLLAMA_GPU_OVERHEAD=0.2"
Environment="OLLAMA_HOME=/opt/ai-server/.ollama"
WorkingDirectory=/opt/ai-server
StandardOutput=journal
StandardError=journal
@@ -26,7 +27,6 @@ StandardError=journal
NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/opt/ai-server
# Resource limits for RTX 2060

View File

@@ -27,7 +27,7 @@ show_menu() {
list_models() {
echo -e "${PURPLE}📦 Установленные модели:${NC}"
sudo -u aiserver ollama list
sudo -u aiserver OLLAMA_HOME=/opt/ai-server/.ollama ollama list
echo ""
if command -v nvidia-smi &> /dev/null; then
@@ -50,7 +50,7 @@ install_recommended() {
desc="${descriptions[$i]}"
echo -e "${BLUE}Устанавливаю: $model - $desc${NC}"
sudo -u aiserver ollama pull "$model"
sudo -u aiserver OLLAMA_HOME=/opt/ai-server/.ollama ollama pull "$model"
if [ $? -eq 0 ]; then
echo -e "${GREEN}$model установлена${NC}"
@@ -73,7 +73,7 @@ install_custom() {
echo -e "${BLUE}Установка модели: $model_name${NC}"
echo -e "${YELLOW}Это может занять несколько минут...${NC}"
sudo -u aiserver ollama pull "$model_name"
sudo -u aiserver OLLAMA_HOME=/opt/ai-server/.ollama ollama pull "$model_name"
if [ $? -eq 0 ]; then
echo -e "${GREEN}✅ Модель $model_name успешно установлена${NC}"
@@ -84,7 +84,7 @@ install_custom() {
remove_model() {
echo -e "${PURPLE}📦 Доступные модели для удаления:${NC}"
sudo -u aiserver ollama list
sudo -u aiserver OLLAMA_HOME=/opt/ai-server/.ollama ollama list
echo ""
echo -e "${YELLOW}Введите название модели для удаления:${NC}"
@@ -99,7 +99,7 @@ remove_model() {
read -r confirm
if [[ $confirm =~ ^[Yy]$ ]]; then
sudo -u aiserver ollama rm "$model_name"
sudo -u aiserver OLLAMA_HOME=/opt/ai-server/.ollama ollama rm "$model_name"
if [ $? -eq 0 ]; then
echo -e "${GREEN}✅ Модель $model_name удалена${NC}"
@@ -113,7 +113,7 @@ remove_model() {
test_model() {
echo -e "${PURPLE}📦 Доступные модели:${NC}"
sudo -u aiserver ollama list
sudo -u aiserver OLLAMA_HOME=/opt/ai-server/.ollama ollama list
echo ""
echo -e "${YELLOW}Введите название модели для тестирования:${NC}"
@@ -127,7 +127,7 @@ test_model() {
echo -e "${BLUE}Тестирование модели: $model_name${NC}"
echo -e "${YELLOW}Задаю тестовый вопрос...${NC}"
sudo -u aiserver ollama run "$model_name" "Привет! Как дела? Ответь кратко."
sudo -u aiserver OLLAMA_HOME=/opt/ai-server/.ollama ollama run "$model_name" "Привет! Как дела? Ответь кратко."
}
show_vram_usage() {

View File

@@ -85,7 +85,7 @@ if systemctl is-active --quiet ollama; then
# List models
echo " 📦 Установленные модели:"
sudo -u aiserver ollama list 2>/dev/null | tail -n +2 | while read -r line; do
sudo -u aiserver OLLAMA_HOME=/opt/ai-server/.ollama ollama list 2>/dev/null | tail -n +2 | while read -r line; do
if [[ -n "$line" ]]; then
model_name=$(echo "$line" | awk '{print $1}')
model_size=$(echo "$line" | awk '{print $2}')