Управляйте запуском
Состояние сервера видно сразу. Включить, выключить и перезапустить — одной кнопкой. Если процесс упадёт, сервис перезапустит его сам.

Хостинг Discord-ботов
Разместите своего Discord-бота на сервере. Загрузка кода, настройки запуска, файлы и консоль — в одной панели.
Для собственного кода. Python и Node.js. Почасовая и месячная оплата.


Переписывать код бота под нас не нужно.
Всё в браузере. Ни командной строки, ни ключей, ни настройки самого сервера.
Он загружается в файловом менеджере панели и распаковывается там же. Кроме .zip подойдут .tar.gz, .7z и .rar; один файл — не больше 100 МБ.
Токен выдаёт Discord Developer Portal (Applications → Bot) — вставьте его в поле «Токен бота». Рядом поле «Файл запуска»: в нём имя файла, с которого бот начинается.
В панели видно, как ставятся библиотеки и как запускается код. Пригласите бота на свой сервер Discord по ссылке OAuth2 и проверьте команду.

Загрузить код — минута. Токен и файл запуска впишете уже в панели.
Это экраны панели, которые вы получите. Без командной строки и настройки ОС.
Состояние сервера видно сразу. Включить, выключить и перезапустить — одной кнопкой. Если процесс упадёт, сервис перезапустит его сам.

В консоли — установка зависимостей и всё, что печатает ваш код. Ошибки и предупреждения вынесены в отдельные фильтры.

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

Панель читает вывод бота и объясняет причину по-русски. И сразу говорит, где чинить: где-то достаточно взять тариф побольше, где-то — поправить настройку, а где-то дело в самом коде. Обычно именно на этот вопрос и уходит весь вечер.
Бота остановили: он занял больше памяти, чем даёт тариф. Возьмите тариф с памятью побольше — код и файлы останутся на месте, загружать их заново не нужно.
KilledУстановка оборвалась ошибкой, и до кода бота дело не дошло. В выводе бота видно, какая именно строка из requirements.txt или package.json не встала. Часть библиотек перед установкой нужно собирать, а на сервере для ботов нечем — таким нужен VPS.
ERROR: No matching distribution found for discord.py==9.9.9На вкладке «Настройки игры» указано имя файла, которого среди файлов бота нет. Откройте её и проверьте поле «Файл запуска». Ещё частая причина — архив распаковался вместе со своей папкой, и код лежит внутри неё.
Файл bot.py не найден. Загрузите код бота через файловый менеджер панели и запустите сервер снова.Бот запустился, но войти не смог. Откройте вкладку «Настройки игры» и проверьте поле «Токен бота»: токен могли отозвать, или он скопировался с лишним пробелом.
discord.errors.LoginFailure: Improper token has been passed.Панель назовёт её сама — и скажет, на чьей стороне чинить.
Особых требований к проекту у нас нет. Нужно только, чтобы бот запускался одним файлом, а его библиотеки были перечислены рядом.
requirements.txt или package.jsonТарифы отличаются только памятью и местом на диске. Платить можно помесячно или по часам: удалили сервер — дальше не списывается. Поменять тариф можно потом — код загружать заново не придётся, файлы и база останутся на месте.
Месяц вперёд платить не нужно. Оплата идёт по часам, и сутки на начальном тарифе стоят меньше стакана кофе: загрузили код, посмотрели, как работает, — не подошло, удалили сервер, и списания прекратились в тот же час.
Уже списанные часы деньгами обратно не возвращаются — поэтому мы и не просим платить за месяц, пока вы не убедились, что всё работает.
Бот работает у нас. Ваш домашний интернет, спящий ноутбук и закрытый браузер на него никак не влияют.
Пока сервер запущен, бот на связи круглосуточно — и ночью, и когда ему долго никто не пишет.
Если бот вылетел, мы запускаем его заново. А если он вылетает раз за разом, перезапуски прекращаются: так ошибка не останется незамеченной.
В панели открывается окно с его выводом: что поставилось, что запустилось и на чём бот остановился.
Файлы бота и его база (например, SQLite) лежат на диске сервера и переживают перезапуск.
Загружаете архив и вписываете токен — дальше сервер держит бота сам.
Переделывать бота под хостинг не нужно. Достаточно, чтобы было понятно, какой файл запускать и какие библиотеки ему нужны.

Те же файлы, что лежат у вас на компьютере. Рядом с ними обычно есть список библиотек: requirements.txt у Python, package.json у Node.js.
Она смотрит, на чём написан бот, и предлагает файл, с которого он начинается. Если подходящих файлов несколько — спросит вас, а не выберет молча.
«Файл запуска» — обычное поле в настройках сервера. Ошиблись — впишите другое имя. Загружать код заново не придётся.
Сохранённый токен не возвращается в форму настроек. Ваш код получает его через переменную окружения BOT_TOKEN.
Один раз вписали — и обратно в форму настроек он уже не возвращается. Даже вам.
Панель не подставляет токен в команду запуска. Не выводите BOT_TOKEN в логах своего приложения: эти сообщения попадут в консоль.
Код читает токен из BOT_TOKEN — вписывать его в файлы бота не нужно.
Сбросили токен в Developer Portal — впишите новый и перезапустите сервер.
Всё, что произойдёт с вашим кодом, написано в настройках сервера. Прочитать это можно ещё до первого запуска.
Готовый шаблон
requirements.txtpip install --user -r requirements.txtpython bot.pyГотовый шаблон
package.jsonnpm install --omit=devnode index.jsЕсли библиотеки уже лежат рядом с кодом, установку можно выключить переключателем — тогда бот стартует быстрее.
Мы берём их из вашего списка — requirements.txt или package.json. Отдельно указывать ничего не нужно.
Список неполный. Если вашей библиотеки здесь нет — ничего страшного, ставится она точно так же.
Библиотеки ставим по вашему списку — ни строки в коде менять не нужно.
Токен и права настраиваются в Discord Developer Portal, а не у нас.
OAuth2 → URL Generator: scope bot и, если нужны слэш-команды, applications.commands. Откройте ссылку и выберите свой сервер.
Message Content, Server Members и Presence включаются на вкладке Bot и должны совпадать с тем, что запрашивает ваш код. Без нужного intent бот запустится, но часть событий не получит.
Музыкальные и голосовые боты мы не обещаем: им обычно нужны ffmpeg и системные библиотеки.
VPS — это пустой сервер, который вы настраиваете и обслуживаете сами. Иногда именно так и надо. Ради одного бота — почти никогда.
Про цену честно. Хостинги для ботов дешевле нас есть. Разница в том, что происходит, когда бот не запускается: там вы получаете строку из вывода на английском, здесь — причину по-русски и прямой ответ, чинить её вам, в настройках или нам. Если ваш бот поднимается с первого раза и никогда не падает — берите, что дешевле. Мы сделаны для остальных случаев.
Бот всегда один и тот же — ваша программа. Меняется только то, что она делает.
Слэш-команды, роли, приветствия и порядок в сообществе.
События из внешних сервисов прямо в каналы.
В пределах возможностей вашего кода и выданных боту разрешений.
Вспомогательные боты: статистика, события, расписания.
Любой бот на discord.py, discord.js и других библиотеках.
Функциональность определяется вашим кодом; voln.io предоставляет среду для его работы.
Про запуск, ограничения и то, что делаем мы, а что придётся вам.
Да. Это хостинг готового бота: мы даём среду Python или Node.js, а что делает бот, определяет ваш код. Конструктора без кода здесь нет.
Да, если это обычный проект на Python или Node.js с файлом зависимостей. Откуда взялся код, значения не имеет — запускается он так же.
Python и Node.js. discord.py, py-cord, nextcord, disnake, discord.js и другие библиотеки ставятся из requirements.txt или package.json, как любые зависимости.
Нет. Бот работает на сервере и не зависит ни от вашего компьютера, ни от открытого браузера.
В Discord Developer Portal: Applications → ваше приложение → Bot → Reset Token. Токен вписывается в поле «Токен бота» в настройках сервера — в код его вшивать не нужно.
В Developer Portal откройте OAuth2 → URL Generator, отметьте scope bot (и applications.commands, если у бота слэш-команды), выберите только те права, которые ему нужны, и откройте ссылку. Права администратора по умолчанию давать не стоит.
Intents — разрешения на получение событий. Message Content, Server Members и Presence включаются в Developer Portal на вкладке Bot и должны совпадать с тем, что запрашивает ваш код. Без нужного intent бот запустится, но часть событий не получит.
Загрузите архив или файлы в файловом менеджере панели. При запуске зависимости ставятся из requirements.txt или package.json.
В консоли сервера: там сообщения установки зависимостей и вывод вашего приложения. Панель также показывает доступные диагностические сообщения о запуске.
Да, файлы проекта и локальная база SQLite сохраняются при обычном перезапуске. Это не резервная копия: важные данные стоит копировать отдельно.
Да, тариф меняется в панели сервера без повторной загрузки проекта.
Каждый бот — отдельный сервер со своим тарифом. Так один бот не мешает другому и перезапускается независимо.
Удалите сервер — начисления за него прекращаются. Остановка сервера начисления не прекращает: ресурсы остаются за вами.
Root-доступа и установки системных пакетов здесь нет. Проектам с ffmpeg, Chromium, Selenium или Playwright нужна другая конфигурация — например VPS.
Мы не обещаем их работу: голосу обычно нужны ffmpeg и системные библиотеки, а их установка здесь недоступна. Для такого бота нужна отдельная проверка или VPS.
Короткие инструкции — на случай, если первый запуск пошёл не так.
Загрузите архив, впишите токен и запустите сервер. Если хочется сначала почитать — инструкция рядом.