Инструкции

Как держать бота или скрипт онлайн 24/7

Запуск процесса в фоне: systemd, Docker, screen.

На домашнем ПК скрипт или бот выключится вместе с компьютером. Для круглосуточной работы нужен сервер (VPS) и запуск в фоне.

Вариант 1: systemd (рекомендуется на VPS)

Создайте файл /etc/systemd/system/mybot.service:

[Unit]
Description=Telegram Bot
After=network.target

[Service]
Type=simple
User=deploy
WorkingDirectory=/opt/mybot
Environment="PATH=/opt/mybot/.venv/bin"
ExecStart=/opt/mybot/.venv/bin/python bot.py
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

Дальше:

sudo systemctl daemon-reload
sudo systemctl enable mybot
sudo systemctl start mybot
sudo systemctl status mybot

Логи: journalctl -u mybot -f.

Вариант 2: Docker

Соберите образ с ботом/скриптом и запускайте контейнер с restart: unless-stoppeddocker-compose.yml или docker run). При падении контейнер перезапустится.

Вариант 3: screen / tmux (просто, но без автозапуска)

screen -S bot
cd /opt/mybot && source .venv/bin/activate && python bot.py
# Отключиться: Ctrl+A, затем D
# Вернуться: screen -r bot

Если сервер перезагрузится, процесс не поднимется сам — нужен systemd или Docker.

Итог

  • VPS + systemd — надёжно, автозапуск, удобные логи.
  • Docker — изоляция, единый способ деплоя с другими сервисами.
  • screen — быстро для теста, не для продакшена.

Обсудить задачу

Опишите задачу — предложу решение и ориентир по срокам.