Files
TeleWave/docker-compose.yml
T

61 lines
2.7 KiB
YAML

services:
app:
build:
context: .
dockerfile: Dockerfile
# Postgres — внешний (не в compose), см. ConnectionStrings__Default в .env.
env_file:
- .env
environment:
ASPNETCORE_ENVIRONMENT: Production
ASPNETCORE_HTTP_PORTS: '8085'
healthcheck:
test: ['CMD', 'curl', '-f', 'http://localhost:8085/health']
interval: 15s
timeout: 5s
start_period: 20s
retries: 5
ports:
- '8085:8085'
# Медиахранилище: диск sdb смонтирован на хосте в /srv/telewave/media (см.
# docs/server-storage-setup.md), пробрасывается как /media внутрь контейнера.
volumes:
- /srv/telewave/media:/media
# Явный лимит памяти: RAM в VM динамическая, а .NET настраивает GC по видимой при старте —
# детерминированный cgroup-лимит + предсказуемый выбор OOM-killer при транскоде.
mem_limit: 3g
restart: unless-stopped
logging:
driver: json-file
options:
max-size: '10m'
max-file: '3'
# Торрент-клиент: качает в /downloads → это /srv/telewave/media/downloads на хосте, который app
# видит как /media/downloads. TeleWave не общается с клиентом по API — вы добавляете торренты в его
# WebUI, а готовые файлы импортируете в разделе «Загрузки» админки (копированием, сидирование живёт).
# PUID/PGID=0 — файлы root-владельца, как и у app, чтобы импорт мог их прочитать.
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
# host-сеть: bridge Docker ломает DHT/UDP торрент-клиента (NAT исходящего UDP + DNAT входящего
# на том же порту рвут обратные DHT-пакеты → «Узлы DHT: 0»). В host-режиме клиент слушает
# порты 8090 (WebUI) и 6881 (torrent) прямо на хосте — порты не конфликтуют с app (8085).
network_mode: host
environment:
PUID: '0'
PGID: '0'
TZ: Etc/UTC
WEBUI_PORT: '8090' # WebUI (пароль первого входа — в логах: docker compose logs qbittorrent)
volumes:
- qbittorrent-config:/config
- /srv/telewave/media/downloads:/downloads
restart: unless-stopped
logging:
driver: json-file
options:
max-size: '10m'
max-file: '3'
volumes:
qbittorrent-config: