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`