diff --git a/%D0%97%D0%B0%D0%BF%D1%83%D1%81%D0%BA-%D0%BD%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE-%D1%8D%D0%BA%D0%B7%D0%B5%D0%BC%D0%BF%D0%BB%D1%8F%D1%80%D0%B0.md b/%D0%97%D0%B0%D0%BF%D1%83%D1%81%D0%BA-%D0%BD%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE-%D1%8D%D0%BA%D0%B7%D0%B5%D0%BC%D0%BF%D0%BB%D1%8F%D1%80%D0%B0.md new file mode 100644 index 0000000..a92568b --- /dev/null +++ b/%D0%97%D0%B0%D0%BF%D1%83%D1%81%D0%BA-%D0%BD%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE-%D1%8D%D0%BA%D0%B7%D0%B5%D0%BC%D0%BF%D0%BB%D1%8F%D1%80%D0%B0.md @@ -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= +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/.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`