Files
bot/README.md
T

3.8 KiB

BotShop

BotShop — стартовый каркас мультибот-магазина для Telegram с веб-админкой.

Что заложено

  • подключение нескольких Telegram-ботов через токен;
  • локальный режим без домена через Telegram polling;
  • webhook-режим для сервера с HTTPS-доменом;
  • выбор города, района, товара и варианта в Telegram;
  • создание заказа без отправки чека;
  • выдача реквизитов и уникальной суммы цена + случайная добавка;
  • ручное подтверждение/отклонение оплаты в админ-панели;
  • управление городами, районами, товарами, вариантами и реквизитами;
  • базовые логи входящих Telegram-событий и ошибок;
  • автоустановщик install.sh.

Важно

Проект предназначен только для легального магазина товаров и услуг. В коде нет механики тайников, скрытых адресов, автоматической выдачи запрещённых товаров или обхода платёжных правил.

Требования

  • Ubuntu/Debian сервер или локальная VM;
  • PHP 8.1+;
  • MySQL 5.7+/8+;
  • Nginx;
  • доступ в интернет для Telegram Bot API.

Локальная установка без домена

Самый простой вариант:

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

После установки скрипт покажет:

Админка: http://IP-СЕРВЕРА/login
Email: admin@local.test
Пароль: сгенерированный пароль

В локальном режиме домен и SSL не нужны. Telegram работает через polling-сервис:

systemctl status botshop-polling --no-pager
journalctl -u botshop-polling -f

Установка с собственными данными

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:

sudo systemctl restart botshop-polling

Логи polling:

sudo journalctl -u botshop-polling -f

Логи Nginx:

sudo tail -n 100 /var/log/nginx/botshop_error.log

Файл локальной конфигурации:

/var/www/botshop/storage/config.php

Структура

install.sh             # автоустановщик
public/index.php       # веб-панель и webhook endpoint
scripts/polling.php    # локальный Telegram polling worker
database/schema.sql    # схема базы
storage/config.php     # создаётся installer'ом, не хранится в git
storage/logs/          # логи

Версия

0.1.1