init
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
services:
|
||||
nvr-backend:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: backend/Dockerfile
|
||||
container_name: nvr-backend
|
||||
restart: unless-stopped
|
||||
# HTTPS обязателен: SharedArrayBuffer (для WASM-декодера H.265) работает
|
||||
# только в защищённом контексте (https/localhost).
|
||||
command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8090",
|
||||
"--ssl-keyfile", "/app/certs/key.pem", "--ssl-certfile", "/app/certs/cert.pem"]
|
||||
ports:
|
||||
- "443:8090" # дашборд на https://<сервер>
|
||||
volumes:
|
||||
- ./certs:/app/certs:ro # self-signed TLS-сертификат
|
||||
- ./VERSION:/app/VERSION:ro # номер версии (показывается в UI)
|
||||
- ./cameras.yaml:/app/cameras.yaml # rw: редактирование камер из UI
|
||||
- ./go2rtc.yaml:/app/go2rtc.yaml # rw: бэкенд регенерирует live-потоки
|
||||
- ./.env.json:/app/.env.json # логин/пароль + ui-настройки (JSON; имя .env.json, чтобы не путать с .env docker compose)
|
||||
- ./backend/app:/app/app # код бэкенда (правка без пересборки образа)
|
||||
- ./frontend:/app/frontend # фронтенд (правка без пересборки)
|
||||
- ./data:/data # SQLite-индекс архива
|
||||
# Запись. Локальная папка ./records ИЛИ смонтированный на хост NAS (SMB/NFS).
|
||||
# Для NAS: смонтируйте на хосте (например /mnt/nas/cctv) и замените левую часть:
|
||||
# - /mnt/nas/cctv:/records
|
||||
- ./records:/records
|
||||
environment:
|
||||
TZ: Europe/Moscow
|
||||
NVR_CONFIG: /app/cameras.yaml
|
||||
NVR_SETTINGS: /app/.env.json
|
||||
GO2RTC_CONFIG: /app/go2rtc.yaml
|
||||
NVR_DB: /data/nvr.db
|
||||
|
||||
go2rtc:
|
||||
image: alexxit/go2rtc:latest
|
||||
container_name: nvr-go2rtc
|
||||
restart: unless-stopped
|
||||
network_mode: host # WebRTC проще всего в host-сети (порт 8555 udp/tcp)
|
||||
volumes:
|
||||
- ./go2rtc.yaml:/config/go2rtc.yaml:ro
|
||||
environment:
|
||||
TZ: Asia/Tashkent
|
||||
Reference in New Issue
Block a user