7ee57a1865
- Cooldown counter now always rendered (hidden) when auto_reply active, shown dynamically via polling - Modal form validates fields on blur/input with red highlight via .input-invalid class - Telegram: switched back to tel.4mont.ru proxy (working via /etc/hosts on 192.168.33.19) - context.md: added prod server 45.129.3.83, deploy commands, NPM routing notes Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3.5 KiB
3.5 KiB
Контекст проекта WBfeed
Что это за проект
- Flask-приложение для автоответов на отзывы Wildberries.
- Поддерживает вход, личный кабинет с токенами магазинов, админку, журнал автоответов.
- Автоответ для 5★, 4★, 3★, 2★, 1★ с настраиваемыми пулами шаблонов.
- Уведомления в Telegram через прокси tel.4mont.ru при запросе доступа.
Серверы
Основной (локальная сеть)
- SSH:
root@192.168.33.19, пароль:utOgbZ09 - Путь проекта:
/home/sites/wild - Docker Compose, порт
54119 → 5000 - В
/etc/hostsпрописано:192.168.33.19 tel.4mont.ru(Telegram прокси)
Продакшн (публичный)
- SSH:
root@45.129.3.83, пароль:utOgbZ09ruslan - Путь проекта:
/home/docker/wbfeed - Docker Compose, порт
2323 → 5000, контейнерwbfeed-app-1 - NPM (Nginx Proxy Manager) на том же сервере
- Для NPM → wbfeed: Forward
172.19.0.1:2323(шлюз Docker-сети npm) - Для любого нового Docker-проекта через NPM: тот же IP
172.19.0.1, другой порт
Локальная структура (только контекст, код деплоится на сервер)
app.py— основной backend (Flask + SQLite)templates/*.html— шаблоны интерфейсаstatic/styles.css— стилиcontext.md— этот файл, хранится локально в git
Деплой
На основной сервер (192.168.33.19)
sshpass -p 'utOgbZ09' scp <файл> root@192.168.33.19:/home/sites/wild/<путь>
sshpass -p 'utOgbZ09' ssh root@192.168.33.19 "docker restart wild-app-1"
# templates/ и static/ — перезапуск не нужен, Flask видит сразу
На продакшн (45.129.3.83)
sshpass -p 'utOgbZ09ruslan' scp -o StrictHostKeyChecking=no <файл> root@45.129.3.83:/home/docker/wbfeed/<путь>
sshpass -p 'utOgbZ09ruslan' ssh root@45.129.3.83 "docker restart wbfeed-app-1"
Учётные данные
- Админ: логин
ruslan, парольutOgbZ09ruslan+ - Git: https://git.ruslan.xyz/ruslan/wildberries.git
Telegram уведомления
- Бот токен:
8181219074:AAGvqWqb6t10YP4xpMOQnBq_6LrUqAFm5hM - Chat ID:
54986411 - Прокси URL:
https://tel.4mont.ru/bot{TOKEN}/sendMessage - На 192.168.33.19 работает через
/etc/hosts→ локальный прокси - На 45.129.3.83 прокси недоступен (разные сети) — уведомления не доходят
Технический стек
- Python 3.11, Flask 3.0.3, SQLite (tokens.db)
- Docker + Docker Compose, Nginx Proxy Manager
- WB API rate limit: 1 запрос / 120 сек
- Автоответ: цикл каждые 120 сек, 1 ответ за цикл, очередь в SQLite
Известные особенности
tokens.dbмонтируется как bind-mount: нужно создавать как файл (touch), не как папкуapp.pyмонтируется как файл — послеscpнуженdocker restart(inode binding)templates/иstatic/монтируются как папки — изменения видны без рестарта