deeily fa730238d0 Release dvr_admin v1.6
Переведено скачивание клипов на Hikvision SDK (PlayBackByTime_V40 +
data callback) — точное время по часам DVR без seek-смещения.
Исправлена загрузка SDK-библиотек через self-restart с LD_LIBRARY_PATH.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-07 12:26:38 +03:00

106 lines
2.9 KiB
Markdown
Raw 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.

# DVR Admin — сборка и деплой Docker-контейнера
## Первый запуск (локально)
```bash
cd /home/deeily/git/ISAPI
docker compose -f dvr_admin_docker/docker-compose.yml up -d --build
```
Приложение будет доступно на http://localhost:5001
Логин по умолчанию: `admin` / `admin`
БД и ключ шифрования создаются автоматически в `/home/deeily/docker/dvr_admin/`
---
## Обновление (пересборка образа)
```bash
cd /home/deeily/git/ISAPI/dvr_admin_docker
# Пересобрать и перезапустить (данные сохраняются)
docker compose up -d --build
```
---
## Перенос на другой сервер
### 1. Собрать и экспортировать образ
```bash
cd /home/deeily/git/ISAPI
docker build -f dvr_admin_docker/Dockerfile -t dvr_admin:latest .
docker save dvr_admin:latest | gzip > dvr_admin_docker/dvr_admin.tar.gz
```
### 2. Скопировать на сервер
```bash
scp dvr_admin.tar.gz user@server:/opt/dvr_admin/
```
Также скопировать `docker-compose.yml`, заменив `build: .` на `image: dvr_admin:latest`:
```yaml
services:
dvr_admin:
image: dvr_admin:latest # вместо build: .
container_name: dvr_admin
restart: unless-stopped
ports:
- "5001:8000"
volumes:
- /opt/dvr_admin/data:/data # папка для БД на сервере
environment:
- SECRET_KEY=<сгенерировать>
- DATA_DIR=/data
- FERNET_KEY=<сгенерировать>
```
### 3. Запустить на сервере
```bash
docker load < dvr_admin.tar.gz
docker compose up -d
```
---
## Обновление на удалённом сервере
```bash
# На локальной машине — пересобрать и экспортировать
# Запускать из корня проекта — app.py и lib/ берутся из dvr_admin/ автоматически
cd /home/deeily/git/ISAPI
# --no-cache обязателен, иначе Docker использует старый кэш и упакует старый app.py
docker build --no-cache -f dvr_admin_docker/Dockerfile -t dvr_admin:latest .
docker save dvr_admin:latest | gzip > dvr_admin_docker/dvr_admin.tar.gz
scp dvr_admin.tar.gz user@server:/opt/dvr_admin/
# На сервере — загрузить новый образ и перезапустить (данные сохраняются)
docker stop dvr_admin && docker rm dvr_admin
docker load < dvr_admin.tar.gz
docker compose up -d
```
---
## Генерация ключей
```bash
# SECRET_KEY
python3 -c "import secrets; print(secrets.token_hex(32))"
# FERNET_KEY
python3 -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
```
---
## Просмотр логов
```bash
docker logs dvr_admin -f
```