Add new instance setup guide

2026-05-13 10:52:21 +03:00
parent ef35688317
commit b6eeec20e0

@@ -0,0 +1,103 @@
# Запуск нового экземпляра EvoSync
## Требования
- Linux-сервер с Docker и Docker Compose
- Nginx установлен на хосте
- Certbot установлен на хосте
- Домен с прописанными A-записями, указывающими на сервер
- Git
---
## 1. Клонирование репозитория
```bash
git clone ssh://git@repos.guschin.info:2222/mish/evo-sync.git
cd evo-sync
```
---
## 2. Настройка окружения
Создайте `.env`:
```env
DATABASE_URL=mysql+pymysql://evosync:PASS@db:3306/evosync
SECRET_KEY=<случайная строка: openssl rand -hex 32>
BASE_URL=https://your-domain.com
EVOTOR_APP_ID=<из личного кабинета Эвотор>
EVOTOR_WEBHOOK_SECRET=<из личного кабинета Эвотор>
VK_CLIENT_ID=<ID приложения VK>
VK_CLIENT_SECRET=<секрет приложения VK>
DB_ROOT_PASSWORD=<пароль root MariaDB>
DB_NAME=evosync
DB_USER=evosync
DB_PASSWORD=<пароль пользователя БД>
FLOWER_USER=admin
FLOWER_PASSWORD=<пароль для Flower>
CATALOG_REFRESH_INTERVAL_SECONDS=3600
DOMAIN=your-domain.com
```
---
## 3. Запуск контейнеров
```bash
docker compose up -d --build
docker ps --format "table {{.Names}}\t{{.Status}}"
```
Веб-приложение: `http://localhost:8080`. Миграции применяются автоматически при старте `web`.
---
## 4. TLS-сертификаты (Let's Encrypt)
Выполните для каждого домена:
```bash
sudo ./scripts/init-letsencrypt.sh my-products.ru
sudo ./scripts/generate-nginx-conf.sh my-products.ru
sudo systemctl reload nginx
```
Скрипт `generate-nginx-conf.sh` раскрывает шаблон `nginx/nginx.conf.template` и кладёт конфиг в `/etc/nginx/sites-available/<domain>.conf`, затем создаёт симлинк в `sites-enabled`.
---
## 5. Автообновление сертификатов
Добавьте в `/etc/cron.d/certbot` (если не настроено certbot автоматически):
```
0 3 * * * root certbot renew --quiet && systemctl reload nginx
```
---
## 6. Создание первого администратора
```bash
docker compose exec web python scripts/create_admin.py
```
---
## 7. Включение фоновых задач
Откройте `/sync` в браузере и включайте поочерёдно, проверяя каждый шаг:
1. **Зеркало Эвотор** — убедитесь что товары появляются в `/catalog`
2. **Зеркало ВК** — убедитесь что альбомы видны в `/vk-catalog/albums`
3. **Синхронизация** — включите после настройки фильтров групп/магазинов в `/catalog`
---
## 8. Мониторинг
- Flower (очереди Celery): `http://localhost:5555` — логин/пароль из `FLOWER_USER` / `FLOWER_PASSWORD`
- Логи API-запросов к Эвотор и ВК: `/admin/logs`
- Логи контейнеров: `docker compose logs -f worker`