Версия: 1.0.0
Дата: 26 декабря 2025
Сервер: work-center (91.218.142.168)
Production окружение для CRM системы "Пиротехника Конюхова" (CRM1).
Стек:
- MCRM (платформа)
- PiroCRM (отраслевая конфигурация)
- CRM1 (решение для бизнеса)
База клиентов:
- 4,711 контактов
- 5 сегментов (VIP, Премиум, Средний, Мелкий, Холодный)
- HLR проверено: 3,087 клиентов
┌─────────────────┐
│ Nginx (8444) │ ← HTTPS entry point
└────────┬────────┘
│
┌────────▼────────┐
│ CRM App (8092) │ ← FastAPI + MCRM + PiroCRM
└────────┬────────┘
│
┌────┴────┬──────────────┬────────────┐
│ │ │ │
┌───▼──┐ ┌──▼───┐ ┌───────▼─────┐ ┌──▼──────┐
│Redis │ │NocoDB│ │WAHA │ │ePochta │
│Cache │ │ DB │ │(WhatsApp) │ │(SMS) │
└──────┘ └──────┘ └─────────────┘ └─────────┘
Компоненты:
| Сервис | Порт | Назначение |
|---|---|---|
| nginx | 8444 (HTTPS) | Reverse proxy |
| crm-app | 8092 | Приложение CRM |
| redis | 6379 | Кэш и очереди |
Внешние сервисы:
- NocoDB: https://data.0kt.ru:8443 (База данных)
- WAHA: http://waha:3000 (WhatsApp)
- ePochta API (SMS)
cd /opt/claude-workspace/infra/work-center/crm-production
# Скопировать и настроить окружение
cp env/.env.example env/.env
nano env/.env
# Запустить
./scripts/start.sh
# Статус сервисов
docker compose ps
# Логи
./scripts/logs.sh
# Проверка health
curl http://localhost:8092/health
Файл: env/.env
Обязательные параметры:
# Database
NOCODB_URL=https://data.0kt.ru:8443
NOCODB_BASE_ID=pkxgq45k5mwsdwh
NOCODB_API_TOKEN=*** # получить из NocoDB
# WhatsApp
WAHA_URL=http://waha:3000
WAHA_API_KEY=*** # получить из WAHA
# SMS
SMS_API_KEY=*** # получить из ePochta
# Security
SECRET_KEY=*** # сгенерировать: openssl rand -hex 32
JWT_SECRET=*** # сгенерировать: openssl rand -hex 32
Подключение:
- URL: https://data.0kt.ru:8443
- Base: pkxgq45k5mwsdwh
- Schema: pt7k98pv0fwi1el
Таблицы:
- crm_prj_clients (4,711 клиентов)
- crm_prj_campaigns (кампании)
- crm_prj_messages (сообщения)
- crm_prj_tasks (задачи)
- crm_app_managers (3 менеджера)
WhatsApp (WAHA):
- Контейнер: waha (уже запущен)
- URL: http://waha:3000
- Session: default
- Статус: ✅ Готов к работе
SMS (ePochta):
- Provider: epochta.ru
- Sender: PiroSPB
- Баланс: проверить
Email (SMTP):
- Host: smtp.yandex.ru
- From: admin@kt.ru
# Запуск
./scripts/start.sh
# Остановка
./scripts/stop.sh
# Перезапуск
./scripts/restart.sh
# Логи (все сервисы)
./scripts/logs.sh
# Логи конкретного сервиса
./scripts/logs.sh crm-app
./scripts/logs.sh nginx
./scripts/logs.sh redis
# Статус
docker compose ps
# Логи
docker compose logs -f crm-app
# Перезапуск одного сервиса
docker compose restart crm-app
# Обновить образы
docker compose pull
docker compose up -d
# Полная пересборка
docker compose down
docker compose up -d --build
Лимиты памяти (текущие):
- crm-app: 512MB (можно увеличить)
- redis: 128MB
- nginx: без лимитов
Для увеличения ресурсов отредактируйте docker-compose.yml:
deploy:
resources:
limits:
memory: 1G # вместо 512M
Автоматические проверки:
- crm-app: http://localhost:8092/health (каждые 30с)
- redis: redis-cli ping (каждые 10с)
Ручная проверка:
# Приложение
curl http://localhost:8092/health
# Redis
docker compose exec redis redis-cli ping
# Nginx
curl -I http://localhost:8093
Расположение:
- Приложение: /app/logs/crm1.log (внутри контейнера)
- Nginx: Docker volume crm1-production-logs
- Redis: Stdout (docker logs)
Просмотр:
# Real-time logs
./scripts/logs.sh
# Последние 100 строк
docker compose logs --tail=100 crm-app
# Логи с временем
docker compose logs -t crm-app
# Логи за последний час
docker compose logs --since 1h crm-app
Ресурсы:
# Использование ресурсов
docker stats crm1-production crm1-redis
# Размер volumes
docker volume ls | grep crm1
du -sh /var/lib/docker/volumes/crm1-*
Статистика Redis:
docker compose exec redis redis-cli info stats
Симптомы:
ERROR: Connection refused
Решение:
# Проверить логи
./scripts/logs.sh crm-app
# Проверить окружение
docker compose exec crm-app env | grep NOCODB
# Перезапустить
./scripts/restart.sh
Симптомы:
ERROR: Failed to connect to NocoDB
Проверка:
# Проверить NocoDB
curl -k https://data.0kt.ru:8443/api/v1/health
# Проверить API токен
curl -k -H "xc-token: YOUR_TOKEN" \
https://data.0kt.ru:8443/api/v2/meta/bases/pkxgq45k5mwsdwh/tables
Решение:
- Проверить NOCODB_API_TOKEN в .env
- Убедиться, что NocoDB контейнер запущен
Симптомы:
ERROR: WAHA connection failed
Проверка:
# Проверить WAHA
docker ps | grep waha
# Проверить API
curl http://localhost:3000/api/sessions
Решение:
# Перезапустить WAHA
docker restart waha
# Проверить QR код для авторизации
docker logs waha
Симптомы:
OOMKilled или медленная работа
Решение:
# Проверить использование
docker stats
# Очистить Redis кэш
docker compose exec redis redis-cli FLUSHALL
# Увеличить лимиты в docker-compose.yml
Симптомы:
502 Bad Gateway
Проверка:
# Проверить CRM app
curl http://localhost:8092/health
# Проверить nginx логи
docker compose logs nginx
Решение:
# Перезапустить приложение
docker compose restart crm-app
# Подождать пока поднимется (60s)
sleep 60
curl http://localhost:8092/health
Бэкап уже настроен на уровне NocoDB:
/backup/nocodb_backup.sql.gz (3MB)
# Бэкап data volume
docker run --rm \
-v crm1-production-data:/data \
-v /backup:/backup \
alpine tar czf /backup/crm1-data-$(date +%Y%m%d).tar.gz /data
# Бэкап logs
docker run --rm \
-v crm1-production-logs:/logs \
-v /backup:/backup \
alpine tar czf /backup/crm1-logs-$(date +%Y%m%d).tar.gz /logs
# Остановить приложение
./scripts/stop.sh
# Восстановить data
docker run --rm \
-v crm1-production-data:/data \
-v /backup:/backup \
alpine tar xzf /backup/crm1-data-YYYYMMDD.tar.gz -C /
# Запустить
./scripts/start.sh
# Код монтируется read-only из /opt/claude-workspace/projects/org/
# Изменения сразу доступны после перезапуска
cd /opt/claude-workspace/projects/org/mcrm
git pull # если есть git
# Перезапустить CRM
cd /opt/claude-workspace/infra/work-center/crm-production
./scripts/restart.sh
# Пересобрать контейнер
docker compose down
docker compose up -d --build
# Отредактировать .env
nano env/.env
# Перезапустить
./scripts/restart.sh
НЕ хранить в git:
- env/.env (добавлен в .gitignore)
- SSL сертификаты
- API ключи
Ротация:
- SECRET_KEY: каждый месяц
- API токены: каждые 3 месяца
- SSL сертификаты: до истечения
Проект: Пиротехника Конюхова
Компания: ИП Конюхов
Телефон: +79211841234
Email: admin@kt.ru
Техническая поддержка:
- CRM Issues: /opt/claude-workspace/projects/org/crm1/
- NocoDB: https://data.0kt.ru:8443
- Сервер: work-center (91.218.142.168)
v1.0.0 (26.12.2025)
- ✅ Создан production deployment
- ✅ Docker Compose конфигурация
- ✅ Nginx reverse proxy
- ✅ Redis кэш
- ✅ Health checks
- ✅ Управляющие скрипты
- ✅ Документация
TODO:
- [ ] HTTPS сертификаты (Let's Encrypt)
- [ ] Автоматические бэкапы (cron)
- [ ] CI/CD pipeline
- [ ] Grafana dashboard
- [ ] AlertManager
- [ ] Horizontal scaling
Версия: 1.0.0
Последнее обновление: 26 декабря 2025