61 lines
2.7 KiB
YAML
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:
|