Этот документ написан так, чтобы даже человек без опыта в Linux смог запустить проект.
Бот для групп Telegram, который:
- фильтрует запрещённые слова,
- требует капчу для новых пользователей,
- ведёт логи нарушений,
- хранит настройки каждой группы в базе данных,
- работает на
Aiogram 3 + Async SQLAlchemy, - поддерживает запуск как systemd‑служба.
Минимально:
- Linux (рекомендовано: Ubuntu/Debian/Mint)
- RAM: 256 MB+
- Python ≥ 3.10
- Интернет
- Доступ к Telegram API
python3 --versionЕсли Python <3.10 — ставим:
sudo apt update
sudo apt install python3 python3-venv python3-pip -yПроверяем снова:
python3 --versiongit clone https://github.com/memgraal/Admin-Telegram-Bot.git
cd Anti-Spam-BotВ проекте есть шаблон:
.env.template
Создаём реальный файл:
cp .env.template .envОткрываем для заполнения:
nano .envЗаполняем:
BOT_TOKEN=ваш_токен_бота
DB_URL=sqlite+aiosqlite:///database.dbСохранение в nano:
CTRL + O → ENTER → CTRL + X
python3 -m venv .venv
source .venv/bin/activateПроверяем:
which pythonpip install --upgrade pip wheel
pip install -r requirements.txtsource .venv/bin/activate
python main.pyЕсли бот не упал — отлично.
sudo nano /etc/systemd/system/telegram-bot.serviceВставляем:
[Unit]
Description=Telegram Anti-Spam Bot
After=network.target
[Service]
Type=simple
User=%i
WorkingDirectory=/home/%i/Anti-Spam-Bot
Environment="BOT_ENV=production"
ExecStart=/home/%i/Anti-Spam-Bot/.venv/bin/python main.py
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
%iзаменяем на имя пользователя
sudo systemctl daemon-reload
sudo systemctl enable telegram-bot
sudo systemctl start telegram-botsystemctl status telegram-botjournalctl -u telegram-bot -fcd Anti-Spam-Bot
git pull
source .venv/bin/activate
pip install -r requirements.txt
sudo systemctl restart telegram-botjournalctl --vacuum-size=50MПосле выполнения всех шагов бот: ✔ работает в фоне ✔ перезапускается при ошибках ✔ не требует ручного запуска ✔ переживает обновления системы ✔ стартует после ребута сервера