Files
CoRE.Vision/docker-compose.yml
git_admin c91f82bf28 mobile: add a phone dashboard on a second port (8443) — Live + Archive
A new mobile dashboard is served on a second host port (8443) mapped to the
same backend, so the recorder/supervisor is not duplicated. main.py detects
the mobile port via the Host header and serves mobile.html instead of the
desktop index. The mobile SPA has two modes: Live (one camera with a selector)
and Archive (camera + date + segment list). Video is delivered as server-side
H.264 (live.mp4 / play.mp4 transcode) so a plain <video> plays on any phone.
Bottom tab bar, dark theme, safe-area aware.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 23:36:50 +05:00

47 lines
2.7 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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://<сервер>
- "8443:8090" # мобильный dashboard https://<сервер>:8443 (тот же бэкенд, mobile.html по Host)
volumes:
- ./certs:/app/certs # self-signed TLS-сертификат (rw: entrypoint генерирует при отсутствии)
- ./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 — дефолтное локальное хранилище (id=local).
- ./records:/records
# Общий корень доп. хранилищ (вкладка «Хранилища»): локальные подпапки
# /storages/<id> и точки монтирования NAS. NAS монтируется на ХОСТЕ в
# ./storages/<id>; после `mount` на хосте выполните `docker compose up -d`,
# чтобы том стал виден здесь (или добавьте :rshared для live-подхвата).
- ./storages:/storages
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