docs: VM reference — SSH, сервисы, деплой, .env, роутинг, БД
This commit is contained in:
@@ -0,0 +1,130 @@
|
||||
# VM — contracts.kube5s.ru (5.172.178.213)
|
||||
|
||||
## SSH
|
||||
|
||||
```bash
|
||||
ssh -i ~/.ssh/naeel_vm_id_ed25519 naeel@5.172.178.213
|
||||
```
|
||||
|
||||
## Сервисы
|
||||
|
||||
| Сервис | Порт | systemd unit | Назначение |
|
||||
|---|---|---|---|
|
||||
| gunicorn (Flask UI) | 5001 | — (start.sh) | Веб-интерфейс |
|
||||
| convert_server.py | 8766 | `contracts` | API: upload, classify, compare, /static |
|
||||
| drhider_server.py | 8767 | `contracts-drhider` | Обфускация документов |
|
||||
| nginx | 443 | `nginx` | Прокси + SSL (Certbot) |
|
||||
| PostgreSQL | 5432 | — | БД `baza`, пользователь `super` |
|
||||
| act_runner | — | `act_runner` | Gitea CI runner |
|
||||
|
||||
## Деплой
|
||||
|
||||
```bash
|
||||
# Из папки contracts-flask/:
|
||||
bash deploy/sync.sh
|
||||
```
|
||||
|
||||
Скрипт копирует `deploy/compare/`, `deploy/drhider/`, `deploy/db/`, `deploy/convert_*.py` → `/home/naeel/contracts/` на ВМ, затем делает `sudo systemctl restart contracts contracts-drhider`.
|
||||
|
||||
Nginx-конфиг — вручную:
|
||||
```bash
|
||||
scp -i ~/.ssh/naeel_vm_id_ed25519 deploy/nginx-contracts.conf naeel@5.172.178.213:/tmp/
|
||||
ssh -i ~/.ssh/naeel_vm_id_ed25519 naeel@5.172.178.213 sudo cp /tmp/nginx-contracts.conf /etc/nginx/sites-enabled/
|
||||
ssh -i ~/.ssh/naeel_vm_id_ed25519 naeel@5.172.178.213 'sudo nginx -t && sudo systemctl reload nginx'
|
||||
```
|
||||
|
||||
## Команды на ВМ
|
||||
|
||||
```bash
|
||||
# Статус сервисов
|
||||
systemctl status contracts contracts-drhider
|
||||
|
||||
# Логи
|
||||
journalctl -u contracts -f
|
||||
journalctl -u contracts-drhider -f
|
||||
|
||||
# Перезапуск
|
||||
sudo systemctl restart contracts
|
||||
sudo systemctl restart contracts-drhider
|
||||
|
||||
# Nginx
|
||||
sudo nginx -t && sudo systemctl reload nginx
|
||||
|
||||
# БД
|
||||
psql -U super -d baza
|
||||
|
||||
# Порты
|
||||
ss -tlnp | grep -E '5001|8766|8767|5432'
|
||||
```
|
||||
|
||||
## .env
|
||||
|
||||
Файл на ВМ: `/home/naeel/contracts/.env`
|
||||
|
||||
```env
|
||||
DB_HOST=127.0.0.1
|
||||
DB_PORT=5432
|
||||
DB_NAME=baza
|
||||
DB_USER=super
|
||||
DB_PASS=
|
||||
LLM_API_URL=https://api.aillm.ru/v1/chat/completions
|
||||
LLM_API_KEY=...
|
||||
LLM_MODEL=gpt-oss-120b
|
||||
```
|
||||
|
||||
Flask (`site/app.py`) читает `VM_API` (по умолчанию `https://contracts.kube5s.ru`).
|
||||
|
||||
## Nginx-роутинг
|
||||
|
||||
```
|
||||
contracts.kube5s.ru :443
|
||||
/ → 127.0.0.1:5001 Flask UI
|
||||
/api/drhider → 127.0.0.1:8767 DrHider обфускация
|
||||
/api/* → 127.0.0.1:8766 convert_server
|
||||
/static/ → 127.0.0.1:8766
|
||||
/upload → 127.0.0.1:8766
|
||||
/lucee/* → contractor.luceek8s.dev.nubes.ru (legacy)
|
||||
```
|
||||
|
||||
## Структура БД (PostgreSQL `baza`)
|
||||
|
||||
| Таблица | Назначение |
|
||||
|---|---|
|
||||
| `documents` | Загруженные документы |
|
||||
| `contracts` | Договоры |
|
||||
| `supplements` | Допсоглашения к договорам |
|
||||
| `spec_current` | Текущая спецификация услуг |
|
||||
| `spec_events` | История изменений спецификации |
|
||||
| `prompts` | LLM-промпты (extract/diff) |
|
||||
| `upload_chunks` | Чанки загрузки |
|
||||
|
||||
## Файлы на ВМ
|
||||
|
||||
```
|
||||
/home/naeel/contracts/
|
||||
├── .env
|
||||
├── convert_server.py # API-сервер :8766
|
||||
├── convert_doc.py # Конвертер .doc → .docx
|
||||
├── drhider/
|
||||
│ ├── drhider.py # Ядро обфускации
|
||||
│ └── drhider_server.py # HTTP-сервер :8767
|
||||
├── compare/
|
||||
│ ├── process.py, llm.py, classify.py, ...
|
||||
│ └── parse.py, grouping.py, upload.py
|
||||
├── db/
|
||||
│ ├── connection.py # Пул коннектов
|
||||
│ ├── documents.py, contracts.py, supplements.py
|
||||
│ └── spec_current.py, spec_events.py, prompts.py
|
||||
├── files/ # Загруженные документы
|
||||
└── llm_prompt.py # Шаблоны промптов extract/diff
|
||||
```
|
||||
|
||||
## Пути в проекте
|
||||
|
||||
```
|
||||
contracts-flask/
|
||||
├── deploy/ → копируется на ВМ (sync.sh)
|
||||
├── site/ → Flask UI (gunicorn на ВМ :5001)
|
||||
├── Dockerfile → контейнеризация (не используется на ВМ)
|
||||
└── .gitea/workflows/deploy.yaml → CI (act_runner)
|
||||
```
|
||||
Reference in New Issue
Block a user