Обновил README под локальный автоустановщик
Этот коммит содержится в:
+87
-19
@@ -2,17 +2,18 @@
|
|||||||
|
|
||||||
BotShop — стартовый каркас мультибот-магазина для Telegram с веб-админкой.
|
BotShop — стартовый каркас мультибот-магазина для Telegram с веб-админкой.
|
||||||
|
|
||||||
## Что уже заложено в v0.1.0
|
## Что заложено
|
||||||
|
|
||||||
- подключение нескольких Telegram-ботов через токен;
|
- подключение нескольких Telegram-ботов через токен;
|
||||||
- один webhook endpoint для всех ботов: `/webhook/{secret}`;
|
- локальный режим без домена через Telegram polling;
|
||||||
- выбор города, района, товара и варианта товара в Telegram;
|
- webhook-режим для сервера с HTTPS-доменом;
|
||||||
|
- выбор города, района, товара и варианта в Telegram;
|
||||||
- создание заказа без отправки чека;
|
- создание заказа без отправки чека;
|
||||||
- выдача реквизитов и уникальной суммы `цена + случайная добавка`;
|
- выдача реквизитов и уникальной суммы `цена + случайная добавка`;
|
||||||
- ручное подтверждение/отклонение оплаты в админ-панели;
|
- ручное подтверждение/отклонение оплаты в админ-панели;
|
||||||
- управление городами, районами, товарами, вариантами и реквизитами;
|
- управление городами, районами, товарами, вариантами и реквизитами;
|
||||||
- базовые логи входящих Telegram-событий и ошибок;
|
- базовые логи входящих Telegram-событий и ошибок;
|
||||||
- простой installer `/install`.
|
- автоустановщик `install.sh`.
|
||||||
|
|
||||||
## Важно
|
## Важно
|
||||||
|
|
||||||
@@ -20,26 +21,93 @@ BotShop — стартовый каркас мультибот-магазина
|
|||||||
|
|
||||||
## Требования
|
## Требования
|
||||||
|
|
||||||
- PHP 8.1+
|
- Ubuntu/Debian сервер или локальная VM;
|
||||||
- MySQL 5.7+/8+
|
- PHP 8.1+;
|
||||||
- HTTPS-домен для Telegram webhook
|
- MySQL 5.7+/8+;
|
||||||
- Apache/Nginx с rewrite на `public/index.php`
|
- Nginx;
|
||||||
|
- доступ в интернет для Telegram Bot API.
|
||||||
|
|
||||||
## Быстрый запуск
|
## Локальная установка без домена
|
||||||
|
|
||||||
1. Залейте проект на сервер.
|
Самый простой вариант:
|
||||||
2. Направьте web-root домена на папку `public`.
|
|
||||||
3. Создайте MySQL-базу и пользователя.
|
```bash
|
||||||
4. Откройте `/install`.
|
sudo apt update
|
||||||
5. Укажите доступы к базе и создайте администратора.
|
sudo apt install -y git curl
|
||||||
6. Войдите в `/login`.
|
cd /root
|
||||||
7. Добавьте Telegram-бота в разделе «Боты».
|
git clone https://github.com/viktor138irk/bot.git botshop-installer
|
||||||
8. Нажмите «Установить webhook».
|
cd botshop-installer
|
||||||
|
sudo bash install.sh --local
|
||||||
|
```
|
||||||
|
|
||||||
|
После установки скрипт покажет:
|
||||||
|
|
||||||
|
```text
|
||||||
|
Админка: http://IP-СЕРВЕРА/login
|
||||||
|
Email: admin@local.test
|
||||||
|
Пароль: сгенерированный пароль
|
||||||
|
```
|
||||||
|
|
||||||
|
В локальном режиме домен и SSL не нужны. Telegram работает через polling-сервис:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
systemctl status botshop-polling --no-pager
|
||||||
|
journalctl -u botshop-polling -f
|
||||||
|
```
|
||||||
|
|
||||||
|
## Установка с собственными данными
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo bash install.sh --local \
|
||||||
|
--admin-email admin@example.local \
|
||||||
|
--admin-pass 'СЛОЖНЫЙ_ПАРОЛЬ' \
|
||||||
|
--db-pass 'СЛОЖНЫЙ_ПАРОЛЬ_БД'
|
||||||
|
```
|
||||||
|
|
||||||
|
## После установки
|
||||||
|
|
||||||
|
1. Откройте админку: `http://IP-СЕРВЕРА/login`.
|
||||||
|
2. Войдите под админом.
|
||||||
|
3. Создайте Telegram-бота через `@BotFather`.
|
||||||
|
4. В панели откройте «Боты».
|
||||||
|
5. Добавьте токен.
|
||||||
|
6. Поставьте статус `active`.
|
||||||
|
7. В локальном режиме кнопку webhook нажимать не нужно.
|
||||||
|
8. Добавьте город, район, товар, вариант и реквизиты.
|
||||||
|
9. Напишите `/start` своему Telegram-боту.
|
||||||
|
|
||||||
|
## Обслуживание
|
||||||
|
|
||||||
|
Перезапуск polling:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo systemctl restart botshop-polling
|
||||||
|
```
|
||||||
|
|
||||||
|
Логи polling:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo journalctl -u botshop-polling -f
|
||||||
|
```
|
||||||
|
|
||||||
|
Логи Nginx:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo tail -n 100 /var/log/nginx/botshop_error.log
|
||||||
|
```
|
||||||
|
|
||||||
|
Файл локальной конфигурации:
|
||||||
|
|
||||||
|
```text
|
||||||
|
/var/www/botshop/storage/config.php
|
||||||
|
```
|
||||||
|
|
||||||
## Структура
|
## Структура
|
||||||
|
|
||||||
```text
|
```text
|
||||||
public/index.php # основной роутер и приложение v0.1.0
|
install.sh # автоустановщик
|
||||||
|
public/index.php # веб-панель и webhook endpoint
|
||||||
|
scripts/polling.php # локальный Telegram polling worker
|
||||||
database/schema.sql # схема базы
|
database/schema.sql # схема базы
|
||||||
storage/config.php # создаётся installer'ом, не хранится в git
|
storage/config.php # создаётся installer'ом, не хранится в git
|
||||||
storage/logs/ # логи
|
storage/logs/ # логи
|
||||||
@@ -47,4 +115,4 @@ storage/logs/ # логи
|
|||||||
|
|
||||||
## Версия
|
## Версия
|
||||||
|
|
||||||
`0.1.0`
|
`0.1.1`
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user