findFilms/deploy.sh
vrubelroman 90ad38bca7 Очистка проекта и улучшение документации
- Удалены ненужные файлы: node_modules, package.json, package-lock.json, get_rutracker_cookie.js, __pycache__
- Создан скрипт автоматического развертывания deploy.sh
- Создан файл .gitignore для исключения временных файлов
- Создан env.example с примером конфигурации
- Полностью переписана документация README.md с подробными инструкциями
- Обновлен PROJECT_SUMMARY.md с инструкциями по развертыванию
- Проект готов к развертыванию на новом компьютере
2025-10-09 13:05:28 +03:00

263 lines
8.1 KiB
Bash
Executable file
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# 🚀 Скрипт развертывания searchTorrentDownl на новом компьютере
# Автор: AI Assistant
# Версия: 1.0
set -e # Остановка при ошибке
echo "🎬 searchTorrentDownl - Скрипт развертывания"
echo "=============================================="
echo ""
# Цвета для вывода
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Функция для вывода сообщений
log_info() {
echo -e "${BLUE} $1${NC}"
}
log_success() {
echo -e "${GREEN}$1${NC}"
}
log_warning() {
echo -e "${YELLOW}⚠️ $1${NC}"
}
log_error() {
echo -e "${RED}$1${NC}"
}
# Проверка операционной системы
check_os() {
log_info "Проверка операционной системы..."
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
log_success "Linux обнаружен"
else
log_error "Этот скрипт предназначен для Linux. Обнаружена ОС: $OSTYPE"
exit 1
fi
}
# Проверка прав root
check_root() {
if [[ $EUID -eq 0 ]]; then
log_warning "Скрипт запущен от root. Рекомендуется запускать от обычного пользователя."
read -p "Продолжить? (y/N): " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
exit 1
fi
fi
}
# Обновление системы
update_system() {
log_info "Обновление системы..."
sudo apt update && sudo apt upgrade -y
log_success "Система обновлена"
}
# Установка Docker
install_docker() {
log_info "Проверка Docker..."
if command -v docker &> /dev/null; then
log_success "Docker уже установлен"
else
log_info "Установка Docker..."
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
rm get-docker.sh
log_success "Docker установлен"
fi
# Проверка Docker Compose
if command -v docker-compose &> /dev/null; then
log_success "Docker Compose уже установлен"
else
log_info "Установка Docker Compose..."
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
log_success "Docker Compose установлен"
fi
}
# Установка qBittorrent
install_qbittorrent() {
log_info "Проверка qBittorrent..."
if command -v qbittorrent-nox &> /dev/null; then
log_success "qBittorrent уже установлен"
else
log_info "Установка qBittorrent-nox..."
sudo apt install -y qbittorrent-nox
log_success "qBittorrent установлен"
fi
}
# Настройка qBittorrent
setup_qbittorrent() {
log_info "Настройка qBittorrent..."
# Создание пользователя qbittorrent если не существует
if ! id "qbittorrent" &>/dev/null; then
sudo useradd -r -s /bin/false qbittorrent
fi
# Создание директории для конфигурации
sudo mkdir -p /home/qbittorrent/.config/qBittorrent
sudo chown -R qbittorrent:qbittorrent /home/qbittorrent
# Создание systemd сервиса
sudo tee /etc/systemd/system/qbittorrent.service > /dev/null <<EOF
[Unit]
Description=qBittorrent-nox
After=network.target
[Service]
Type=simple
User=qbittorrent
Group=qbittorrent
ExecStart=/usr/bin/qbittorrent-nox --webui-port=8080
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
# Перезагрузка systemd и запуск сервиса
sudo systemctl daemon-reload
sudo systemctl enable qbittorrent
sudo systemctl start qbittorrent
log_success "qBittorrent настроен и запущен"
log_info "Веб-интерфейс: http://localhost:8080"
log_info "Логин по умолчанию: admin / admin"
}
# Создание Docker сети
create_docker_network() {
log_info "Создание Docker сети..."
if docker network ls | grep -q "torrentvideo_default"; then
log_success "Сеть torrentvideo_default уже существует"
else
docker network create torrentvideo_default
log_success "Сеть torrentvideo_default создана"
fi
}
# Клонирование репозитория
clone_repository() {
if [ -f "app.py" ]; then
log_success "Проект уже находится в текущей директории"
else
log_error "Проект не найден в текущей директории"
log_info "Пожалуйста, клонируйте репозиторий:"
log_info "git clone <repository-url>"
log_info "cd searchTorrentDownl"
exit 1
fi
}
# Настройка переменных окружения
setup_environment() {
log_info "Настройка переменных окружения..."
if [ ! -f ".env" ]; then
log_info "Создание файла .env..."
cat > .env <<EOF
# TMDB API Key (получите на https://www.themoviedb.org/settings/api)
TMDB_API_KEY=your_tmdb_api_key_here
# Telegram Bot Token (получите у @BotFather)
TELEGRAM_BOT_TOKEN=your_telegram_bot_token_here
# qBittorrent настройки
QBITTORRENT_USERNAME=admin
QBITTORRENT_PASSWORD=admin
QBITTORRENT_HOST=host.docker.internal
QBITTORRENT_PORT=8080
# TorAPI настройки
TORRENT_SEARCH_URL=http://host.docker.internal:8443
TORRENT_ADD_URL=http://host.docker.internal:8088
EOF
log_warning "Файл .env создан. Пожалуйста, отредактируйте его с вашими настройками!"
else
log_success "Файл .env уже существует"
fi
}
# Запуск сервисов
start_services() {
log_info "Запуск сервисов..."
# Остановка существующих контейнеров
docker compose down 2>/dev/null || true
# Сборка и запуск
docker compose up -d --build
log_success "Сервисы запущены"
}
# Проверка статуса
check_status() {
log_info "Проверка статуса сервисов..."
echo ""
echo "📊 Статус контейнеров:"
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
echo ""
echo "🌐 Доступные сервисы:"
echo " • Веб-интерфейс: http://localhost:8089"
echo " • qBittorrent: http://localhost:8080 (admin/admin)"
echo " • Telegram Bot: @your_bot_username (команда /start)"
echo ""
echo "📝 Следующие шаги:"
echo " 1. Откройте http://localhost:8080 и настройте qBittorrent"
echo " 2. Отредактируйте .env файл с вашими API ключами"
echo " 3. Перезапустите сервисы: docker compose restart"
echo " 4. Откройте http://localhost:8089 для тестирования"
}
# Основная функция
main() {
echo "🚀 Начинаем развертывание searchTorrentDownl..."
echo ""
check_os
check_root
update_system
install_docker
install_qbittorrent
setup_qbittorrent
create_docker_network
clone_repository
setup_environment
start_services
check_status
echo ""
log_success "🎉 Развертывание завершено успешно!"
echo ""
log_info "Для остановки сервисов: docker compose down"
log_info "Для просмотра логов: docker compose logs -f"
log_info "Для перезапуска: docker compose restart"
}
# Запуск
main "$@"