From d1ccb8109291f0ca9805d22432ddd5a1936453e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D0=BA=D1=82=D0=BE=D1=80?= <78488229+viktor138irk@users.noreply.github.com> Date: Mon, 18 May 2026 09:09:39 +0900 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D0=BB=20RE?= =?UTF-8?q?ADME=20=D0=BF=D0=BE=D0=B4=20=D0=BB=D0=BE=D0=BA=D0=B0=D0=BB?= =?UTF-8?q?=D1=8C=D0=BD=D1=8B=D0=B9=20=D0=B0=D0=B2=D1=82=D0=BE=D1=83=D1=81?= =?UTF-8?q?=D1=82=D0=B0=D0=BD=D0=BE=D0=B2=D1=89=D0=B8=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 106 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 87 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index afecfa9..5ec425f 100644 --- a/README.md +++ b/README.md @@ -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`