feat: Ubuntu single-command deployment

- Fixed qBittorrent port configuration: 8080 → 8082
- Updated docker-compose.yml: TorAPI-qBittorrent uses host.docker.internal
- Moved TELEGRAM_BOT_TOKEN to environment variables
- Created start_ubuntu.sh for automated deployment
- Added qBittorrent systemd service with autostart
- Updated env.example with correct port (8082)
- Added UBUNTU_DEPLOYMENT.md documentation

All services now start with: ./start_ubuntu.sh
This commit is contained in:
vrubelroman 2025-10-27 23:52:27 +03:00
parent a21654106b
commit 44c19e2b45
5 changed files with 293 additions and 6 deletions

155
start_ubuntu.sh Executable file
View file

@ -0,0 +1,155 @@
#!/bin/bash
# Скрипт для запуска всех сервисов findFilms на Ubuntu
# Устанавливает qBittorrent, настраивает systemd и запускает Docker контейнеры
set -e # Остановка при ошибке
echo "🚀 Запуск findFilms для Ubuntu"
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}"
}
# Проверка директории
if [ ! -f "app.py" ]; then
log_error "Запустите скрипт из директории проекта findFilms"
exit 1
fi
# Шаг 1: Проверка и установка Docker
log_info "Проверка Docker..."
if ! command -v docker &> /dev/null; then
log_warning "Docker не найден, установка 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 установлен"
log_warning "Перезапустите терминал или выполните: newgrp docker"
exit 0
else
log_success "Docker найден"
fi
# Проверка Docker Compose
if ! command -v docker compose &> /dev/null; then
log_warning "Docker Compose не найден, установка..."
sudo apt-get update
sudo apt-get install -y docker-compose-plugin
log_success "Docker Compose установлен"
fi
# Шаг 2: Установка qBittorrent
log_info "Проверка qBittorrent..."
if ! command -v qbittorrent-nox &> /dev/null; then
log_warning "qBittorrent не найден, установка..."
sudo apt-get update
sudo apt-get install -y qbittorrent-nox
log_success "qBittorrent установлен"
else
log_success "qBittorrent найден"
fi
# Шаг 3: Настройка systemd сервиса для qBittorrent
log_info "Настройка qBittorrent systemd сервиса..."
# Создание пользователя qbittorrent если не существует
if ! id "qbittorrent" &>/dev/null; then
sudo useradd -r -s /bin/false qbittorrent
log_info "Создан пользователь qbittorrent"
fi
# Создание 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=8082
Restart=always
RestartSec=5
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
EOF
log_success "qBittorrent systemd сервис настроен"
# Перезагрузка systemd и запуск сервиса
sudo systemctl daemon-reload
sudo systemctl enable qbittorrent
sudo systemctl restart qbittorrent
log_success "qBittorrent запущен и настроен на автозапуск"
log_info "Веб-интерфейс: http://localhost:8082"
log_info "Логин: admin / vrubel07"
# Шаг 4: Создание Docker сети
log_info "Создание Docker сети..."
if ! docker network ls | grep -q "torrentvideo_default"; then
docker network create torrentvideo_default
log_success "Сеть torrentvideo_default создана"
else
log_success "Сеть torrentvideo_default уже существует"
fi
# Шаг 5: Остановка существующих контейнеров
log_info "Остановка существующих контейнеров..."
docker compose down 2>/dev/null || true
# Шаг 6: Запуск Docker сервисов
log_info "Запуск Docker сервисов..."
docker compose up -d --build
# Ждем немного для старта
sleep 5
# Проверка статуса
log_info "Проверка статуса сервисов..."
echo ""
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" | grep -E "(NAMES|movie-search|TorAPI|telegram-bot)" || true
echo ""
log_success "🎉 Все сервисы запущены!"
echo ""
echo "📱 Доступные интерфейсы:"
echo " • Веб-интерфейс: http://localhost:8089"
echo " • qBittorrent: http://localhost:8082 (admin/vrubel07)"
echo " • Telegram Bot: @your_bot_username"
echo ""
echo "🔧 Управление:"
echo " • Остановить Docker: docker compose down"
echo " • Остановить qBittorrent: sudo systemctl stop qbittorrent"
echo " • Перезапустить все: sudo systemctl restart qbittorrent && docker compose restart"
echo " • Логи Docker: docker compose logs -f"
echo " • Логи qBittorrent: sudo journalctl -u qbittorrent -f"
echo ""