Где развернуть высоконагруженный telegram бот

от admin

Сервер для бота Telegram: как разместить и какой хостинг выбрать

FAQ

Боты в «Телеграме» придуманы для облегчения работы с мессенджером. Поскольку задача приложения не только пересылать текстовые сообщения, но и предоставлять информацию, боты помогают в поиске этой информации, могут фильтровать ее или выполнять команды абонента.

У каждого владельца аккаунта в «Телеграм» обязательно найдется несколько bots. Нередко в таком случае возникает проблема, какой хостинг выбрать для телеграм-бота.

Зачем нужны боты

Как выбрать хостинг для бота в Телеграм

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

Они нашли применение во множестве областей: интернет-рекламе, в играх, интернет-торгах, мессенджерах и прочее.

Названия помощников оканчиваются на «bot». Фактически, это рабочие аккаунты, управляемые программами.

Чтобы их использовать, не требуется выходить из мессенджера для решения простых задач: задать вопрос, ответить, перевести, обучать, играть. Это армия помощников, каждому из которых можно дать задание, и они беспрекословно и точно исполнят ваши желания.

Как ими пользоваться

В «Телеграме» есть каталог ботов с ссылками на помощников. Список находится на сайте https://tgram.ru/bots/.

Нужного bot можно найти другим способом: в строке поиска. Для этого заходят в приложение и в поле с лупой пишут название робота. Помощником будет тот, з названием которого есть значок робота.

Чтобы начать взаимодействовать с bot, кликните на /start. Сразу же вы получите информацию о программе и список доступных команд.

Что такое хостинг

Слово «хостинг» означает некое хранилище. Дело в том, что после написания bot его нужно где-то хранить, чтобы он постоянно функционировал. Хостинги содержатся на общем компьютере, который называют сервером.

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

Существует несколько типов хостингов. Они различаются не только по цене, но и программному обеспечению, функционалу, объему памяти.

Общий виртуальный

Один из популярнейших. Подходит для небольших онлайн-магазинов, сайтов. Виртуальный хостинг – результат деления одного сервера на несколько частей для сдачи в аренду. Из минусов виртуального типа: наличие ограничений скорости записи или на использование ОП.

На сегодня наиболее известный тип host. Цена – от 2 до 15$ в месяц.

Виртуальный сервер

Также деление server на несколько частей для сдачи в аренду, но эти части будут независимы друг от друга, следовательно, ограничения не предусмотрены.

Это удобно тем, что можно настроить именно под свой проект или даже установить отдельное ПО. Подойдет для более крупных проектов. Цена аренды такого ресурса от 17$.

Выделенный сервер

Как правильно выбрать хостинг для бота в Телеграм

Это хост – целый server. Плюс: нет зависимости от остальных клиентов провайдера. Вы как единственный админ получаете доступ к ПО, то есть осуществляете полный контроль систем.

Выделенный сервер – отличный вариант для игр, соцсетей и крупных проектов. Но и стоимость аренды такого хостинга от 50$.

Colocation

Колокейшн представляет собой хостинг, за который нужно платить провайдеру не только за аренду, но и за обслуживание server. Кроме того, есть услуга защиты данных, но она тоже платная.

Облачный сервер (Cloud-hosting)

При таком типе хоста оплата производится за объем ресурсов. Провайдер сам распределит их между серверами. Подходит в случае, когда сайт занимает несколько разных server. Плюс в том, что можно использовать ресурсы нескольких серверов. Цена – от 7$.

Разница между хостингом и доменными именами

Отличие домена состоит в том, что он предоставляет абсолютное право собственности на имя сайта. К домену никто не имеет доступа, кроме его владельца.

Наличие домена не предполагает того, что сайт рабочий. Чтобы его запустить, все равно потребуется сервер. А хостинг – это уже настроенный server с подключением к Сети и с обслуживанием.

Как выбрать хостинг для приложения

Перед тем как разместить бота Telegram на какой-нибудь хостинг, для начала надо этот хостинг выбрать.

Для этого нужно учесть 4 нюанса:

  • функции и инструменты;
  • дисковое пространство;
  • цена и качество обслуживания;
  • уровень техподдержки.

По первому критерию нужно обратить внимание на такие способности хоста:

  • трафик;
  • поддержка CMS, скриптов, баз данных, технологий;
  • удобство управления;
  • доступ к сайту для копирования, удаления либо редактирования файлов на сервере;
  • возможность наблюдать за состоянием server;
  • доступ к нескольким почтовым аккаунтам;
  • защита от вирусов, спама и рекламы;
  • бесплатный пробный период или возможность вернуть средства.

При выборе объема пространства для приложения достаточно будет 100 МБ.

На счет службы поддержки, то ее работа должна быть беспрерывной.

Как разместить бота Телеграм

Когда сервер для бота Telegram выбран, пришло время помощника размещать. Для начала потребуется регистрация на соответствующем сайте server. Теперь у вас есть аккаунт. В него нужно зайти и нажать на создание проекта (Create new app). Если название проекта придумано, то опустите этот шаг, если нет, то назовите bot. Имя должно быть уникальным.

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

Размещение бота на хостинге

Если взять, к примеру, бесплатный server Heroku, то потребуется скачать Heroku CLI и войти через него в учетную запись, а затем открыть папку приложения через терминал.

Потом нужно инициализировать git в папке (git init) и установить ссылку на репозиторий «Геруку» (heroku git:remote -a archakov-im-telegram-bot).

Теперь нужно создать в папке с ботом Procfile и указать внутри файла команду start.

Зпуск робота производится следующим образом:

  1. git add .
  2. git commit -m “init” .
  3. git push heroku master .

Что делать, если бот не работает

Проблема решается двумя способами. Первый способ – написать @Botfather. Он решит технологические неполадки и предоставит инструкции с описанием правильного варианта кода.

Второй способ – активировать чат с помощью команды /setprivacy. Робот активизируется. После указания адреса bot вам покажутся участки прописки кода с ошибками и путями их исправления.

Выводы

Для опытных юзеров создать и разместить бота на сервере будет несложно. Трудности составят лишь выбор самого хостинга. Но поскольку их существует много, то ориентируясь по общепринятым критериям, можно подобрать подходящий именно под ваши запросы хостинг.

Размещаем бота для Telegram: от выбора хостинга до запуска

Размещаем бота для Telegram

Чат-боты для Telegram — простой, изящный и легковесный способ вывести общение с клиентами на новый уровень. Виртуальный собеседник может заниматься рассылкой по фильтрам, предлагать клиенту интересные для него товары и услуги, сообщать последние новости или забавно реагировать на определенные реплики человека — их функционал ограничивается лишь фантазией разработчика. Но чтобы чат-бот работал корректно и мог реализовать свой потенциал, после разработки нужно подобрать подходящий хостинг для него. Об этом я и расскажу в статье, а также о том, как настроить сервер и разместить чат-бота для Telegram.

Выбираем хостинг для телеграм-бота

Для начала быстро разберемся с юридической составляющей. В России власти заблокировали лишь серверы и сам сайт Телеграма (UPD: уже разблокировали, поражение в этой войне было неминуемо). Использование мессенджера фактически не запрещено. Но не любой российский сервер будет исправно работать с ботами для этого мессенджера. Так что перед арендой лучше уточнить у техподдержки, подойдет ли их хостинг для телеграм-бота.

У хостинга для чат-бота должна быть поддержка нескольких языков программирования. Например, хостинг для телеграм-бота на Python должен поддерживать этот язык. Аналогично, написанный на NodeJS бот должен быть развернут на сервере, в который можно подгрузить язык NodeJS.

Если хостинг удовлетворяет этим требованиям, он подойдет для работы простого телеграм-бота, который выдает заготовленный ответ на слова-триггеры. Если же в работе ассистент использует машинное обучение, вам стоит обратить внимание на наличие графического ускорения — без него построение нейросети займет очень много времени. Впрочем, если ваш бот не будет обучаться во время общения с реальными собеседниками, то можно арендовать хостинг с графическим ускорением только на время разработки, а потом развернуть обученную нейросеть на обычном хостинге для Telegram-бота, без графики.

Для развертывания бота для Telegram лучше всего подходит VDS/VPS. Он не требует наличия домена в обязательном порядке, и к нему можно будет обратиться по выделенному IP-адресу, что удобно при развертывании бота. К тому же такие серверы лучше поддерживают увеличение масштабов проекта, так что при увеличении потока посетителей вам не придется переходить на другой сервер — достаточно будет просто сменить тариф или его настройки.

Запустите свой VDS-сервер в Timeweb

От 45 рублей в месяц

Выбираем тариф

О тарифах хостингов для бота Telegram стоит поговорить отдельно. Есть целый класс бесплатных хостингов — сюда входит, например, Heroku. Они могут оказаться полезными при тестировании бота — расположите свой чат-бот на Heroku и проверьте работоспособность всех функций, прежде чем арендовать хостинг и выкладывать свое творение. Но учтите, что работоспособность на этом хостинге будет непостоянной — обычно чат-боты работают по 30 секунд, а затем отключаются на неопределенное время. Так что для полноценного развертывания лучше выбрать другой хостинг, например Hostman.

Выбор тарифа обычно обуславливается потоком клиентов, но не сложностью бота. Для развертывания как простенького, так и нейросетевого бота вам не потребуется много дискового пространства. Нет нужды и в больших вычислительных мощностях — большинству ботов более чем достаточно 512 МБ оперативной памяти. Поэтому можно выбирать самые недорогие тарифы.

Ключевое требование к хостингу — стабильность подключения, поэтому от shared-хостингов для телеграм-бота лучше сразу отказаться. А вот VPS/VDS сможет обеспечить надежное подключение. Предпочтительная ОС для сервера — Ubuntu, поскольку большинство модулей для языков программирования пишутся именно под нее. Тарифы на такие виртуальные серверы начинаются от 50 рублей в месяц.

Настраиваем сервер для Telegram-бота

Рассмотрим настройку сервера на примере размещения бота, написанного на Python, который будет автоматически присылать ответы на различные команды.

После аренды VPS нам нужно подключиться к нему по протоколу SSH через специальный клиент (например, Termius), используя данные из личного кабинета на хостинге для телеграм-бота. Вам потребуются Hostname, Login, Password, Port. Вводим их в поля нового подключения. Вот как это будет выглядеть в Termius:

Termius SSH

Сохраняем подключение, возвращаемся на главный экран программы (здесь появляется наше новое подключение) и нажимаем на название сервера, которое мы вводили до этого:

Подключение к серверу

Готово, мы попали в консоль сервера:

Консоль сервера

Отсюда мы сможем управлять сервером, подгружать нужные нам модули и библиотеки. Этим и займемся. Чтобы бот работал, серверу потребуется модуль языка Python. Мы рассматриваем бота, написанного на третьей версии языка, поэтому нам нужно установить python3. Для этого введем в консоль сервера следующие команды:

Не забудем и про библиотеки. На «Питоне» ботов для Telegram обычно пишут с помощью библиотеки TelegramBotAPI. Для ее установки введем команду:

Теперь нам нужно установить удобный менеджер процессов PM2 и язык программирования NodeJS с менеджером пакетов npm для его работы:

Читайте также

Создаем бесплатный callback-виджет с SMS и Telegram-оповещением

Как ускорить ответы клиентам с помощью чат-бота в VK

Размещаем чат-бота

С настройкой сервера покончено, можно отключаться от SSH. Теперь нам потребуется подключение к серверу по протоколу SFTP. Чтобы настроить его, заходим во вкладку SFTP в Termius, нажимаем на «select host» и выбираем имя сервера. После этого создаем папку с любым названием на латинице.

Как разместить бота

Затем копируем в нее файлы бота. Termius поддерживает drag'n'drop, так что можно просто перетащить содержимое вашей папки с ботом.

Запускаем бота

Бот готов к запуску! Для этого в консоли сервера поочередно вводим команды:

Бот запущен и работает. Чтобы удостовериться в этом, мы можем ввести в консоли сервера команду менеджера процессов:

Команда выдаст в консоли список процессов, запущенных на сервере. Найдите строчку с названием бота. Если напротив нее в столбце «Status» значится «Online», бот успешно запущен.

Самый волнующий момент — проверить работу бота в самом мессенджере:

Запускаем телеграм-бота на сервере

Тогда он будет работать круглые сутки, а вы — отдыхать.

Читать:
Как посмотреть онлифанс без подписки через телеграмм

Не так давно мы создали телеграм-бота на Python: можно было написать ему свой знак зодиака, а он в ответ давал предсказание о долгой счастливой жизни. Но у бота есть недостаток: он работает, пока запущена программа на нашем компьютере. Если мы её остановим или выключим компьютер, бот тоже перестанет отвечать на сообщения.

Вот что мы сделаем, чтобы бот работал независимо от всего:

  1. Выберем сервер.
  2. Подготовим программу для работы на нём.
  3. Зальём программу на сервер.
  4. Настроим сервер, чтобы он исполнял программу.

Выбираем сервер

Нам нужен сервер, который умеет работать с Python и запускать файлы программы автоматически. На самом деле он у нас уже есть — на нём крутится сайт mihailmaximov.ru. Если вы всё пропустили — держите подборку:

Тот хостинг, который мы выбрали для проектов, уже умеет запускать Python-файлы. Если вы пользуетесь другим сервисом, то проверьте, умеет ли он то же самое.

Готовим программу и отправляем её на сервер

Единственное, что нужно добавить в наш код телеграм-бота, — специальную команду интерпретатору, чтобы он знал, как работать с нашим файлом. Но перед этим нужно проверить, какая версия Python на нём установлена.

Чтобы это узнать, соединимся с сервером по протоколу SSH и спросим у него напрямую. Для этого используем программу Putty, а настройки подключения возьмём в личном кабинете хостинга:

Этих данных достаточно, чтобы управлять сервером по SSH.

Вставляем их в Putty и подключаемся. Помните, что для безопасности во время ввода пароля курсор стоит на месте, чтобы никто не смог выяснить, сколько символов вы набираете. Когда подключились, вводим команду python3.3 -V — она покажет, есть ли на сервере поддержка этой версии Python:

Сервер говорит, что у него установлена версия Python 3.3.5 — нам этого хватит. Теперь добавляем в самое начало нашего файла с программой такую строчку:

В статье о том, как опубликовать сайт в интернете, мы рассказывали, как залить файлы на сервер. Это умение нам сейчас пригодится: сохраняем нашу программу с гороскопом как файл с расширением .py и отправляем его на сервер в папку cgi-bin (то, что лежит в этой папке, никто не увидит):

Запускаем телеграм-бота на сервере

Настраиваем сервер

Теперь научим сервер понимать, как работать с нашей программой. Для этого в корне сайта находим файл .htaccess и добавляем в него такую строчку:

AddHandler cgi-script .py

Если у вас такого файла нет — создайте его и не забудьте про точку в самом начале названия.

Последнее, что осталось сделать, — настроить права доступа у файла с программой. Находим её среди файлов хостинга и выставляем права 755 или rwxrwxr-x:

Запускаем телеграм-бота на сервере

Теперь с помощью Putty снова подключаемся к серверу и настраиваем рабочее окружение. Это как будто виртуальная песочница, где мы сможем ставить нужные модули для Python, чтобы не мешать остальным пользователям сервера.

В SSH-терминале пишем по очереди такие команды (вместо .thecode можно написать название каталога, которое вам по душе):

virtualenv .thecode source .thecode/bin/activate

Эти две команды создадут виртуальное пространство для запуска Python-файлов.

Теперь установим Python-модуль для работы с Телеграмом:

pip install pytelegrambotapi

Когда установка закончится, пишем такую команду:

nohup python3 /home/t/thecode/osebe/public_html/cgi-bin/telegoroskop.py

/home/t/thecode/osebe/ — это наш путь к папке cgi-bin, а у вас он будет другим. Поменяйте путь на свой и запускайте.

Чтобы программа продолжала работать после того, как мы закроем SSH-клиент, в самом начале пишем команду nohup .

Результат проекта — бот @TheCode_Baboolya_bot.

Что дальше

Мы сделали самые базовые вещи — запустили скрипт на сервере и сделали так, чтобы он работал там постоянно. Но вот как можно это улучшить:

Создание и хостинг телеграм бота. От А до Я

Привет, хабрчане! Какой бы заезженной не была тема создания телеграм бота на python3, я не нашёл инструкций, где показан путь от первой строчки кода до деплоинга бота (по крайней мере все методы, что я видел, немного устарели). В этой статье я хочу показать процесс создания бота от написания BotFather-у до деплоинга бота на Heroku.

Статья получилась длинной, советую пробежаться глазами по содержанию и кликнуть по интересующему вас пункту.

P.S. Пишите если нужна статья по созданию более сложного бота, т.е. с вебхуками, БД с настройками юзеров и т.д.

BotFather

Для начала нам надо зарегистрировать нашего бота в Telegram. Для этого:

В поиске вбиваем @BotFather и переходим в диалог с Отцом Ботов.

Пишем /newbot. Указываем имя бота (то, что отображается в диалогах). Указываем его логин, по которому его можно булет найти.

P.S. Оно должно заканчиваться на Bot/bot

Вот. Нам дали API ключ и ссылку на бота. Желательно сохранить API ключ и перейти в диалог с ботом, чтобы потом не копаться в переписке с BotFather

Дальше добавим ему пару команд: пропишем /setcommands и одним сообщением, т.к. /setcommands не добавляет команды, а задаёт их с нуля, пошлём ему команды.

all — спарсить заголовки с вкладки «ВСЁ ПОДРЯД»
top — спарсить заголовки с вкладки «ЛУЧШЕЕ»

На этом работа с BotFather закончилась, перейдём к следующей части.

Установка и настройка pipenv. Первый запуск.

Для начала создадим файл, в котором будет основной код бота bot.py. Если бот большой, то сразу создавайте файлы, куда вы вынесете функции, классы и т.д, иначе читаемость кода стремится к нулю. Я добавлю parser.py

Установим pipenv, если его конечно ещё нет.

Установим pipenv в папку проекта.

Установим интересующие нас библиотеки. Я буду работать с PyTelegramBotAPI. Также для парсинга добавим BeautifulSoup4.

Начинаем писать код!

Открываем bot.py, импортируем библиотеки и создаём главные переменные.

Запустим бота. Посмотри наличие ошибок.

Если ошибок не появилось, то продолжим.

Хэндлеры. Отвечаем на команды и сообщения

Пришло время научить бота отвечать нам. Возможно даже сделать его ответы полезными.

Основы взаимодействия. Ответ на команды

Для взаимодействия с пользователем, т.е. для ответа на его команды и сообщения используются хэндлеры.

Начнём с самого простого: ответим на команды /start и /go

Сейчас разберёмся что это и как это работает. Передаём в message_handler параметр commands равный массиву со строками — командами, на которые он будет отвечать описанным ниже образом. (На все эти команды он ответит одинаково). Далее используем send_message, в него записываем id чата (его можно достать из message.chat.id), в который отправить сообщение и, собственно, само сообщение. Нельзя забыть написать bot.polling() в конце кода, иначе бот сразу же выключиться. Почему так мы узнаем позже.

Теперь можно запустить бота и написать ему /start или /go и он ответит.

P.S. Сообщение может быть не только строкой, а, в принципе, чем угодно.

Это json объект, хранящий информацию об отправителе, чате, и самом сообщении.

Основы взаимодействия. Ответ на текстовые сообщения.

Теперь обработаем текстовые сообщения бота. Самое важное что нам нужно знать это то, что текст сообщения храниться в message.text и то, что, чтобы обрабатывать текст в message_handler нужно передавать content_types=[‘text’].

Добавим вот такой код.

Тут мы довабили пару переменных: вынесли текст сообщения (в нижнем регистре, чтобы не было лишних проблем с теми кто пишет капсом, заборчиком и т.д.) в переменную text, вынесли message.chat.id в отдельную переменную, чтобы каждый раз не обращаться к message. Также мы построили небольшое ветвление, для ответа на определённые сообщения, а также ответ на случай непонятного боту сообщения.

Основы взаимодействия. Ответ на картинки, документы, аудио и прочие.

Для ответа на картинки, стикеры, документы, аудио и т.д. нужно всего лишь поменять content_types=[‘text’].

Рассмотрим пример с картинкой, добавив этот код.

Все типы контента:

text, audio, document, photo, sticker, video, video_note, voice, location, contact, new_chat_members, left_chat_member, new_chat_title, new_chat_photo, delete_chat_photo, group_chat_created, supergroup_chat_created, channel_chat_created, migrate_to_chat_id, migrate_from_chat_id, pinned_message

Строим цепочку ответов.

Пришло время закончить с элементарными действиями и начать что-то серьёзное. Попробуем построить цепочку ответов. Для этого нам понадобиться register_next_step_handler(). Создадим простой пример, на котором и разберёмся как работает register_next_step_handler().

И так, в первой функции добавился bot.register_next_step_handler(msg, askAge), в него мы передаём сообщение, которые хотим послать, и следующий щаг, к которому перейти после ответа пользователя.

Во второй функции всё поинтересней, здесь идёт проверка ввёл ли пользователь число, и, если нет, то функция рекурсивно вызывает сама себя, с сообщением «Возраст должен быть числом, введите ещё раз.». Если пользователь ввёл всё верно, то он получает ответ.

Но, есть тут проблема. Можно повторно вызвать команду /go или /start, и начнётся бардак.

Пофиксить это несложно, добавим переменную для проверки состояния выполнения скрипта.

С построением простых цепочек мы разобрались, пойдём дальше.

Добавляем парсер в цепочку.

Для начала нужен сам парсер. Обратим внимание на то, что во вкладках «Лучшее» и «Всё подряд» есть дополнительные фильтры: сутки, неделя, месяц и ≥10, ≥25, ≥50, ≥100 соответственно.
Парсер конечно можно написать и в 1 функцию, но я разобью на 2, так будет проще читать код.

По итогу парсер возвращает нам строку с заголовками статей, основываясь на наших запросах.
Пробуем, используя полученные знания, написать бота связанного с парсером. Я решил создать отдельный класс (это скорее всего неправильный метод, но это уже относится к питону, а не к основной теме статьи), и в объекте этого класса хранить изменяемые данные.

Теория. Методы взаимодействия с ботом.

Мы используем long polling для получения данных о сообщениях от бота.

Есть же вариант использовать в корне другой метод — вебхуки. Так бот сам будет отправлять нам данные о получении сообщения и т.д. Но этот метод сложнее в настройке, и, для простого показательного бота я решил его не использовать.

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

Маркапы. Добавляем клавиатуры для быстрого ответа.

Наконец основной код дописан. Теперь можно передохнуть и написать маркапы. Я думаю вы неоднократно видели их, но всё же, приложу скриншот. [SCREENSHOT]

Я выведу маркапы в отдельный файл — markups.py.

В написании маркапов нет ничего сложного. Нужно лишь создать маркап, указать пару параметров, создать пару кнопок и добавить их в маркап, далее просто указываем reply_markup=markup в send_message .

В параметры маркапа указываем ширину строки и изменение размеров кнопок, иначе они огромны.

Применим полученные знания к нашему боту.

Ура! С кодом впринципе разобрались. Теперь самое важное — деплоинг бота не хероку.

Деплоим бота на Heroku.

Для начала надо зарегистрироваться на Хероку и на Гитхабе.

Теперь создаём репозиторий на гитхабе. (нажмите плюсик слева от вашего аватара)
Сейчас нам нужен Procfile (Procfile.windows для windows). Создаём его и записываем в него bot: python3 bot.py

Теперь удаляем TOKEN из bot.py, здесь он не нужен, ведь мы будем загружать этот файл на гитхаб. Через тот же терминале, что использовали для запуска бота, заливаем файлы на гитхаб. (Предворительно удалите папку __pycache__).

Гит просит логин и пароль, спокойно вводим и преступаем к деплоингу бота на хероку. Пишем всё в том же терминале.

Теперь возвращаем TOKEN в bot.py, здесь он нужен, ведь мы будем загружать этот файл на хероку.

Чтобы выключить бота
И, не забываем перед залитием на гитхаб и удалить TOKEN из нашего bot.py. Ведь нам не нужно, чтобы кто-то им пользовался. Можно конечно воспользоваться .gitignore и вынести токены в отдельный фай.

Поздравляю!

Работа окончена, бот работает удалённо.

Ссылки

Заключение

Если кому-то было интересно, то цель написания статьи выполнена. Если кому-то хочется увидеть статью про более сложного бота (с вебхуками, подключенной БД с настройками пользователей и т.д.) — пишите.

Похожие статьи