Хостинг Telegram/Discord-бота на VDS
VDS идеально подходит для хостинга ботов: сервер работает круглосуточно, а бот остаётся онлайн независимо от вашего компьютера. Разберём полный путь от подготовки сервера до запуска бота как службы.
Подготовка сервера
Заголовок раздела «Подготовка сервера»Обновите систему:
apt update && apt upgrade -yУстановите рантайм под ваш язык.
Node.js (актуальная LTS через репозиторий NodeSource):
curl -fsSL https://deb.nodesource.com/setup_lts.x | bash -apt install -y nodejsnode --versionPython 3 с виртуальным окружением:
apt install -y python3 python3-venv python3-pipЗагрузка кода
Заголовок раздела «Загрузка кода»Перенесите код бота на сервер — например, в /opt/mybot. Способы описаны в разделе Перенос файлов на VDS. Также можно склонировать репозиторий:
apt install -y gitgit clone https://github.com/user/mybot.git /opt/mybotcd /opt/mybotУстановка зависимостей
Заголовок раздела «Установка зависимостей»Для Node.js:
cd /opt/mybotnpm installДля Python (внутри venv):
cd /opt/mybotpython3 -m venv venvsource venv/bin/activatepip install -r requirements.txtХранение токена
Заголовок раздела «Хранение токена»Пример .env:
BOT_TOKEN=123456:ABC-DEF...Запуск как службы systemd
Заголовок раздела «Запуск как службы systemd»Чтобы бот работал 24/7 и автоматически перезапускался после падения или ребута сервера, оформите его как службу systemd. Создайте /etc/systemd/system/mybot.service:
[Unit]Description=My BotAfter=network.target
[Service]Type=simpleWorkingDirectory=/opt/mybotExecStart=/usr/bin/node /opt/mybot/index.jsEnvironmentFile=/opt/mybot/.envRestart=alwaysRestartSec=5
[Install]WantedBy=multi-user.targetАктивируйте:
systemctl daemon-reloadsystemctl enable --now mybotsystemctl status mybotПодробнее об unit-файлах — Автозапуск приложения (systemd).
journalctl -u mybot -f