Общая навигация
Общие документы
ИИ "НИКА"
Цифровой скетч
Моя CRM
Разделы документа
1. ПОДГОТОВКА К УСТАНОВКЕ
2. УСТАНОВКА BACKEND КОМПОНЕНТОВ
3. УСТАНОВКА FRONTEND (Vue.js)
4. УСТАНОВКА С DOCKER
5. УСТАНОВКА В KUBERNETES
6. ПОСТ-УСТАНОВОЧНАЯ НАСТРОЙКА
7. ПРОВЕРКА УСТАНОВКИ
8. УСТРАНЕНИЕ ПРОБЛЕМ
9. ОБНОВЛЕНИЕ СИСТЕМЫ
10. ДЕИНСТАЛЛЯЦИЯ
11. ЗАКЛЮЧЕНИЕ
Развёртывание стека: подготовка сервера (Docker, Node.js, PostgreSQL, Redis, Nginx), backend и ML-модели, сборка Vue.js frontend, Nginx, Docker Compose, Kubernetes, пост-настройка, проверка, обновление и деинсталляция.
Ниже приведён полный текст разделов; для навигации используйте оглавление слева или якорные ссылки на мобильных устройствах.
1.1. Системные требования
1.1.1. Минимальные требования
Hardware:
CPU: 8 cores (Intel Xeon E5-2600 v3 или выше)
RAM: 32 GB DDR4
Storage:
- System: 100 GB SSD
- Data: 400 GB SSD
Network: 1 Gbps Ethernet
GPU: Опционально (NVIDIA Tesla T4 для ML-задач)
Software:
OS: Ubuntu 20.04 LTS / CentOS 8 / Astra Linux SE
Docker: 20.10+
Docker Compose: 2.0+
Node.js: 18.x LTS
Python: 3.9+
PostgreSQL: 13+
Redis: 6.2+
Nginx: 1.20+
1.1.2. Рекомендуемые требования для production
Hardware:
CPU: 16+ cores (Intel Xeon Gold 6200 или выше)
RAM: 64 GB DDR4 ECC
Storage:
- System: 200 GB NVMe SSD
- Data: 1 TB NVMe SSD (RAID 10)
- Backup: 2 TB HDD
Network: 10 Gbps Ethernet (redundant)
GPU: NVIDIA Tesla V100 (для ML-задач)
Cluster:
Nodes: минимум 3 для HA
Load Balancer: отдельный сервер
Database: отдельный сервер или кластер
1.2. Предварительная подготовка
1.2.1. Проверка системы
#!/bin/bash
# check_system.sh - Скрипт проверки готовности системы
echo "=== Проверка системных требований для НИКА ==="
# Проверка ОС
echo -n "Проверка операционной системы... "
if [[ -f /etc/os-release ]]; then
. /etc/os-release
echo "$NAME $VERSION"
else
echo "ОШИБКА: Не удалось определить ОС"
exit 1
fi
# Проверка CPU
echo -n "Проверка процессора... "
CPU_CORES=$(nproc)
if [ $CPU_CORES -lt 8 ]; then
echo "ПРЕДУПРЕЖДЕНИЕ: Обнаружено $CPU_CORES ядер (минимум 8)"
else
echo "OK: $CPU_CORES ядер"
fi
# Проверка RAM
echo -n "Проверка оперативной памяти... "
RAM_GB=$(free -g | awk '/^Mem:/{print $2}')
if [ $RAM_GB -lt 32 ]; then
echo "ОШИБКА: Обнаружено $RAM_GB GB (минимум 32 GB)"
exit 1
else
echo "OK: $RAM_GB GB"
fi
# Проверка дискового пространства
echo -n "Проверка дискового пространства... "
DISK_AVAILABLE=$(df -BG / | awk 'NR==2 {print $4}' | sed 's/G//')
if [ $DISK_AVAILABLE -lt 500 ]; then
echo "ПРЕДУПРЕЖДЕНИЕ: Доступно $DISK_AVAILABLE GB (рекомендуется 500+ GB)"
else
echo "OK: Доступно $DISK_AVAILABLE GB"
fi
# Проверка сети
echo -n "Проверка сетевого соединения... "
if ping -c 1 google.com &> /dev/null; then
echo "OK: Интернет доступен"
else
echo "ПРЕДУПРЕЖДЕНИЕ: Нет доступа к интернету"
fi
echo "=== Проверка завершена ==="
1.2.2. Установка базовых зависимостей
#!/bin/bash
# install_dependencies.sh
echo "Обновление системы..."
sudo apt-get update && sudo apt-get upgrade -y
echo "Установка базовых пакетов..."
sudo apt-get install -y curl wget git vim htop build-essential software-properties-common apt-transport-https ca-certificates gnupg lsb-release python3-pip python3-venv ufw fail2ban
echo "Установка Docker..."
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo usermod -aG docker $USER
sudo systemctl enable docker
sudo systemctl start docker
echo "Установка Node.js 18..."
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
echo "Установка PostgreSQL 13..."
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install -y postgresql-13 postgresql-client-13
echo "Установка Redis..."
sudo apt-get install -y redis-server
sudo systemctl enable redis-server
echo "Установка Nginx..."
sudo apt-get install -y nginx
sudo systemctl enable nginx
echo "Установка зависимостей завершена!"
2.1. Клонирование репозитория
sudo mkdir -p /opt/nika
sudo chown $USER:$USER /opt/nika
cd /opt/nika
git clone https://github.com/your-org/nika-backend.git backend
git clone https://github.com/your-org/nika-frontend.git frontend
mkdir -p {data,logs,backups,models,uploads,config}
2.2. Настройка базы данных
2.2.1. PostgreSQL
sudo -u postgres psql << EOF
CREATE USER nika_user WITH PASSWORD 'SecurePassword123!';
CREATE DATABASE nika_production OWNER nika_user;
GRANT ALL PRIVILEGES ON DATABASE nika_production TO nika_user;
CREATE DATABASE nika_analytics OWNER nika_user;
CREATE DATABASE nika_logs OWNER nika_user;
EOF
sudo vim /etc/postgresql/13/main/postgresql.conf
# postgresql.conf (пример):
listen_addresses = 'localhost'
max_connections = 200
shared_buffers = 8GB
effective_cache_size = 24GB
maintenance_work_mem = 2GB
checkpoint_completion_target = 0.9
wal_buffers = 16MB
work_mem = 20MB
min_wal_size = 1GB
max_wal_size = 4GB
2.2.2. Redis настройка
sudo vim /etc/redis/redis.conf
bind 127.0.0.1, protected-mode yes, port 6379, save, maxmemory 4gb, maxmemory-policy allkeys-lru, appendonly yes
sudo systemctl restart redis-server
2.3. Установка Python backend
2.3.1. Создание виртуального окружения
cd /opt/nika/backend && python3.9 -m venv venv && source venv/bin/activate
pip install --upgrade pip setuptools wheel
2.3.2. Установка зависимостей
pip install -r requirements.txt
# requirements.txt: fastapi, uvicorn, pydantic, sqlalchemy, alembic, psycopg2-binary, redis, celery, tensorflow, torch, transformers, spacy, nltk и др.
2.3.3. Загрузка ML моделей
MODEL_DIR=/opt/nika/models; mkdir -p $MODEL_DIR
python -c "from transformers import AutoModel, AutoTokenizer; ..." # rubert-base-cased
python -m spacy download ru_core_news_lg
python -c "import nltk; nltk.download('punkt'); nltk.download('stopwords'); nltk.download('wordnet')"
2.4. Настройка конфигурации
2.4.1. Создание .env (APP_NAME, DATABASE_URL, REDIS_URL, SECRET_KEY, JWT, MODEL_PATH, UPLOAD_PATH, LOG_LEVEL, ELASTICSEARCH_URL, RABBITMQ_URL, RATE_LIMIT, PROMETHEUS)
2.4.2. Инициализация базы данных
alembic upgrade head && python scripts/init_db.py
# scripts/init_db.py: create_engine, Role/User, admin@nika.local, get_password_hash
async def init_db(): ...
if __name__ == "__main__": asyncio.run(init_db())
3.1. Подготовка Frontend приложения
3.1.1. Установка зависимостей
cd /opt/nika/frontend && npm install
# package.json: vue, vue-router, vuex, axios, socket.io-client, element-plus, chart.js, vite, typescript и др.
3.1.2. Конфигурация окружения
cat > /opt/nika/frontend/.env.production << 'EOF'
# VITE_API_BASE_URL, VITE_WS_URL, VITE_AUTH_*, VITE_MAX_FILE_SIZE, VITE_APP_TITLE=ИИ НИКА
EOF
3.1.3. Сборка приложения
npm run build && ls -la dist/
3.2. Настройка Nginx
3.2.1. Конфигурация сайта /etc/nginx/sites-available/nika
server { listen 80; server_name nika.example.com; return 301 https://$server_name$request_uri; }
server { listen 443 ssl http2; root /opt/nika/frontend/dist; try_files $uri $uri/ /index.html;
location /api { proxy_pass http://localhost:8000; proxy_set_header Host $host; }
location /ws { proxy_pass http://localhost:8000/ws; Upgrade, Connection Upgrade; }
3.2.2. Активация
sudo ln -s /etc/nginx/sites-available/nika /etc/nginx/sites-enabled/ && sudo nginx -t && sudo systemctl reload nginx
4.1. Docker Compose конфигурация
version: '3.9' — services: postgres, redis, backend, frontend, celery, celery-beat, elasticsearch, kibana
volumes: postgres_data, redis_data, elastic_data; networks: nika-network
4.1.2. Dockerfile Backend: FROM python:3.9-slim, pip install -r requirements.txt, uvicorn app.main:app
4.1.3. Dockerfile Frontend: node:18-alpine build, nginx:alpine, COPY dist
4.2. Запуск
cd /opt/nika && cat > .env # SECRET_KEY, JWT_SECRET_KEY
docker-compose build && docker-compose up -d && docker-compose ps
docker-compose logs -f / docker-compose down / docker-compose down -v
5.1. Манифесты
k8s/namespace.yaml — nika-production
k8s/configmap.yaml — APP_NAME, APP_ENV, API_URL, LOG_LEVEL
k8s/secrets.yaml — DATABASE_URL, REDIS_URL, SECRET_KEY, JWT_SECRET_KEY
k8s/backend-deployment.yaml — replicas 3, resources, liveness/readiness, volumes PVC
k8s/services.yaml — ClusterIP backend/frontend
k8s/ingress.yaml — TLS, hosts nika.example.com, api.nika.example.com
5.2. Развёртывание
kubectl apply -f k8s/*.yaml
kubectl get all -n nika-production
kubectl logs -f deployment/nika-backend -n nika-production
kubectl scale deployment nika-backend --replicas=5 -n nika-production
kubectl set image deployment/nika-backend backend=registry.example.com/nika-backend:v1.1.0 -n nika-production
6.1. Первоначальная настройка
6.1.1. Создание администратора
python manage.py create_admin --email admin@example.com --password AdminPass123!
curl -X POST https://api.nika.example.com/api/auth/setup -H "Content-Type: application/json" -d '{...}'
6.1.2. SSL: certbot --nginx -d nika.example.com -d api.nika.example.com; certbot renew
6.2. Мониторинг
prometheus.yml — scrape nika-backend /metrics, postgres, redis, node_exporter
6.2.2. Node Exporter: systemd unit, systemctl enable node_exporter
6.3. Резервное копирование
6.3.1. /opt/nika/scripts/backup.sh — pg_dump, redis --rdb, tar uploads/models/config
6.3.2. cron: 0 2 * * * /opt/nika/scripts/backup.sh
7.1. Тестирование компонентов
curl http://localhost:8000/health
curl http://localhost:8000/api/v1/status
curl -X POST http://localhost:8000/api/auth/login -d '{"email":"admin@example.com","password":"..."}'
curl -I https://nika.example.com
wscat -c wss://nika.example.com/ws
7.2. Функциональное тестирование (Python requests: login, upload test_document.pdf)
8.1. Частые проблемы
Проблема Решение
Backend не запускается БД, права, логи /opt/nika/logs
Frontend 502 nginx, статус backend
Ошибка загрузки моделей /opt/nika/models, права
WebSocket nginx proxy, firewall
PostgreSQL service, credentials
Redis status, пароль, bind
8.2. Диагностика: systemctl, netstat, tail logs, journalctl, docker/kubectl команды
9.1. Процедура update_nika.sh
backup → stop nika-backend, celery → git pull backend/frontend → pip/npm install → alembic upgrade → npm run build → start services → reload nginx
10.1. uninstall_nika.sh: подтверждение, остановка сервисов, удаление systemd units, nginx config, backup в /tmp, rm -rf /opt/nika, опционально DROP DATABASE, docker-compose down -v
Установка системы «Искусственный интеллект НИКА» завершена.
Ключевые точки доступа:
• Web: https://nika.example.com
• API: https://api.nika.example.com
• Документация API: https://api.nika.example.com/docs
• Мониторинг: http://localhost:3000 (Grafana)
• Логи: http://localhost:5601 (Kibana)
8 (3452) 696-001
7203558650
722401001
INFO@DI-INDUSTRY.RU
625019, Тюменская область, г. Тюмень,
ул. Республики,д 250, стр. 5, оф 309.
© 2026 Все права защищены