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:
parent
a21654106b
commit
44c19e2b45
5 changed files with 293 additions and 6 deletions
129
UBUNTU_DEPLOYMENT.md
Normal file
129
UBUNTU_DEPLOYMENT.md
Normal file
|
|
@ -0,0 +1,129 @@
|
|||
# Ubuntu Deployment Guide
|
||||
|
||||
## Quick Start
|
||||
|
||||
Для запуска всех сервисов на Ubuntu 24 одной командой:
|
||||
|
||||
```bash
|
||||
cd /home/vrubel/PROJECTS/TorrentFilms/findFilms
|
||||
./start_ubuntu.sh
|
||||
```
|
||||
|
||||
## What the Script Does
|
||||
|
||||
Скрипт `start_ubuntu.sh` автоматически:
|
||||
|
||||
1. **Проверяет и устанавливает Docker** (если нужно)
|
||||
2. **Проверяет и устанавливает qBittorrent-nox** (если нужно)
|
||||
3. **Настраивает systemd сервис** для qBittorrent на порту 8082
|
||||
4. **Включает автозапуск** qBittorrent при загрузке системы
|
||||
5. **Создает Docker сеть** `torrentvideo_default`
|
||||
6. **Запускает все Docker контейнеры** с автоперезапуском
|
||||
|
||||
## Services
|
||||
|
||||
После запуска будут доступны:
|
||||
|
||||
- **Веб-интерфейс**: http://localhost:8089
|
||||
- **qBittorrent**: http://localhost:8082 (admin/vrubel07)
|
||||
- **Telegram Bot**: @your_bot_username
|
||||
|
||||
## Management
|
||||
|
||||
### Stop All Services
|
||||
```bash
|
||||
docker compose down
|
||||
sudo systemctl stop qbittorrent
|
||||
```
|
||||
|
||||
### View Logs
|
||||
```bash
|
||||
# Docker logs
|
||||
docker compose logs -f
|
||||
|
||||
# qBittorrent logs
|
||||
sudo journalctl -u qbittorrent -f
|
||||
```
|
||||
|
||||
### Restart All
|
||||
```bash
|
||||
sudo systemctl restart qbittorrent
|
||||
docker compose restart
|
||||
```
|
||||
|
||||
### Uninstall
|
||||
```bash
|
||||
docker compose down
|
||||
sudo systemctl disable qbittorrent
|
||||
sudo systemctl stop qbittorrent
|
||||
sudo rm /etc/systemd/system/qbittorrent.service
|
||||
sudo systemctl daemon-reload
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
### Environment Variables
|
||||
|
||||
Все переменные окружения заданы в `docker-compose.yml`:
|
||||
|
||||
- `TMDB_API_KEY`: API ключ TMDB
|
||||
- `TELEGRAM_BOT_TOKEN`: Токен Telegram бота
|
||||
- `QBITTORRENT_PORT`: 8082
|
||||
- `QBITTORRENT_HOST`: host.docker.internal
|
||||
- `QBITTORRENT_USERNAME`: admin
|
||||
- `QBITTORRENT_PASSWORD`: vrubel07
|
||||
|
||||
### Change qBittorrent Credentials
|
||||
|
||||
1. Откройте `docker-compose.yml`
|
||||
2. Измените `QBITTORRENT_PASSWORD`
|
||||
3. Перезапустите: `docker compose restart`
|
||||
|
||||
### Change Telegram Bot Token
|
||||
|
||||
1. Откройте `docker-compose.yml`
|
||||
2. Измените `TELEGRAM_BOT_TOKEN`
|
||||
3. Перезапустите: `docker compose restart telegram-bot`
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### qBittorrent не запускается
|
||||
|
||||
```bash
|
||||
# Проверка статуса
|
||||
sudo systemctl status qbittorrent
|
||||
|
||||
# Просмотр логов
|
||||
sudo journalctl -u qbittorrent -n 50
|
||||
|
||||
# Ручной запуск
|
||||
sudo -u qbittorrent /usr/bin/qbittorrent-nox --webui-port=8082
|
||||
```
|
||||
|
||||
### Docker контейнеры не запускаются
|
||||
|
||||
```bash
|
||||
# Проверка логов
|
||||
docker compose logs
|
||||
|
||||
# Пересборка
|
||||
docker compose up -d --build --force-recreate
|
||||
```
|
||||
|
||||
### Port Already in Use
|
||||
|
||||
```bash
|
||||
# Проверка занятых портов
|
||||
sudo lsof -i :8082
|
||||
sudo lsof -i :8089
|
||||
|
||||
# Остановка процесса
|
||||
sudo kill -9 <PID>
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- qBittorrent работает как systemd сервис с автозапуском
|
||||
- Все Docker контейнеры настроены на автоперезапуск
|
||||
- Используется `host.docker.internal` для доступа к qBittorrent из Docker
|
||||
|
||||
|
|
@ -41,11 +41,13 @@ services:
|
|||
environment:
|
||||
- USERNAME=admin
|
||||
- PASSWORD=vrubel07
|
||||
- PROXY_ADDRESS=172.17.0.1
|
||||
- PROXY_PORT=8080
|
||||
- PROXY_ADDRESS=host.docker.internal
|
||||
- PROXY_PORT=8082
|
||||
ports:
|
||||
- "8444:8443"
|
||||
restart: unless-stopped
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
networks:
|
||||
- torrentvideo_default
|
||||
- default
|
||||
|
|
@ -57,6 +59,7 @@ services:
|
|||
container_name: telegram-bot
|
||||
environment:
|
||||
- TMDB_API_KEY=6d58225585fb77af5945a964de41849f
|
||||
- TELEGRAM_BOT_TOKEN=7662650066:AAFgsfYJNYgpcSHaSe6fspsjqmhMkOBT1s4
|
||||
- TORRENT_SEARCH_URL=http://host.docker.internal:8443
|
||||
- TORRENT_ADD_URL=http://host.docker.internal:8088
|
||||
- QBITTORRENT_USERNAME=admin
|
||||
|
|
|
|||
|
|
@ -7,13 +7,13 @@ TMDB_API_KEY=your_tmdb_api_key_here
|
|||
|
||||
# 🤖 Telegram Bot Token
|
||||
# Получите у @BotFather в Telegram
|
||||
TELEGRAM_BOT_TOKEN=your_telegram_bot_token_here
|
||||
TELEGRAM_BOT_TOKEN=7662650066:AAFgsfYJNYgpcSHaSe6fspsjqmhMkOBT1s4
|
||||
|
||||
# 🐳 qBittorrent настройки
|
||||
QBITTORRENT_USERNAME=admin
|
||||
QBITTORRENT_PASSWORD=admin
|
||||
QBITTORRENT_HOST=host.docker.internal
|
||||
QBITTORRENT_PORT=8080
|
||||
QBITTORRENT_PORT=8082
|
||||
|
||||
# 🔍 TorAPI настройки
|
||||
TORRENT_SEARCH_URL=http://host.docker.internal:8443
|
||||
|
|
|
|||
155
start_ubuntu.sh
Executable file
155
start_ubuntu.sh
Executable 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 ""
|
||||
|
||||
|
|
@ -23,13 +23,13 @@ logging.basicConfig(
|
|||
logger = logging.getLogger(__name__)
|
||||
|
||||
# Конфигурация
|
||||
TELEGRAM_BOT_TOKEN = "7662650066:AAFgsfYJNYgpcSHaSe6fspsjqmhMkOBT1s4"
|
||||
TELEGRAM_BOT_TOKEN = os.getenv("TELEGRAM_BOT_TOKEN")
|
||||
TMDB_API_KEY = os.getenv("TMDB_API_KEY", "6d58225585fb77af5945a964de41849f")
|
||||
TMDB_BASE_URL = "https://api.themoviedb.org/3"
|
||||
TORRENT_SEARCH_URL = os.getenv("TORRENT_SEARCH_URL", "http://localhost:8443")
|
||||
TORRENT_ADD_URL = os.getenv("TORRENT_ADD_URL", "http://localhost:8444")
|
||||
QBITTORRENT_HOST = os.getenv("QBITTORRENT_HOST", "localhost")
|
||||
QBITTORRENT_PORT = os.getenv("QBITTORRENT_PORT", "8080")
|
||||
QBITTORRENT_PORT = os.getenv("QBITTORRENT_PORT", "8082")
|
||||
QBITTORRENT_USERNAME = os.getenv("QBITTORRENT_USERNAME", "admin")
|
||||
QBITTORRENT_PASSWORD = os.getenv("QBITTORRENT_PASSWORD", "vrubel07")
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue