Страница 1 из 1

Телеграмм бот

Добавлено: 01 май 2026, 06:54
ya
Настройка сервера на Debian для Telegram-бота — это отличный выбор: система стабильная, легкая и надежная. Чтобы ваш бот работал 24/7, мы пройдем путь от базовой настройки ОС до запуска фонового процесса.

---

## 1. Подготовка системы
Первым делом обновите пакеты и установите базовые утилиты.

```bash
sudo apt update && sudo apt upgrade -y
sudo apt install curl git python3 python3-pip python3-venv -y
```

---

## 2. Изоляция окружения (Best Practice)
Не стоит устанавливать библиотеки бота прямо в систему. Используйте **Virtual Environment (venv)**, чтобы избежать конфликтов версий.

1. Создайте папку для бота: `mkdir my_bot && cd my_bot`
2. Создайте виртуальное окружение: `python3 -m venv venv`
3. Активируйте его:
```bash
source venv/bin/activate
```
4. Установите нужную библиотеку (например, `aiogram` или `python-telegram-bot`):
```bash
pip install aiogram
```

---

## 3. Загрузка кода
Если ваш код на GitHub, просто клонируйте репозиторий. Если на компьютере — используйте **SCP** или **SFTP** (через FileZilla или Termius).

> **Важно:** Никогда не храните токен бота прямо в коде. Используйте переменные окружения или `.env` файл.

---

## 4. Автозапуск 24/7 (Systemd)
Чтобы бот не выключался после закрытия терминала и автоматически поднимался после перезагрузки сервера, используйте системный менеджер **systemd**.

1. Создайте файл службы:
```bash
sudo nano /etc/systemd/system/tgbot.service
```
2. Вставьте туда следующий конфиг (замените пути на свои):
```ini
[Unit]
Description=Telegram Bot Service
After=network.target

[Service]
User=root
WorkingDirectory=/root/my_bot
ExecStart=/root/my_bot/venv/bin/python main.py
Restart=always

[Install]
WantedBy=multi-user.target
```
3. Запустите службу:
```bash
sudo systemctl daemon-reload
sudo systemctl enable tgbot
sudo systemctl start tgbot
```

---

## 5. Полезные инструменты

### Логирование
Чтобы посмотреть, что происходит с ботом (или почему он упал), используйте команду:
`journalctl -u tgbot.service -f`

### Альтернатива: PM2
Если вам привычнее работать с Node.js инструментами, можно использовать **PM2**. Он отлично управляет и Python-процессами:
```bash
sudo apt install nodejs npm -y
sudo npm install pm2 -g
pm2 start main.py --interpreter python3
pm2 save
pm2 startup
```

## Краткий чек-лист безопасности
* **SSH:** Отключите вход по паролю и используйте SSH-ключи.
* **Firewall:** Если бот работает на `long polling`, закройте все входящие порты, кроме 22 (SSH). Если используете `webhooks`, откройте порт 443 или 8443.
* **Обновления:** Настройте `unattended-upgrades`, чтобы сервер сам получал патчи безопасности.

На каком языке написан ваш бот и используете ли вы Webhooks или Long Polling?