Меню Рубрики

Установка бота на vds

Установка бота на виртуальный выделенный сервер (VDS)

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

Считаю своим долгом предупредить. Сервер хоть и виртуальный, но работает как вполне реальный выделенный сервер. А значит — он постоянно и круглосуточно подвергается всевозможным угрозам безопасности — бруту паролей, сканированию портов, попыткам взлома и поискам уязвимости в установленном программном обеспечении. И кроме того — за все что произойдет с сервером нехорошего, или что произведет ваш взломанный сервер в интернете несете ответственность только вы. Поэтому устанавливайте бота на сервер только если точно понимаете что делаете. Иначе лучше воспользоваться услугами профессионалов.

Если вы не передумали после предыдущего абзаца — продолжим.

Речь в этой инструкции пойдет об виртуальных выделенный серверах, на которых установлена панелью управления ISP manager. Описанные действия по регистрации и активации виртуального сервера могут отличаться в зависимости от компании-хостера.

После регистрации сервера и оплаты заходим в Bill Manager и переходим в раздел «Товары и услуги — Виртуальные серверы». Нажимаем на кнопку «Новый ВДС»:

Выбираем тарифный план. Нажимаем «Далее».

Доменное имя можно оставить пустым. Тогда оно будет присвоено автоматически. В любом случае, к своему серверу вы всегда можете обращаться по IP-адресу. Нажимаем «Далее».

На этом этапе необходимо обязательно выбрать шаблон «Soft2006» — он содержит все программное обеспечение необходимое для работы бота.

Остальные параметры сервера вы можете выбрать по своему усмотрению.

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

Воспользуемся этой информацией и зайдем в IPSmanager:

После успешного входа нам необходимо создать нового пользователя, под которым будем потом запускать бота. Для этого перейдем в раздел «Учетные записи — Пользователи» и нажмем кнопку «Создать пользователя».

В качестве параметров укажем имя пользователя, сгенерируем ему пароль и предоставим доступ к ssh.

Теперь переходим в раздел «Настройки сервера — Серверы баз данных». Два раза щелкаем по строчке «MySQL». В появившемся окне обязательно указываем кодировку сервера — «UTF8«:

Теперь создадим саму базу данных. Для этого переходим в раздел «Инструменты — Базы данных». Нажимаем кнопку «Создать базу данных»

При создании указываем имя базы данных, в качестве владельца — созданного нами ранее пользователя. Обязательно выбираем кодировку «utf8«. Указываем имя нового пользователя сервера баз данных и генерируем для него пароль. Ставим галочку «Удаленный доступ».

После создания базы данных необходимо создать в ней таблицы, необходямые для работы бота. Заходим в раздел «Доп. приложения — PhpMyAdmin». Для входа используем созданные нами чуть выше пользователя базы данных и его пароль (надеюсь понятно что все сгенерированные в ходе этого процесса пароли необходимо тщательно записывать себе в блокнокик, или запоминать). Далее действуем точно так же как изображено в инструкции по созданию базы данных локальном компьютере.

После создания базы необходимо «залить» нашего бота на сервер. Для этого процесса я рекомендую пользоваться протоколом sFTP и программой WinSCP. Для входа на сервер необходимо использовать его IP адрес, имя пользователя и пароль, созданные нами в самом начале.

После успешного входа вам откроется окно, напоминающее TotalCommander.Создайте в директории пользователя на сервере папку, например «bot» и загрузите туда дистрибутив бота.

Наконец, вам необходимо выполнить заключительные настройки. Указать в файле настроек порт для веб-админки. Указать в настройках параметры подключения к базе данных, а именно — имя базы данных, пользователя базы данных и его пароль.

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

источник

Как я писал telegram-бота и заливал его на удаленный сервер

Вступление

Как только на территории РФ вступил в силу запрет на анонимность в мессенджерах, у меня дошли руки написать пост про telegram-бота. По ходу создания бота столкнулся с большим количеством проблем, которые пришлось решать по отдельности, и буквально выцеживать крупинки информации со всего интернета. И вот после нескольких месяцев страданий и мучений (кодинг – не основное моё занятие) я наконец-то закончил с ботом, разобрался со всеми проблемами и готов поведать свою историю Вам.

Читайте также:  Установка лепесткового клапана на восход

Первые шаги

Для начала нужно установить telegram на ПК и зарегистрироваться в мессенджере. Найти в поиске @BotFather – это отец всех ботов в telegram, именно он их создаёт. Пишем ему /newbot и отвечаем на два простых вопросов: имя бота и его username. После чего @BotFather поздравит нас с успешным созданием бота и отправит нам его token — 523870826:AAF0O8T-e7riRi8m6qlRz4pBKKdh0OfHKj8.

Внимание: token – единственный идентификационный ключ к боту. Нигде не выкладывайте его, иначе другие люди смогут управлять Вашим ботом. Бот с данным token на момент выкладывания статьи удалён.

Какой язык программирования выбрать для написания бота?

Тут я долго не заморачивался и остановился на Python, так как знаю его достаточно хорошо, да и удобная библиотека тоже присутствует. Я решил использовать PyTelagramBotAPI (на момент написания этой статьи последняя доступная версия 3.5.1).

Импортируем библиотеку PyTelegramBotAPI.

Напишем простую обработку сообщений с помощью декоратора bot.message_handler.

Поставим бота в режим постоянной обработки информации, приходящей от серверов telegram.

В переменной message telegram передаёт словарь (map) такого вида:

Также существуют другие декораторы, которые могут принимать аудиофайлы, видео, картинки, документы, геолокацию и т.д.

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

Для сохранения данных о пользователях решил воспользоваться базой данных sqlite3.

Параллельные процессы запускал с помощью библиотеки threading. Например: функция расчета битв.

Дальше всё зависит только от Вашей фантазии.

Где запустить Вашего бота?

Свой собственный ПК не хочется оставлять включенным 24/7, да и не практично это. Поэтому я решил воспользоваться бесплатным сервисом heroku, но меня постигла неудача из-за выбранной мною БД. Оказалось, что при каждом перезапуске бота, heroku удаляет все коммиты sqlite3 за последний сеанс без исключений. После чего, я решил купить VDS (Virtual Dedicated Server, виртуальный выделенный сервер) – удаленный ПК, на котором выделяется определенная мощность и память под Вас, и к командной строке которого Вам даётся доступ. Чаще всего операционной системой такой машинки будет linux. Плата небольшая – 400 руб./месяц, так что без особых моральных страданий оплатил VDS на основе Debian GNU/Linux и начал разбираться с тем, как мне включить бота на удалённом сервере.

Как же подключаться к VDS?

Есть разные методы, я решил по SSH-соединению через Putty. Скачиваем Putty через официальный сайт и открываем. Вводим IP-address VDS и нажимаем open.

Должно открыться такое окно, где нужно ввести логин и пароль от сервера.

Все вышеупомянутые данные выдаст компания, у которой Вы приобретёте VDS. Далее VDS – сервер.

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

Тут все просто. Введя эти 5 команд в консоль сервера в данной последовательности, Вы установите на сервер python3, setuptools, pip3 и библиотеку pyTelegramBotAPI.

Все дополнительные библиотеки, которые не входят в основной пакет python3, также необходимо установить по принципу.

Как загрузить файлы с моего ПК на сервер?

Для начала создадим папку, в который будем заливать все необходимые файлы. На сервере пройдем в каталог /usr/local/bin и создадим папку bot.

У меня на ПК установлен windows, соответственно и команды будут для командной строки windows. Для начала необходимо пройти в каталог, где находится putty.exe.

Далее загружаем bot.py, который находится в каталоге C:\Users\Ilya\PycharmProjects\Bot (нужно подставить Ваш каталог) в каталог на сервере /usr/local/bin/bot.

Строчку root@123.123.12.12 нужно заменить на строчку вида login@IP_address, соответственно с Вашим логином и IP-адресом (упомянуты выше в разделе «Как же подключиться к VDS?»). Заменяя bot.py на названия других файлов, загрузите все необходимые.

Читайте также:  Установка вентиляции в парикмахерской

Как скачать файлы с сервера на ПК?

Так же, как и при загрузке файлов на сервер в командной строке в каталог, где лежит putty.exe. И вводим эту команду, чтобы скачать файл database на рабочий стол Вашего ПК.

Как запустить бота?

Первый и самый простой вариант – зайти в каталог с исполняемым файлов и прописать python3 bot.py, но тогда при закрытии putty бот будет выключаться.

Второй вариант – запустить бота с помощью screen – модуль, который создаёт параллельные рабочие столы, но тогда бот не будет перезапускаться автоматически в случае падения, а это происходит часто – несколько раз в неделю из-за ночного перезапуска серверов telegram (в 3:00 по МСК).

Третий способ – systemd – cистемный менеджер, демон инициализации других демонов в Linux. Проще говоря, systemd запустит бота и будет перезапускать его в случае падения.

Создайте файл на Вашем ПК с именем bot.service с таким содержанием:

И загружаем его в нужный каталог:

Далее нужно прописать 4 команды в консоли сервера:

В моём случаи из-за определённых ошибок реализации, а конкретно многопоточности, пришлось переносить функцию для расчёта битв (battle_counter.py) в отдельного демона.

После чего должно появится сообщение примерно такого содержания:

Ваш бот запущен и готов к работе!

БЛАГОДАРНОСТИ

Это был мой первый относительно большой проект и я столкнулся с колоссальным количеством новых для меня проблем. Огромную благодарность хочу выразить Yurii Drake, который помог мне разобраться с ними!

источник

Как запустить бота на сервере

Небольшая статья о том, как заставить бота работать не на вашем компьютере, а где-то еще в интернете, круглосуточно, с хорошим постоянным интернет-соединением. Зачем? А что бы не приходилось комп держать постоянно включенным. Поехали.

Шаг первый. Арендуем выделенный сервер.

Я пользуюсь DigitalOcean.com, т.к. мне нравится сервис и удобство пользования. Для работы бота достаточно аренды виртуального сервера за 5$ в месяц. Если зарегистрируетесь по моей ссылке (если не работает, то попробуйте эту), то сайт предоставит вам в долг 10$, чего должно хватить на два месяца тестирования. Можно найти и другой VPS/VDS, в статье же будет рассмотрен запуск бота на VPS на базе Ubuntu.

Итак, регистрация. Тут нет ничего сложного. Переходим на сайт, и нажимаем SIGN UP:

Просят подтвердить почту — идем в свой почтовый ящик и подтверждаем

После этого сервис попросит вас указать данные карты, с которой 1го числа следующего месяца будет произведено списание средств. По-моему, необязательно что бы на ней были деньги, главное, что бы это была рабочая карта со сроком годности и т.п.

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

Нажмите Create и выберите Droplets

Выбираете Ubuntu (какая там будет доступна на данный момент), и сервер за 5$ в месяц.

Ниже будет выбор страны базирования сервера, прочее, что вам пока что не нужно, проматывайте вниз и нажимайте зеленую кнопку Create

Дроплет начнет разворачиваться и появится в списке дроплетов – дождитесь конца установки.

После окончания вам на почту придет информация о сервере – IP адрес, логин и пароль

Итак, дроплет создан, пора начать им пользоваться в наших целях.

Шаг второй. Подключение к серверу и смена пароля.

Так как сервер на базе Linux, то придется немного изменить свои привычки, и освоить кое-что новое. Нам понадобятся две программы, первая – консольный клиент putty (почувствуй себя хакером ;)) Качаем тут

(если не знаете, какую качать, качайте первую).

После скачивания и установки запускайте, и давайте подключимся к вновь созданному серверу. Программа запросит реквизиты для подключения. Укажите IP адрес, который вам прислали в письме, и нажмите Enter.

Появится черное окно, и запрос, доверяете ли вы этому серверу – нажимайте «Да».

После этого в черном окне появится приглашения на ввод имени пользователя и пароля. Введите root, нажмите Enter, введите пароль из почты. Важно – пароль не отображается на экране, так что нет повода для паники. Совет – скопированный текст можно вставлять правой кнопкой мыши, так что введите сначала root, Enter, потом копируйте пароль на почте, нажимайте правой кнопкой мыши в черном окне и Enter – и вы должны попасть на свой сервер.

Читайте также:  Установка газа на фучика

От вас сразу же потребуют, что бы вы сменили пароль, так что

  1. Укажите текущий пароль (он не отобразится) Enter.
  2. Придумайте и введите новый пароль (он тоже не будет отображаться), Enter, и
  3. Еще раз укажите новый пароль. Запомните, а лучше запишите его!

Если пароль будет слишком простым, то система ругнется и попросит придумать новый.

Шаг третий – закинуть бота на сервер.

Тут нужна будет программа WinSCP. Скачать её можно отсюда https://winscp.net/eng/download.php.

Устанавливаем, запускаем (я указываю интерфейс коммандера, а не проводника), после запуска указываем IP адрес, пользователь – root, пароль – тот, что вы придумали на прошлом шаге. Нажимаем «Войти». Вас спросят, доверяете ли вы серверу, отвечайте «Да»

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

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

Шаг четвертый – запуск бота.

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

Итак, вы на сервере, для начала давайте проверим, что все работает как надо.

И вы должны увидеть что-то вроде:

Нажмите Ctrl+C , что бы остановить бота. Он работает, но если вы сейчас закроете putty или выключите компьютер или отвалится интернет, то и бот перестанет работать. Поэтому бота мы будем запускать по другому.

Вы увидите окно с текстом, нажмите просто Enter

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

Если вернется строка с информацией, значит вы внутри виртуальной сессии.

Так что запускайте бота тут, в этой виртуальной сессии

и он будет работать круглосуточно.

Проверьте, закройте окно putty и подключитесь заново. Ничего не происходит, бота нет?! На самом деле, он продолжает работать в фоне. Выполните команду

и вы увидите запущенные виртуальные сессии

Число в начале строки – это PID процесса. Что бы подключится к выбранному экрану, выполните команду

2013 надо будет заменить на ваше число, разумеется. И.. вы снова попадете к боту и можете посмотреть, чем он там занимается.

Дополнительно.

Что бы запустить несколько ботов, надо для каждого запустить свою сессию screen, и в каждой сессии запускать по боту. Т.е. упрощенно говоря, выполняете screen , Enter , python3.5 ./bot1.py , после чего закрываете putty (либо нажимаете Ctrl+A+D), и опять screen , Enter , python3.5 ./bot2.py и т.п.

Так же процитирую полезную иформацию из комментариев:

Если требуется внести изменения в бота, то алгоритм будет следующим: Вы подключаетесь к сессии бота, как написано выше, нажимаете Ctrl+C, что бы его остановить, с помощью winSCP закидываете новую версию файла на сервер (или правите прямо там), и заново запускаете python3.5 ./exmo.py

UPD. Для того, что бы установить ta-lib и прочее, нужно выполнить эти команды:

Заключение

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

источник

Добавить комментарий