Подготовка и требования
Технические требования
- VPS с Ubuntu 20.04+
- 16 ГБ ОЗУ (минимум 8 ГБ)
- 50 ГБ SSD (для моделей)
- 4+ vCPU
- Доменное имя
Что будем устанавливать
- Docker & Docker Compose
- Ollama (локальные AI-модели)
- Open WebUI (веб-интерфейс)
- Nginx (обратный прокси)
- SSL сертификат
Пошаговая установка
Шаг 1: Подготовка сервера и установка Docker
Подключаемся к серверу и устанавливаем необходимые компоненты:
# Подключение к серверу
ssh root@ip_вашего_сервера
# Обновление системы
sudo apt update && sudo apt upgrade -y
# Установка Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# Добавление пользователя в группу docker
sudo usermod -aG docker $USER
newgrp docker
# Установка Docker Compose
sudo apt install docker-compose-plugin -y
Шаг 2: Установка Ollama и загрузка моделей
Устанавливаем Ollama и загружаем AI-модели:
# Установка Ollama
curl -fsSL https://ollama.com/install.sh | sh
# Настройка доступа для Docker
sudo systemctl stop ollama
sudo mkdir -p /etc/systemd/system/ollama.service.d/
echo -e '[Service]\nEnvironment="OLLAMA_HOST=0.0.0.0"' | sudo tee /etc/systemd/system/ollama.service.d/environment.conf
sudo systemctl daemon-reload
sudo systemctl start ollama
# Загрузка моделей (выберите нужные)
ollama pull llama3.1:8b
ollama pull codellama:7b
# Проверка установленных моделей
ollama list
Шаг 3: Установка Open WebUI через Docker
Создаем и запускаем Open WebUI контейнер:
# Создание директории проекта
mkdir ~/open-webui && cd ~/open-webui
# Создание docker-compose.yml
cat > docker-compose.yml << EOF
version: '3.8'
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
restart: unless-stopped
ports:
- "8080:8080"
environment:
- OLLAMA_BASE_URL=http://localhost:11434
- WEBUI_SECRET_KEY=ваш_секретный_ключ
- WEBUI_AUTH=True
volumes:
- open-webui-data:/app/backend/data
network_mode: "host"
volumes:
open-webui-data:
EOF
# Запуск контейнера
docker compose up -d
Шаг 4: Настройка домена и Nginx
Настраиваем доменный доступ через обратный прокси:
# Установка Nginx
sudo apt install nginx -y
# Создание конфигурации
sudo nano /etc/nginx/sites-available/openwebui
Добавьте в файл конфигурации:
server {
listen 80;
server_name ai.ваш-домен.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto \$scheme;
# WebSocket поддержка
proxy_http_version 1.1;
proxy_set_header Upgrade \$http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400;
}
client_max_body_size 100M;
}
# Активация конфигурации
sudo ln -s /etc/nginx/sites-available/openwebui /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
# Настройка брандмауэра
sudo ufw allow 80
sudo ufw allow 443
sudo ufw allow 22
Шаг 5: Настройка SSL сертификата
Добавляем HTTPS для безопасного соединения:
# Установка Certbot
sudo apt install certbot python3-certbot-nginx -y
# Получение SSL сертификата
sudo certbot --nginx -d ai.ваш-домен.com
# Автоматическое обновление
sudo systemctl enable certbot.timer
Настройка рабочих пространств
Bitrix Developer Workspace
Системный промпт для Bitrix-разработки:
Ты — эксперт по 1С-Битрикс (версии D7).
Специализация: модули, компоненты, интеграции.
Требования: D7 API, нативный JavaScript, SCSS.
Формат: пошаговые инструкции + код + документация.
Vue.js Developer Workspace
Системный промпт для Vue.js разработки:
Ты — senior Vue.js разработчик (Vue 3).
Стек: Composition API, Pinia, TypeScript.
Требования: современный JS, SCSS, лучшие практики.
Формат: TypeScript примеры + сравнение подходов.
Настройка API доступа
Open WebUI предоставляет REST API для интеграции с другими приложениями:
# Получение API ключа
# Settings → API Keys → Generate New Key
# Пример запроса к API
curl -X POST https://ai.ваш-домен.com/api/chat \\
-H "Authorization: Bearer YOUR_API_KEY" \\
-H "Content-Type: application/json" \\
-d '{
"model": "llama3.1:8b",
"messages": [
{"role": "user", "content": "Напиши hello world на Python"}
],
"workspace_id": "ID_ВАШЕГО_WORKSPACE",
"stream": false
}'
Интеграция с Telegram ботом
import requests
def ask_ai(question, workspace_id):
api_url = "https://ai.ваш-домен.com/api/chat"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
data = {
"model": "llama3.1:8b",
"messages": [{"role": "user", "content": question}],
"workspace_id": workspace_id,
"stream": False
}
response = requests.post(api_url, json=data, headers=headers)
return response.json()["message"]["content"]
Решение частых проблем
Проверьте подключение между контейнерами:
# Проверка работы Ollama
curl http://localhost:11434/api/tags
# Проверка из контейнера Open WebUI
docker exec open-webui curl http://localhost:11434/api/tags
# Перезапуск сервисов
docker compose down
docker compose up -d
Для 12 ГБ ОЗУ рекомендуемые настройки:
- Max Tokens: 8192
- Модель: llama3.1:8b или codellama:7b
- Температура: 0.3
Мониторинг памяти:
htop
free -h
docker stats
Ваш AI-ассистент готов к работе!
Теперь у вас есть полнофункциональная приватная AI-платформа с доменным доступом, API и специализированными рабочими пространствами.
Безопасно
Все данные на вашем сервере
Без лимитов
Неограниченное использование
Интегрируемо
API для любых проектов
Полезные ресурсы
Официальная документация
Доступные модели
llama3.1:8b- универсальнаяcodellama:7b- для программированияmistral:7b- эффективнаяllava:7b- мультимодальная
К СОЖАЛЕНИЮ, ПЕРВЫЙ ПОДХОД К СНАРЯДУ ДЛЯ МЕНЯ НЕ УВЕНЧАЛСЯ УСПЕХОМ! Стартовая установка не готова к полноценному использованию, т.к. без должного дообучения не справляется даже с базовыми, простыми задачами. При этом требует очень больших мощнойстей от сервера!
Для себя я обратно вернулся к bothub!