#!/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 <" log_info "cd searchTorrentDownl" exit 1 fi } # Настройка переменных окружения setup_environment() { log_info "Настройка переменных окружения..." if [ ! -f ".env" ]; then log_info "Создание файла .env..." cat > .env </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 "$@"