docs: README — remove old Express admin references, health-server port 3001, super secret
This commit is contained in:
31
README.md
31
README.md
@@ -11,7 +11,6 @@
|
|||||||
- SaaS-система с автоматическим расчётом комиссий
|
- SaaS-система с автоматическим расчётом комиссий
|
||||||
- **Мультиязычность (i18n)** — английский, испанский, немецкий с переключением в боте
|
- **Мультиязычность (i18n)** — английский, испанский, немецкий с переключением в боте
|
||||||
- **Новая админ-панель** (Next.js 16 + Prisma + shadcn/ui) на порту 3000: дашборд, каталог, заказы, кошельки, лиды, ИИ-чатбот, аудит, настройки
|
- **Новая админ-панель** (Next.js 16 + Prisma + shadcn/ui) на порту 3000: дашборд, каталог, заказы, кошельки, лиды, ИИ-чатбот, аудит, настройки
|
||||||
- **Старая админка** (Express/EJS) на порту 3001 — бэкенд бота, сохранена для совместимости
|
|
||||||
- Tor-прокси с двумя onion-сервисами (SSH + админка)
|
- Tor-прокси с двумя onion-сервисами (SSH + админка)
|
||||||
- WireGuard VPN для безопасных транзакций
|
- WireGuard VPN для безопасных транзакций
|
||||||
|
|
||||||
@@ -52,7 +51,7 @@ docker compose up -d --build
|
|||||||
|
|
||||||
# 4. Проверить статус
|
# 4. Проверить статус
|
||||||
docker compose ps
|
docker compose ps
|
||||||
curl http://localhost:3001/health # бот + старая админка
|
curl http://localhost:3001/health # бот (health-сервер)
|
||||||
curl -o /dev/null -w "%{http_code}\n" http://localhost:3000/login # новая админка
|
curl -o /dev/null -w "%{http_code}\n" http://localhost:3000/login # новая админка
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -65,8 +64,8 @@ curl -o /dev/null -w "%{http_code}\n" http://localhost:3000/login # новая
|
|||||||
| `BOT_TOKEN` | ✅ | Токен Telegram бота (@BotFather) |
|
| `BOT_TOKEN` | ✅ | Токен Telegram бота (@BotFather) |
|
||||||
| `ADMIN_IDS` | ✅ | ID администраторов через запятую |
|
| `ADMIN_IDS` | ✅ | ID администраторов через запятую |
|
||||||
| `ENCRYPTION_KEY` | ✅ | Ключ шифрования (32 байта hex) |
|
| `ENCRYPTION_KEY` | ✅ | Ключ шифрования (32 байта hex) |
|
||||||
| `ADMIN_SECRET` | ✅ | Секрет для админ-панели |
|
| `ADMIN_SECRET` | ✅ | Секрет админки (вход в Next.js админку) |
|
||||||
| `ADMIN_PORT` | — | Порт админ-панели (по умолчанию 3001) |
|
| `SUPER_ADMIN_SECRET` | — | Секрет супер-админа (роль super_admin в админке) |
|
||||||
| `ADMIN_URL` | — | Полный URL админ-панели (для фото товаров) |
|
| `ADMIN_URL` | — | Полный URL админ-панели (для фото товаров) |
|
||||||
| `SUPER_ADMIN_IDS` | — | ID супер-админов |
|
| `SUPER_ADMIN_IDS` | — | ID супер-админов |
|
||||||
| `SUPPORT_LINK` | — | Ссылка на поддержку |
|
| `SUPPORT_LINK` | — | Ссылка на поддержку |
|
||||||
@@ -128,7 +127,7 @@ Onion-адреса автоматически сохраняются в `tor-pro
|
|||||||
Onion services
|
Onion services
|
||||||
============================================================
|
============================================================
|
||||||
SSH : xxxxx.onion (port 22 -> host SSH)
|
SSH : xxxxx.onion (port 22 -> host SSH)
|
||||||
Admin : yyyyy.onion (port 80 -> telegram_shop_prod:3001)
|
Admin : yyyyy.onion (port 80 -> tg_shop_admin:3000)
|
||||||
============================================================
|
============================================================
|
||||||
|
|
||||||
Usage:
|
Usage:
|
||||||
@@ -141,8 +140,8 @@ Usage:
|
|||||||
| Переменная | По умолчанию | Описание |
|
| Переменная | По умолчанию | Описание |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| `SSH_HOST_IP` | `host.docker.internal` | Куда Tor перенаправляет SSH |
|
| `SSH_HOST_IP` | `host.docker.internal` | Куда Tor перенаправляет SSH |
|
||||||
| `SHOP_CONTAINER` | `telegram_shop_prod` | Контейнер магазина |
|
| `SHOP_CONTAINER` | `tg_shop_admin` | Контейнер админки (onion target) |
|
||||||
| `ADMIN_PORT` | `3001` | Порт админки |
|
| `ADMIN_PORT` | `3000` | Порт админки |
|
||||||
|
|
||||||
## Поддерживаемые устройства
|
## Поддерживаемые устройства
|
||||||
|
|
||||||
@@ -166,9 +165,8 @@ Docker автоматически собирает нативные модули
|
|||||||
│ │ telegram_shop_prod │ │ tor-proxy │ │
|
│ │ telegram_shop_prod │ │ tor-proxy │ │
|
||||||
│ │ (node:22-alpine) │ │ (alpine:3.18 + tor) │ │
|
│ │ (node:22-alpine) │ │ (alpine:3.18 + tor) │ │
|
||||||
│ │ │ │ │ │
|
│ │ │ │ │ │
|
||||||
│ │ Port 3000 ←─────────────┼── Новая админка (Next.js) │ │
|
│ │ Port 3001 ──────────────┼── Бот (health-сервер) │ │
|
||||||
│ │ Port 3001 ──────────────┼── Бот + старая админка (Express) │
|
│ │ Bot + Health Server │ HiddenService :80 → админка 3000│
|
||||||
│ │ Bot + Admin Panel │ HiddenService :80 → админка 3000│
|
|
||||||
│ │ │ HiddenService :22 → SSH │
|
│ │ │ HiddenService :22 → SSH │
|
||||||
│ │ │ │ │ │
|
│ │ │ │ │ │
|
||||||
│ │ Net: default │ │ Net: default + proxy_net │ │
|
│ │ Net: default │ │ Net: default + proxy_net │ │
|
||||||
@@ -270,7 +268,7 @@ src/i18n/
|
|||||||
## Безопасность
|
## Безопасность
|
||||||
|
|
||||||
- `.env` монтируется только для чтения (`:ro`)
|
- `.env` монтируется только для чтения (`:ro`)
|
||||||
- Порт 3001 (бот + старая админка) и 3000 (новая админка) доступны из LAN и через Tor onion
|
- Порт 3001 (бот, health-сервер) и 3000 (админка) доступны из LAN и через Tor onion
|
||||||
- Onion-адреса сохраняются в volume (персистентность при перезапуске)
|
- Onion-адреса сохраняются в volume (персистентность при перезапуске)
|
||||||
- Tor hidden services с валидацией env vars
|
- Tor hidden services с валидацией env vars
|
||||||
- Новая админка (`admin-next/`): вход по токену, `ADMIN_SECRET`/`SUPER_ADMIN_SECRET` из `.env`
|
- Новая админка (`admin-next/`): вход по токену, `ADMIN_SECRET`/`SUPER_ADMIN_SECRET` из `.env`
|
||||||
@@ -290,16 +288,10 @@ src/i18n/
|
|||||||
|
|
||||||
```
|
```
|
||||||
├── src/
|
├── src/
|
||||||
│ ├── admin/ # Старая админ-панель (Express/EJS)
|
|
||||||
│ │ ├── routes/ # Роуты админ-панели (вкл. /locales для i18n)
|
|
||||||
│ │ ├── views/ # Шаблоны HTML
|
|
||||||
│ │ ├── public/ # Статические файлы (CSS)
|
|
||||||
│ │ ├── auth.js # Авторизация
|
|
||||||
│ │ └── server.js # Express-сервер
|
|
||||||
│ ├── config/ # Конфигурация (БД, крипто)
|
│ ├── config/ # Конфигурация (БД, крипто)
|
||||||
│ ├── context/ # Контекст и состояния бота
|
│ ├── context/ # Контекст и состояния бота
|
||||||
│ ├── handlers/ # Обработчики команд
|
│ ├── handlers/ # Обработчики команд
|
||||||
│ │ ├── adminHandlers/ # Обработчики админа
|
│ │ ├── adminHandlers/ # Обработчики админа (Telegram)
|
||||||
│ │ └── userHandlers/ # Обработчики пользователя
|
│ │ └── userHandlers/ # Обработчики пользователя
|
||||||
│ ├── i18n/ # Интернационализация
|
│ ├── i18n/ # Интернационализация
|
||||||
│ │ ├── index.js # tForUser(), tForLang(), LANGUAGE_NAMES
|
│ │ ├── index.js # tForUser(), tForLang(), LANGUAGE_NAMES
|
||||||
@@ -307,9 +299,10 @@ src/i18n/
|
|||||||
│ ├── middleware/ # Промежуточные обработчики
|
│ ├── middleware/ # Промежуточные обработчики
|
||||||
│ ├── migrations/ # Миграции БД
|
│ ├── migrations/ # Миграции БД
|
||||||
│ ├── models/ # Модели данных
|
│ ├── models/ # Модели данных
|
||||||
│ ├── router/ # Роутинг Express
|
│ ├── router/ # Роутинг callback/text бота
|
||||||
│ ├── services/ # Бизнес-логика (вкл. chatbotService, leadService)
|
│ ├── services/ # Бизнес-логика (вкл. chatbotService, leadService)
|
||||||
│ ├── utils/ # Утилиты (логирование, валидация, ошибки)
|
│ ├── utils/ # Утилиты (логирование, валидация, ошибки)
|
||||||
|
│ ├── healthServer.js # Минимальный HTTP /health (Docker healthcheck)
|
||||||
│ └── index.js # Точка входа
|
│ └── index.js # Точка входа
|
||||||
├── admin-next/ # НОВАЯ админ-панель (Next.js 16 + Prisma + shadcn/ui)
|
├── admin-next/ # НОВАЯ админ-панель (Next.js 16 + Prisma + shadcn/ui)
|
||||||
│ ├── prisma/schema.prisma # Схема БД (та же SQLite, что у бота)
|
│ ├── prisma/schema.prisma # Схема БД (та же SQLite, что у бота)
|
||||||
|
|||||||
Reference in New Issue
Block a user