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 |