Обновил README под локальный автоустановщик
Этот коммит содержится в:
+87
-19
@@ -2,17 +2,18 @@
|
||||
|
||||
BotShop — стартовый каркас мультибот-магазина для Telegram с веб-админкой.
|
||||
|
||||
## Что уже заложено в v0.1.0
|
||||
## Что заложено
|
||||
|
||||
- подключение нескольких Telegram-ботов через токен;
|
||||
- один webhook endpoint для всех ботов: `/webhook/{secret}`;
|
||||
- выбор города, района, товара и варианта товара в Telegram;
|
||||
- локальный режим без домена через Telegram polling;
|
||||
- webhook-режим для сервера с HTTPS-доменом;
|
||||
- выбор города, района, товара и варианта в Telegram;
|
||||
- создание заказа без отправки чека;
|
||||
- выдача реквизитов и уникальной суммы `цена + случайная добавка`;
|
||||
- ручное подтверждение/отклонение оплаты в админ-панели;
|
||||
- управление городами, районами, товарами, вариантами и реквизитами;
|
||||
- базовые логи входящих Telegram-событий и ошибок;
|
||||
- простой installer `/install`.
|
||||
- автоустановщик `install.sh`.
|
||||
|
||||
## Важно
|
||||
|
||||
@@ -20,26 +21,93 @@ BotShop — стартовый каркас мультибот-магазина
|
||||
|
||||
## Требования
|
||||
|
||||
- PHP 8.1+
|
||||
- MySQL 5.7+/8+
|
||||
- HTTPS-домен для Telegram webhook
|
||||
- Apache/Nginx с rewrite на `public/index.php`
|
||||
- Ubuntu/Debian сервер или локальная VM;
|
||||
- PHP 8.1+;
|
||||
- MySQL 5.7+/8+;
|
||||
- Nginx;
|
||||
- доступ в интернет для Telegram Bot API.
|
||||
|
||||
## Быстрый запуск
|
||||
## Локальная установка без домена
|
||||
|
||||
1. Залейте проект на сервер.
|
||||
2. Направьте web-root домена на папку `public`.
|
||||
3. Создайте MySQL-базу и пользователя.
|
||||
4. Откройте `/install`.
|
||||
5. Укажите доступы к базе и создайте администратора.
|
||||
6. Войдите в `/login`.
|
||||
7. Добавьте Telegram-бота в разделе «Боты».
|
||||
8. Нажмите «Установить webhook».
|
||||
Самый простой вариант:
|
||||
|
||||
```bash
|
||||
sudo apt update
|
||||
sudo apt install -y git curl
|
||||
cd /root
|
||||
git clone https://github.com/viktor138irk/bot.git botshop-installer
|
||||
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
|
||||
public/index.php # основной роутер и приложение v0.1.0
|
||||
install.sh # автоустановщик
|
||||
public/index.php # веб-панель и webhook endpoint
|
||||
scripts/polling.php # локальный Telegram polling worker
|
||||
database/schema.sql # схема базы
|
||||
storage/config.php # создаётся installer'ом, не хранится в git
|
||||
storage/logs/ # логи
|
||||
@@ -47,4 +115,4 @@ storage/logs/ # логи
|
||||
|
||||
## Версия
|
||||
|
||||
`0.1.0`
|
||||
`0.1.1`
|
||||
|
||||
Ссылка в новой задаче
Block a user