VPS для бота ВКонтакте: деплой и работа 24/7
Бот для сообщества ВКонтакте отвечает подписчикам, принимает заявки и рассылает уведомления. Чтобы он работал без выходных, его размещают на VPS. Развернём бота на vkbottle или vk_api с Bots Long Poll и автозапуском через systemd.
Содержание
Как устроен бот ВКонтакте
['Бот ВК работает от имени сообщества через Bots Long Poll API: он держит открытое соединение с серверами ВКонтакте и получает события — новые сообщения, вступления, реакции. В отличие от Callback API, Long Poll не требует внешнего домена и белого IP, что упрощает запуск на любом VPS.', 'Для работы нужен токен сообщества с правами на сообщения — его выдают в настройках группы, в разделе «Работа с API». Один запущенный экземпляр обслуживает всё сообщество, а нагрузка обычно минимальна: даже активная группа редко упирается в ресурсы младшего тарифа.', '- Bots Long Poll — не нужен домен и белый IP.
- Токен сообщества — выдаётся в настройках группы.
- Один процесс на группу — легко масштабировать по сообществам.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.
Арендовать VPS для бота ВКонтактеПодготовка сервера
['Ставим Python, создаём пользователя и окружение. Популярные библиотеки — vkbottle (асинхронная, современная) и vk_api (классическая, синхронная).', "sudo apt update && sudo apt install -y python3 python3-venv git\nsudo useradd -r -m -s /bin/bash vkbot\nsudo -u vkbot bash -c 'cd ~ && python3 -m venv venv && venv/bin/pip install vkbottle'\n# либо классика:\nsudo -u vkbot bash -c '~/venv/bin/pip install vk_api'", 'Токен сообщества кладём в файл окружения с правами 600 — он даёт доступ к переписке группы, поэтому в код и git его не помещаем.', "echo 'VK_TOKEN=vk1.a.xxxxx' | sudo -u vkbot tee /home/vkbot/bot.env\nsudo chmod 600 /home/vkbot/bot.env"]
Минимальный бот на vkbottle
['Асинхронный каркас на vkbottle: отвечает на любое сообщение. Токен читается из окружения.', "import os\nfrom vkbottle.bot import Bot, Message\n\nbot = Bot(os.environ['VK_TOKEN'])\n\n@bot.on.message()\nasync def handler(m: Message):\n await m.answer('Бот сообщества работает на VPS 24/7')\n\nbot.run_forever()", 'vkbottle сам поднимает Bots Long Poll и переподключается при обрывах. Для vk_api логика похожа, но через VkBotLongPoll и обычный цикл событий.']
Автозапуск через systemd
['Чтобы бот работал круглосуточно и переживал перезагрузку сервера, оформляем его сервисом systemd.', "sudo tee /etc/systemd/system/vkbot.service > /dev/null <<'EOF'\n[Unit]\nDescription=VK community bot\nAfter=network-online.target\nWants=network-online.target\n\n[Service]\nUser=vkbot\nWorkingDirectory=/home/vkbot\nEnvironmentFile=/home/vkbot/bot.env\nExecStart=/home/vkbot/venv/bin/python bot.py\nRestart=always\nRestartSec=5\n\n[Install]\nWantedBy=multi-user.target\nEOF\nsudo systemctl daemon-reload\nsudo systemctl enable --now vkbot", 'systemctl status vkbot\njournalctl -u vkbot -f', 'Теперь бот стартует при загрузке системы, а при ошибке в обработчике systemd поднимет его заново.']
Клавиатуры, вложения и рассылки
['Бот ВК умеет не только отвечать текстом. Через API можно прикреплять inline-клавиатуры, отправлять фото и документы, вести пользователя по сценарию через состояния. Для рассылок помните про лимит ВКонтакте: сообщения можно слать только тем, кто написал боту сам в последние сутки, иначе нужен отдельный шаблон рассылки.', 'Чтобы не упереться в rate limit при массовых операциях, добавляйте паузы между запросами и обрабатывайте ошибки 6 (Too many requests) — повторяйте запрос с экспоненциальной задержкой. ВКонтакте ограничивает частоту обращений к API примерно тремя запросами в секунду на токен сообщества, поэтому тяжёлые операции вроде выгрузки участников делайте пачками с задержкой, а не в один поток.']Сервер и частые ошибки
['Боту ВК не нужны серьёзные ресурсы — хватает тарифа от $8/мес. Но важна стабильная сеть, чтобы Long Poll не рвался. У MAATRIX это AMD EPYC + NVMe, локации UK и США, ежедневные бэкапы и оплата картой РФ, СБП, криптой или MAAT — удобно, когда сервер нужен за рубежом, а платить хочется из России.', '- Токен в git — доступ к переписке сообщества уйдёт наружу.
- Нет прав на сообщения у токена — бот не видит входящие; проверьте настройки группы.
- Запуск через screen — не переживёт ребут; только systemd.
- Игнор ошибки rate limit — ВК временно режет запросы при флуде.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.
Арендовать VPS для бота ВКонтактеЧастые вопросы
Нужен ли белый IP для бота ВК?
Нет, если использовать Bots Long Poll — бот сам держит соединение с ВК. Белый IP и домен нужны только для Callback API.
vkbottle или vk_api?
vkbottle современнее и асинхронная, удобна для новых проектов. vk_api проще и синхронная — подойдёт для несложных ботов и скриптов.
Можно ли делать массовые рассылки подписчикам?
Только тем, кто писал боту в последние 24 часа, либо через одобренный шаблон рассылки. Иначе ВКонтакте блокирует сообщения как спам.