Обновлен README.md с инструкциями по установке и управлению ботом, добавлен скрипт установки и обновлен .gitignore для исключения .python-version.
This commit is contained in:
@@ -175,3 +175,4 @@ cython_debug/
|
|||||||
.pypirc
|
.pypirc
|
||||||
|
|
||||||
uv.lock
|
uv.lock
|
||||||
|
.python-version
|
||||||
@@ -1,2 +1,63 @@
|
|||||||
# ServerBot
|
# Server Bot Python
|
||||||
|
|
||||||
|
## Описание
|
||||||
|
|
||||||
|
Этот проект — Python-бот, который можно быстро развернуть на сервере с помощью systemd и скрипта автодеплоя.
|
||||||
|
|
||||||
|
## Быстрый старт
|
||||||
|
|
||||||
|
### 1. Клонируйте репозиторий на сервер
|
||||||
|
|
||||||
|
```
|
||||||
|
git clone <URL_РЕПОЗИТОРИЯ>
|
||||||
|
cd server-bot-python
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Запустите скрипт установки
|
||||||
|
|
||||||
|
```
|
||||||
|
chmod +x install.sh
|
||||||
|
./install.sh --token <ВАШ_ТОКЕН> --user_id <ВАШ_ID>
|
||||||
|
```
|
||||||
|
|
||||||
|
- Скрипт скопирует проект в `/opt/server-bot-python`, установит зависимости и создаст systemd-сервис.
|
||||||
|
- После установки бот будет автоматически запускаться и перезапускаться при сбоях.
|
||||||
|
|
||||||
|
### 3. Управление сервисом
|
||||||
|
|
||||||
|
- Перезапустить:
|
||||||
|
```
|
||||||
|
sudo systemctl restart server-bot-python
|
||||||
|
```
|
||||||
|
- Посмотреть логи:
|
||||||
|
```
|
||||||
|
sudo journalctl -u server-bot-python -f
|
||||||
|
```
|
||||||
|
- Остановить:
|
||||||
|
```
|
||||||
|
sudo systemctl stop server-bot-python
|
||||||
|
```
|
||||||
|
|
||||||
|
## Ручная настройка systemd (опционально)
|
||||||
|
|
||||||
|
Пример unit-файла: `server-bot-python.service.example`
|
||||||
|
|
||||||
|
## Требования
|
||||||
|
- Python 3.8+
|
||||||
|
- pip
|
||||||
|
- systemd (Linux)
|
||||||
|
|
||||||
|
## Переменные запуска
|
||||||
|
- `--token` — токен для авторизации
|
||||||
|
- `--user_id` — ID пользователя
|
||||||
|
|
||||||
|
## Структура проекта
|
||||||
|
|
||||||
|
- `src/` — исходный код бота
|
||||||
|
- `install.sh` — скрипт автодеплоя
|
||||||
|
- `requirements.txt` — зависимости
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Вопросы и предложения:** создавайте issue или pull request.
|
||||||
|
|
||||||
|
|||||||
+72
@@ -0,0 +1,72 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Пример использования: ./install.sh --token <TOKEN> --user_id <USER_ID>
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Парсинг аргументов
|
||||||
|
while [[ "$#" -gt 0 ]]; do
|
||||||
|
case $1 in
|
||||||
|
--token)
|
||||||
|
TOKEN="$2"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
--user_id)
|
||||||
|
USER_ID="$2"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Неизвестный параметр $1"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ -z "$TOKEN" || -z "$USER_ID" ]]; then
|
||||||
|
echo "Использование: $0 --token <TOKEN> --user_id <USER_ID>"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Папка для деплоя
|
||||||
|
DEPLOY_DIR="/opt/server-bot-python"
|
||||||
|
|
||||||
|
# Копируем проект
|
||||||
|
sudo mkdir -p "$DEPLOY_DIR"
|
||||||
|
sudo rsync -a --exclude='.git' --exclude='__pycache__' ./ "$DEPLOY_DIR"/
|
||||||
|
|
||||||
|
# Установка зависимостей
|
||||||
|
VENV_DIR="$DEPLOY_DIR/venv"
|
||||||
|
|
||||||
|
# Создание виртуального окружения, если не существует
|
||||||
|
if [[ ! -d "$VENV_DIR" ]]; then
|
||||||
|
sudo python3 -m venv "$VENV_DIR"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Установка зависимостей в venv
|
||||||
|
sudo "$VENV_DIR/bin/pip" install --upgrade pip
|
||||||
|
sudo "$VENV_DIR/bin/pip" install -r "$DEPLOY_DIR/requirements.txt"
|
||||||
|
|
||||||
|
# Создание systemd unit-файла
|
||||||
|
SERVICE_FILE="/etc/systemd/system/server-bot-python.service"
|
||||||
|
|
||||||
|
sudo bash -c "cat > $SERVICE_FILE" <<EOL
|
||||||
|
[Unit]
|
||||||
|
Description=Server Bot Python
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
WorkingDirectory=$DEPLOY_DIR
|
||||||
|
ExecStart=$VENV_DIR/bin/python $DEPLOY_DIR/src/main.py --token $TOKEN --user_id $USER_ID
|
||||||
|
Restart=always
|
||||||
|
User=$(whoami)
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOL
|
||||||
|
|
||||||
|
# Перезапуск сервиса
|
||||||
|
sudo systemctl daemon-reload
|
||||||
|
sudo systemctl enable server-bot-python.service
|
||||||
|
sudo systemctl restart server-bot-python.service
|
||||||
|
|
||||||
|
echo "Деплой и запуск завершены. Логи: sudo journalctl -u server-bot-python -f"
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
python-dotenv
|
python-dotenv
|
||||||
psutil
|
psutil
|
||||||
aiogram
|
aiogram
|
||||||
|
pydantic-settings
|
||||||
Reference in New Issue
Block a user