115 lines
3.5 KiB
Bash
115 lines
3.5 KiB
Bash
|
|
#!/bin/bash
|
|||
|
|
|
|||
|
|
# Matrix RSS Bot - Установочный скрипт
|
|||
|
|
# Использование: ./scripts/setup.sh
|
|||
|
|
|
|||
|
|
set -e
|
|||
|
|
|
|||
|
|
echo "====================================="
|
|||
|
|
echo "Matrix RSS Bot - Установка"
|
|||
|
|
echo "====================================="
|
|||
|
|
|
|||
|
|
# Проверка Python
|
|||
|
|
if ! command -v python3 &> /dev/null; then
|
|||
|
|
echo "❌ Python 3 не найден. Установите Python 3.8 или выше."
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
PYTHON_VERSION=$(python3 -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')
|
|||
|
|
if [[ "$PYTHON_VERSION" < "3.8" ]]; then
|
|||
|
|
echo "❌ Требуется Python 3.8 или выше. Установлена версия $PYTHON_VERSION"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
echo "✅ Python $PYTHON_VERSION найден"
|
|||
|
|
|
|||
|
|
# Создание виртуального окружения
|
|||
|
|
echo ""
|
|||
|
|
echo "📦 Создаю виртуальное окружение..."
|
|||
|
|
python3 -m venv venv
|
|||
|
|
source venv/bin/activate
|
|||
|
|
|
|||
|
|
# Установка зависимостей
|
|||
|
|
echo ""
|
|||
|
|
echo "📥 Устанавливаю зависимости..."
|
|||
|
|
pip install --upgrade pip
|
|||
|
|
pip install -r requirements.txt
|
|||
|
|
|
|||
|
|
# Создание структуры папок
|
|||
|
|
echo ""
|
|||
|
|
echo "📁 Создаю структуру папок..."
|
|||
|
|
mkdir -p data
|
|||
|
|
mkdir -p logs
|
|||
|
|
|
|||
|
|
# Копирование конфигов
|
|||
|
|
echo ""
|
|||
|
|
echo "⚙️ Настраиваю конфигурацию..."
|
|||
|
|
if [ ! -f config/config.yaml ]; then
|
|||
|
|
cp config/config.example.yaml config/config.yaml
|
|||
|
|
echo "✅ Создан config/config.yaml - отредактируйте его"
|
|||
|
|
else
|
|||
|
|
echo "⚠️ config/config.yaml уже существует"
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
if [ ! -f config/sources.yaml ]; then
|
|||
|
|
cp config/sources.example.yaml config/sources.yaml
|
|||
|
|
echo "✅ Создан config/sources.yaml - отредактируйте его"
|
|||
|
|
else
|
|||
|
|
echo "⚠️ config/sources.yaml уже существует"
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
# Установка systemd сервиса (опционально)
|
|||
|
|
echo ""
|
|||
|
|
echo "🛠️ Установить systemd сервис? (y/n)"
|
|||
|
|
read -r install_service
|
|||
|
|
|
|||
|
|
if [ "$install_service" = "y" ]; then
|
|||
|
|
CURRENT_DIR=$(pwd)
|
|||
|
|
USER=$(whoami)
|
|||
|
|
|
|||
|
|
cat > /tmp/matrix-rss-bot.service << EOF
|
|||
|
|
[Unit]
|
|||
|
|
Description=Matrix RSS Bot
|
|||
|
|
After=network.target
|
|||
|
|
|
|||
|
|
[Service]
|
|||
|
|
Type=simple
|
|||
|
|
User=$USER
|
|||
|
|
WorkingDirectory=$CURRENT_DIR
|
|||
|
|
Environment="PATH=$CURRENT_DIR/venv/bin"
|
|||
|
|
ExecStart=$CURRENT_DIR/venv/bin/python -m bot.main
|
|||
|
|
Restart=on-failure
|
|||
|
|
RestartSec=10
|
|||
|
|
|
|||
|
|
[Install]
|
|||
|
|
WantedBy=multi-user.target
|
|||
|
|
EOF
|
|||
|
|
|
|||
|
|
sudo mv /tmp/matrix-rss-bot.service /etc/systemd/system/
|
|||
|
|
sudo systemctl daemon-reload
|
|||
|
|
|
|||
|
|
echo "✅ systemd сервис установлен"
|
|||
|
|
echo ""
|
|||
|
|
echo "Команды управления:"
|
|||
|
|
echo " sudo systemctl start matrix-rss-bot # Запуск"
|
|||
|
|
echo " sudo systemctl stop matrix-rss-bot # Остановка"
|
|||
|
|
echo " sudo systemctl status matrix-rss-bot # Статус"
|
|||
|
|
echo " sudo journalctl -u matrix-rss-bot -f # Логи"
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
# Завершение
|
|||
|
|
echo ""
|
|||
|
|
echo "====================================="
|
|||
|
|
echo "✅ Установка завершена!"
|
|||
|
|
echo "====================================="
|
|||
|
|
echo ""
|
|||
|
|
echo "Следующие шаги:"
|
|||
|
|
echo "1. Отредактируйте config/config.yaml и введите свои настройки Matrix"
|
|||
|
|
echo "2. Отредактируйте config/sources.yaml и добавьте свои RSS источники"
|
|||
|
|
echo "3. Запустите бота:"
|
|||
|
|
echo " source venv/bin/activate"
|
|||
|
|
echo " python -m bot.main"
|
|||
|
|
echo ""
|
|||
|
|
if [ "$install_service" = "y" ]; then
|
|||
|
|
echo "Или через systemd: sudo systemctl start matrix-rss-bot"
|
|||
|
|
fi
|