Add new instance setup guide
103
%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
Normal file
103
%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
Normal file
@@ -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`
|
||||
Reference in New Issue
Block a user