diff --git a/.gitignore b/.gitignore index a8619ae..4af096e 100644 --- a/.gitignore +++ b/.gitignore @@ -175,3 +175,4 @@ cython_debug/ .pypirc uv.lock +.python-version \ No newline at end of file diff --git a/README.md b/README.md index 8b2c153..f215874 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,63 @@ -# ServerBot +# Server Bot Python + +## Описание + +Этот проект — Python-бот, который можно быстро развернуть на сервере с помощью systemd и скрипта автодеплоя. + +## Быстрый старт + +### 1. Клонируйте репозиторий на сервер + +``` +git clone +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. diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..9444fd4 --- /dev/null +++ b/install.sh @@ -0,0 +1,72 @@ +#!/bin/bash +# Пример использования: ./install.sh --token --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 --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" <