00e9a45271
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
47 lines
2.5 KiB
Markdown
47 lines
2.5 KiB
Markdown
# Контекст проекта WBfeed
|
|
|
|
## Что это за проект
|
|
- Flask-приложение для автоответов на отзывы Wildberries.
|
|
- Вход, личный кабинет с токенами магазинов, админка, журнал автоответов.
|
|
- Автоответ для 5★–1★ с настраиваемыми пулами шаблонов.
|
|
- Уведомления в 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`
|
|
- Для любого нового проекта через NPM: тот же IP `172.19.0.1`, свой порт
|
|
|
|
## Локально хранится только этот файл
|
|
Все остальные файлы проекта живут на сервере. Редактировать через ssh или scp.
|
|
|
|
## Деплой файлов на сервер
|
|
```bash
|
|
sshpass -p 'utOgbZ09ruslan' scp -o StrictHostKeyChecking=no <файл> root@45.129.3.83:/home/docker/wbfeed/<путь>
|
|
# После изменения app.py — обязательно рестарт (inode binding):
|
|
sshpass -p 'utOgbZ09ruslan' ssh root@45.129.3.83 "docker restart wbfeed-app-1"
|
|
# templates/ и static/ — рестарт не нужен, Flask видит сразу
|
|
```
|
|
|
|
## Учётные данные
|
|
- Админ: логин `ruslan`, пароль `utOgbZ09ruslan+`
|
|
- Git: https://git.ruslan.xyz/ruslan/wildberries.git
|
|
|
|
## Telegram уведомления
|
|
- Прокси: `https://tel.4mont.ru/bot{TOKEN}/sendMessage`
|
|
- Токен бота: `8181219074:AAGvqWqb6t10YP4xpMOQnBq_6LrUqAFm5hM`
|
|
- Chat ID: `54986411`
|
|
|
|
## Технический стек
|
|
- 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` при первом запуске создавать как файл (`touch tokens.db`), не папку
|
|
- `app.py` — bind-mount файла, после scp нужен `docker restart`
|
|
- `templates/` и `static/` — bind-mount папок, рестарт не нужен
|