472 lines
13 KiB
Markdown
472 lines
13 KiB
Markdown
# Установка qBittorrent на OpenMediaVault 8.5.9-1 (Synchrony)
|
||
|
||
> **Система:** OMV 8.5.9-1 (Synchrony) / Debian 13 Trixie
|
||
> **Дата:** октябрь 2026
|
||
> **Два варианта:** нативный пакет (apt) — проще, или Docker-контейнер — изолированно
|
||
|
||
---
|
||
|
||
## Содержание
|
||
|
||
1. [Вариант A: Нативная установка (qbittorrent-nox)](#вариант-a-нативная-установка-qbittorrent-nox)
|
||
2. [Вариант B: Установка через Docker (рекомендуется)](#вариант-b-установка-через-docker-рекомендуется)
|
||
3. [Первый вход и настройка](#первый-вход-и-настройка)
|
||
4. [Интеграция с OMV — shared folders](#интеграция-с-omv--shared-folders)
|
||
5. [Безопасность](#безопасность)
|
||
6. [Обновление](#обновление)
|
||
7. [Troubleshooting](#troubleshooting)
|
||
|
||
---
|
||
|
||
## Вариант A: Нативная установка (qbittorrent-nox)
|
||
|
||
Самый простой способ — без Docker. qBittorrent есть в репозиториях Debian 13.
|
||
|
||
```bash
|
||
# 1. Установка
|
||
apt update
|
||
apt install -y qbittorrent-nox
|
||
|
||
# 2. Создаём пользователя (не запускать от root!)
|
||
adduser --system --group --home /var/lib/qbittorrent qbittorrent
|
||
|
||
# 3. Структура каталогов
|
||
mkdir -p /srv/qbittorrent/{config,downloads,torrents}
|
||
chown -R qbittorrent:qbittorrent /srv/qbittorrent
|
||
|
||
# 4. Первый запуск — создаст конфиг
|
||
su -s /bin/bash qbittorrent -c 'qbittorrent-nox --profile=/srv/qbittorrent/config' &
|
||
sleep 5
|
||
pkill qbittorrent-nox
|
||
```
|
||
|
||
Теперь правим конфиг:
|
||
|
||
```bash
|
||
nano /srv/qbittorrent/config/qBittorrent/qBittorrent.conf
|
||
```
|
||
|
||
Минимальные настройки:
|
||
|
||
```ini
|
||
[LegalNotice]
|
||
Accepted=true
|
||
|
||
[Preferences]
|
||
Connection\PortRangeMin=6881
|
||
Connection\DHTEnabled=true
|
||
Connection\PeXEnabled=true
|
||
Connection\UPnPEnabled=false
|
||
Connection\ListenPort=6881
|
||
|
||
[BitTorrent]
|
||
Session\DefaultSavePath=/srv/qbittorrent/downloads
|
||
Session\TempPath=/srv/qbittorrent/torrents
|
||
Session\TempPathEnabled=true
|
||
Session\Port=6881
|
||
|
||
[WebUI]
|
||
WebUI\Port=8080
|
||
WebUI\Address=0.0.0.0
|
||
WebUI\UseUPnP=false
|
||
WebUI\Server\Enabled=true
|
||
WebUI\Server\Host=0.0.0.0
|
||
WebUI\Server\Port=8080
|
||
WebUI\CSRFProtection=true
|
||
WebUI\ClickjackingProtection=true
|
||
WebUI\HostHeaderValidation=false
|
||
```
|
||
|
||
**Systemd-сервис:**
|
||
|
||
```bash
|
||
cat > /etc/systemd/system/qbittorrent-nox.service << 'SERVICE'
|
||
[Unit]
|
||
Description=qBittorrent-nox (headless)
|
||
After=network.target
|
||
|
||
[Service]
|
||
Type=simple
|
||
User=qbittorrent
|
||
Group=qbittorrent
|
||
ExecStart=/usr/bin/qbittorrent-nox --profile=/srv/qbittorrent/config
|
||
Restart=on-failure
|
||
RestartSec=10
|
||
LimitNOFILE=65536
|
||
|
||
[Install]
|
||
WantedBy=multi-user.target
|
||
SERVICE
|
||
|
||
systemctl daemon-reload
|
||
systemctl enable --now qbittorrent-nox
|
||
```
|
||
|
||
Проверка:
|
||
|
||
```bash
|
||
systemctl status qbittorrent-nox
|
||
journalctl -u qbittorrent-nox -n 20
|
||
```
|
||
|
||
Веб-интерфейс: `http://192.168.1.73:8080`
|
||
Логин: `admin`, пароль — смотреть в логе:
|
||
|
||
```bash
|
||
journalctl -u qbittorrent-nox | grep -i password
|
||
```
|
||
|
||
---
|
||
|
||
## Вариант B: Установка через Docker (рекомендуется)
|
||
|
||
Изоляция от системы, лёгкое обновление, проброс портов, отсутствие конфликтов зависимостей.
|
||
|
||
### Шаг 1. Установка Docker (если ещё не установлен)
|
||
|
||
**1.1. Установка omv-extras (плагин OMV)**
|
||
|
||
Через веб-интерфейс:
|
||
|
||
> **System → Plugins** → установить `openmediavault-omvextrasorg`
|
||
|
||
Или через CLI (если плагина нет в списке):
|
||
|
||
```bash
|
||
wget -4 -q --timeout=30 -O /tmp/omvextras.deb \
|
||
'https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/openmediavault-omvextrasorg_latest_all8.deb'
|
||
dpkg -i /tmp/omvextras.deb
|
||
apt-get install -f -y
|
||
```
|
||
|
||
**1.2. Установка Docker CE**
|
||
|
||
Через веб: **System → omv-extras → Docker CE → Save → Apply**
|
||
|
||
Или вручную:
|
||
|
||
```bash
|
||
# Добавить репозиторий Docker
|
||
apt update && apt install -y ca-certificates curl gnupg
|
||
install -m 0755 -d /etc/apt/keyrings
|
||
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
|
||
chmod a+r /etc/apt/keyrings/docker.asc
|
||
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian trixie stable" \
|
||
> /etc/apt/sources.list.d/docker.list
|
||
|
||
apt update && apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||
systemctl enable --now docker
|
||
```
|
||
|
||
**1.3. Добавить пользователя OMV (admin) в группу docker** (чтобы не писать sudo):
|
||
|
||
```bash
|
||
usermod -aG docker $(whoami)
|
||
# выйти и зайти заново
|
||
```
|
||
|
||
### Шаг 2. Структура каталогов
|
||
|
||
```bash
|
||
# Основная директория для Docker-стеков
|
||
mkdir -p /srv/docker/qbittorrent/{config,downloads,torrents,watch}
|
||
```
|
||
|
||
Если на OVM есть данные шары (например, `/shared/Downloads`), можно смонтировать их напрямую:
|
||
|
||
```bash
|
||
mkdir -p /srv/docker/qbittorrent/downloads
|
||
# Или сделать симлинк:
|
||
ln -s /shared/Downloads /srv/docker/qbittorrent/downloads
|
||
```
|
||
|
||
### Шаг 3. Docker Compose файл
|
||
|
||
```bash
|
||
mkdir -p /srv/docker/qbittorrent
|
||
nano /srv/docker/qbittorrent/docker-compose.yml
|
||
```
|
||
|
||
```yaml
|
||
services:
|
||
qbittorrent:
|
||
image: lscr.io/linuxserver/qbittorrent:latest
|
||
container_name: qbittorrent
|
||
restart: unless-stopped
|
||
ports:
|
||
- "8080:8080" # Веб-интерфейс
|
||
- "6881:6881" # Торрент-трафик (TCP)
|
||
- "6881:6881/udp" # Торрент-трафик (UDP/DHT)
|
||
environment:
|
||
- PUID=1000 # ID пользователя OMV (id <username>)
|
||
- PGID=100 # Группа users
|
||
- TZ=Europe/Moscow
|
||
- WEBUI_PORT=8080
|
||
- UMASK=002 # Права для скачанных файлов: 775
|
||
volumes:
|
||
- ./config:/config
|
||
- ./downloads:/downloads
|
||
- ./watch:/watch # Папка для .torrent-файлов (опционально)
|
||
```
|
||
|
||
**Важно:** `PUID`/`PGID` должны совпадать с владельцем папки downloads.
|
||
Узнать свои ID:
|
||
|
||
```bash
|
||
id $(whoami)
|
||
# uid=1000(admin) gid=100(users)
|
||
```
|
||
|
||
### Шаг 4. Запуск
|
||
|
||
```bash
|
||
cd /srv/docker/qbittorrent
|
||
docker compose up -d
|
||
|
||
# Проверка
|
||
docker compose ps
|
||
docker compose logs -f
|
||
```
|
||
|
||
### Шаг 5. Настройка UFW (если включён)
|
||
|
||
```bash
|
||
ufw allow 8080/tcp comment 'qBittorrent Web UI'
|
||
ufw allow 6881/tcp comment 'qBittorrent Torrent TCP'
|
||
ufw allow 6881/udp comment 'qBittorrent Torrent UDP'
|
||
```
|
||
|
||
---
|
||
|
||
## Первый вход и настройка
|
||
|
||
1. Открыть в браузере: `http://192.168.1.73:8080`
|
||
2. **Логин:** `admin`
|
||
3. **Пароль:** генерируется при первом запуске
|
||
|
||
**Для нативной установки:**
|
||
```bash
|
||
journalctl -u qbittorrent-nox | grep password
|
||
```
|
||
|
||
**Для Docker:**
|
||
```bash
|
||
docker logs qbittorrent | grep password
|
||
```
|
||
|
||
Пример вывода:
|
||
```
|
||
**********
|
||
* qBittorrent *
|
||
* A qBittorrent Web UI password has been set: "xxxXxXxXxX" *
|
||
**********
|
||
```
|
||
|
||
4. Сразу сменить пароль: **Tools → Options → Web UI → Authentication**
|
||
5. Настроить пути загрузки: **Options → Downloads**
|
||
- Save files to: `/downloads`
|
||
- Copy .torrent files to: `/watch` (если используете watch-папку)
|
||
|
||
6. **Опционально:** включить OpenTrackers подписку:
|
||
**Tools → Options → BitTorrent → Automatic Torrent Management**
|
||
Добавить: `https://github.com/ngosang/trackerslist/raw/master/trackers_best.txt`
|
||
|
||
---
|
||
|
||
## Интеграция с OMV — shared folders
|
||
|
||
Чтобы скачанные файлы были доступны по SMB/NFS:
|
||
|
||
**Через веб OMV:**
|
||
1. **Storage → Shared Folders** → создать shared folder `/srv/docker/qbittorrent/downloads` (или `/shared/Downloads`)
|
||
2. **Services → SMB/CIFS → Shares** → добавить шару
|
||
3. **Services → SMB/CIFS → Settings** → включить
|
||
4. 3. **Services → NFS → Settings** → включить
|
||
|
||
**Через Docker (проброс готовой шары):**
|
||
|
||
Если шара уже есть (например, `/shared/Downloads`):
|
||
|
||
```yaml
|
||
volumes:
|
||
- ./config:/config
|
||
- /shared/Downloads:/downloads # проброс существующей шары
|
||
- /shared/Torrents/watch:/watch
|
||
```
|
||
|
||
**Права:** убедиться, что `PUID`/`PGID` в docker-compose совпадают с владельцем шары.
|
||
|
||
```bash
|
||
ls -la /shared/Downloads
|
||
# Если владелец nobody:nogroup — ставь PUID=65534, PGID=65534
|
||
```
|
||
|
||
---
|
||
|
||
## Безопасность
|
||
|
||
### 1. Сменить пароль по умолчанию
|
||
|
||
После первого входа: **Tools → Options → Web UI → Current password / New password**
|
||
|
||
### 2. Отключить удалённый доступ (если не нужен)
|
||
|
||
Закрыть порт 8080 на интерфейсе WAN (через роутер или UFW):
|
||
|
||
```bash
|
||
ufw deny 8080
|
||
ufw allow from 192.168.1.0/24 to any port 8080 # только локальная сеть
|
||
```
|
||
|
||
### 3. Reverse proxy с HTTPS (рекомендуется)
|
||
|
||
Через Nginx Proxy Manager:
|
||
|
||
```yaml
|
||
# в docker-compose.yml NPM
|
||
services:
|
||
nginx-proxy-manager:
|
||
image: jc21/nginx-proxy-manager:latest
|
||
ports:
|
||
- "80:80"
|
||
- "81:81"
|
||
- "443:443"
|
||
volumes:
|
||
- ./data:/data
|
||
- ./letsencrypt:/etc/letsencrypt
|
||
```
|
||
|
||
В веб-интерфейсе NPM (`http://192.168.1.73:81`):
|
||
|
||
1. **Proxy Hosts → Add Proxy Host**
|
||
2. Domain: `torrent.home.local` (или ваш домен)
|
||
3. Forward Host/IP: `qbittorrent` (имя контейнера) или `192.168.1.73`
|
||
4. Forward Port: `8080`
|
||
5. **SSL → Request Let's Encrypt** → включить Force SSL
|
||
|
||
### 4. VPN для торрентов (опционально)
|
||
|
||
Маршрутизация qBittorrent через VPN-контейнер:
|
||
|
||
```yaml
|
||
services:
|
||
gluetun: # VPN-клиент
|
||
image: qmcgaw/gluetun:latest
|
||
cap_add:
|
||
- NET_ADMIN
|
||
environment:
|
||
- VPN_SERVICE_PROVIDER=your_vpn
|
||
- VPN_TYPE=wireguard
|
||
- WIREGUARD_PRIVATE_KEY=...
|
||
- WIREGUARD_ADDRESSES=...
|
||
- WIREGUARD_DNS=...
|
||
ports:
|
||
- "6881:6881"
|
||
- "6881:6881/udp"
|
||
volumes:
|
||
- ./gluetun:/gluetun
|
||
|
||
qbittorrent:
|
||
image: lscr.io/linuxserver/qbittorrent:latest
|
||
network_mode: "service:gluetun" # трафик через VPN
|
||
environment:
|
||
- WEBUI_PORT=8080
|
||
volumes:
|
||
- ./config:/config
|
||
- ./downloads:/downloads
|
||
```
|
||
|
||
---
|
||
|
||
## Обновление
|
||
|
||
### Нативная установка
|
||
|
||
```bash
|
||
apt update && apt upgrade -y qbittorrent-nox
|
||
systemctl restart qbittorrent-nox
|
||
```
|
||
|
||
### Docker
|
||
|
||
```bash
|
||
cd /srv/docker/qbittorrent
|
||
docker compose pull
|
||
docker compose up -d
|
||
# Старый образ останется — удалить:
|
||
docker image prune -f
|
||
```
|
||
|
||
---
|
||
|
||
## Troubleshooting
|
||
|
||
### qBittorrent не запускается
|
||
|
||
```bash
|
||
# Нативная установка
|
||
journalctl -u qbittorrent-nox -n 50
|
||
|
||
# Docker
|
||
docker logs qbittorrent --tail 50
|
||
```
|
||
|
||
### Нет доступа к веб-интерфейсу
|
||
|
||
```bash
|
||
# Проверить, слушается ли порт
|
||
ss -tlnp | grep 8080
|
||
|
||
# Если слушается только на 127.0.0.1 — проверить:
|
||
# WebUI\Address=0.0.0.0 в qBittorrent.conf
|
||
```
|
||
|
||
### Не скачиваются торренты — нет DHT
|
||
|
||
Проверить, открыт ли порт 6881:
|
||
|
||
```bash
|
||
# С хоста
|
||
curl -s https://www.yougetsignal.com/tools/open-ports/ | grep 6881
|
||
# Или
|
||
nc -zv 192.168.1.73 6881
|
||
```
|
||
|
||
Возможно, порт закрыт роутером — пробросить порт 6881 (TCP+UDP) на OMV.
|
||
|
||
### Docker не стартует после перезагрузки
|
||
|
||
```bash
|
||
systemctl enable docker
|
||
```
|
||
|
||
### Контейнер restart'ится в цикле
|
||
|
||
```bash
|
||
docker logs qbittorrent | tail -30
|
||
# Типичная причина: несовпадение PUID/PGID с правами на /config
|
||
# Исправить: chown -R 1000:100 /srv/docker/qbittorrent/config
|
||
```
|
||
|
||
### Неверный пароль при первом входе
|
||
|
||
Удалить конфиг и запустить заново:
|
||
|
||
```bash
|
||
# Docker
|
||
rm -rf /srv/docker/qbittorrent/config
|
||
docker compose down && docker compose up -d
|
||
|
||
# Нативная
|
||
rm -rf /srv/qbittorrent/config
|
||
systemctl restart qbittorrent-nox
|
||
```
|
||
|
||
---
|
||
|
||
## Ссылки
|
||
|
||
- [linuxserver/qbittorrent — Docker Hub](https://hub.docker.com/r/linuxserver/qbittorrent)
|
||
- [qBittorrent — официальный сайт](https://qbittorrent.org)
|
||
- [OpenMediaVault Extras (omv-extras)](https://github.com/OpenMediaVault-Plugin-Developers/packages)
|
||
- [OpenTrackers список](https://github.com/ngosang/trackerslist) |