vault backup: 2026-10-02 22:01:10
This commit is contained in:
@@ -0,0 +1,471 @@
|
||||
# Установка 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** → включить
|
||||
|
||||
**Через 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)
|
||||
Reference in New Issue
Block a user