Перейти к содержимому

Хостинг 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 nodejs
node --version

Python 3 с виртуальным окружением:

Окно терминала
apt install -y python3 python3-venv python3-pip

Перенесите код бота на сервер — например, в /opt/mybot. Способы описаны в разделе Перенос файлов на VDS. Также можно склонировать репозиторий:

Окно терминала
apt install -y git
git clone https://github.com/user/mybot.git /opt/mybot
cd /opt/mybot

Для Node.js:

Окно терминала
cd /opt/mybot
npm install

Для Python (внутри venv):

Окно терминала
cd /opt/mybot
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Пример .env:

BOT_TOKEN=123456:ABC-DEF...

Чтобы бот работал 24/7 и автоматически перезапускался после падения или ребута сервера, оформите его как службу systemd. Создайте /etc/systemd/system/mybot.service:

[Unit]
Description=My Bot
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/mybot
ExecStart=/usr/bin/node /opt/mybot/index.js
EnvironmentFile=/opt/mybot/.env
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target

Активируйте:

Окно терминала
systemctl daemon-reload
systemctl enable --now mybot
systemctl status mybot

Подробнее об unit-файлах — Автозапуск приложения (systemd).

Окно терминала
journalctl -u mybot -f