Как запустить VK-бота без своего сервера

VK-бот для сообщества пишется быстро: библиотека вроде vkbottle или vk_api, токен сообщества, обработчик сообщений. А потом начинается знакомая история — бот отвечает ровно до тех пор, пока открыт ваш терминал. Закройте ноутбук, дайте ему уснуть или потеряйте интернет — и подписчики уходят писать в пустоту. Обычный ответ на это: арендовать сервер, поставить Python, настроить автозапуск и следить, чтобы процесс поднимался после перезагрузки. Ничего из этого не обязательно. Dockbox сам определяет язык проекта, ставит зависимости, запускает бота на своих серверах и поднимает его, если тот упал. Разберём по шагам — и посмотрим, как это устроено на платформе.

Что вообще нужно для запуска VK-бота

У бота всего две части: код и токен. Код — это логика, которую вы пишете сами или просите у ChatGPT: обработка входящих, ответы, кнопки, сценарии. Токен — ключ, от имени которого бот читает сообщения сообщества и отвечает на них. Больше для старта ничего не требуется: ни арендованного сервера, ни установленного локально Python, ни отдельно настроенного autostart.

Итоговый список того, что загружаем: папка с кодом, файл requirements.txt с библиотеками и значение токена, введённое отдельно — в секретах проекта, а не в коде.

Callback API или Long Poll: что выбрать

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

Long Poll. Бот сам постоянно спрашивает VK: «есть новое?». Публичный адрес ему не нужен — достаточно исходящих запросов, поэтому стартовать проще всего: положили код, дали токен, запустили. Плата за простоту — процесс должен работать непрерывно, ведь если он остановился, сообщения просто не забираются.

Callback API. Здесь наоборот: VK сам присылает POST-запрос на ваш адрес, когда в сообществе что-то происходит. Экономичнее и быстрее, но требует публичной точки с HTTPS, а приложение обязано слушать порт из переменной окружения, а не жёстко прописанный в коде. Ещё в настройках сообщества придётся указать адрес и ответить на проверку — VK отправляет запрос с кодом подтверждения, который сервер должен вернуть.

На Dockbox работают оба. Long Poll — это просто процесс, Callback API — обычное веб-приложение, которое получает HTTPS-адрес сразу после публикации.

Получите токен сообщества

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

Вынесите токен в секреты, а не в код

Плохой вариант — так часто делает ChatGPT по умолчанию:

TOKEN = "vk1.a.XXXX"

Хороший вариант — токен читается из переменной окружения:

import os
TOKEN = os.environ["VK_TOKEN"]

Причина простая: код вы почти наверняка будете заливать в Git, кому-то показывать или отдавать. Токен в коде = токен утёк. Поэтому на Dockbox значение вводится отдельно, в разделе секретов проекта: переменные шифруются, имена видны, а значения не показываются никому.

Соберите зависимости в requirements.txt

Рядом с кодом положите файл со списком библиотек, которые бот реально импортирует:

vkbottle==4.6.2
requests==2.32.3

По этому файлу платформа понимает, что перед ней Python-проект, и во время сборки ставит всё нужное. Просите ChatGPT «собери requirements.txt по импортам» и сверяйте, что каждый import покрыт. Виртуальное окружение в архив не кладите — оно здесь не нужно.

Загрузите проект и запустите бота

Загрузите папку ZIP-архивом или подключите репозиторий с GitHub, в том числе приватный — Dockbox заберёт код сам. Дальше платформа определяет язык, собирает проект и запускает бота. Логи видны в панели в реальном времени: сразу понятно, подключился ли бот и не падает ли он на старте. После этого компьютер можно выключить.

Если бот на Callback API: адрес и порт

Для Callback API к проекту добавляются две вещи. Во-первых, приложение должно слушать порт из окружения, а не константу:

import os
port = int(os.environ.get("PORT", 8000))

Во-вторых, нужен публичный HTTPS-адрес. Dockbox выдаёт его сразу после публикации — этот адрес вы вписываете в настройках сообщества. Туда же идут код подтверждения и секретный ключ, которые VK требует при настройке Callback API. И то, и другое храните в секретах, а не в коде.

Что помнить про тарифы

Бот, который сам ждёт сообщения, работает до тех пор, пока запущен его контейнер — платформа следит за процессом и перезапускает его при сбое, поэтому вмешательство не нужно, а ваш код и токен остаются на месте. Тарифы отличаются ресурсами и числом проектов: Starter (990 ₽/мес, первый месяц бесплатно) — 1 vCPU, 2 ГБ RAM и один проект; Pro (2 490 ₽/мес) — 5 проектов и preview-окружения. Ни у ботов, ни у сайтов нет лимита по времени работы: контейнер запущен постоянно, поэтому бот отвечает, а сайт открывается в любой момент.

Частые вопросы

Что нужно, кроме кода бота?

Только токен сообщества с правами на сообщения и файл requirements.txt со списком библиотек. Ни сервера, ни установки Python, ни настройки автозапуска, ни обслуживания системы.

Бот будет работать, когда компьютер выключен?

Да. Бот запущен на серверах Dockbox и от вашего компьютера не зависит. Если он упадёт, платформа перезапустит его, а причину можно найти в логах панели.

Можно ли держать бота на Starter постоянно?

Да. И сайты, и боты на Dockbox работают без ограничения по времени: контейнер запущен постоянно, а при сбое платформа перезапускает процесс. Код и настройки сохраняются. Ресурсы и число проектов зависят от тарифа — актуальные цены всегда на странице тарифов.

Подойдёт ли это для бота на Callback API?

Да. Callback API-бот — это обычное веб-приложение, которое принимает запросы от VK, поэтому ему нужен публичный адрес с защищённым соединением. Dockbox выдаёт такой адрес сразу после публикации, и его вы вводите в настройках сообщества. Приложение при этом должно слушать порт из переменной окружения, а не зашитый в код.

Безопасно ли хранить токен сообщества на платформе?

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

Круглосуточно отвечающий бот сообщества не требует ни включённого ноутбука, ни арендованного сервера с автозапуском. Загрузите код, укажите токен сообщества — и бот останется онлайн, даже когда ваш компьютер выключен. Попробуйте Dockbox.