deeily d8ce3daf1f Initial commit: dvr_admin v1.2
- Flask-приложение управления DVR Hikvision
- Предпросмотр каналов, архив, скачивание клипов
- Управление пользователями с правами доступа
- Docker-контейнер с Gunicorn
2026-04-05 21:44:40 +03:00

107 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/dvr_admin_docker
docker compose 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/dvr_admin_docker
docker build -t dvr_admin:latest .
docker save dvr_admin:latest | gzip > 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 из оригинальной папки
cp /home/deeily/git/ISAPI/dvr_admin/app.py /home/deeily/git/ISAPI/dvr_admin_docker/app.py
cd /home/deeily/git/ISAPI/dvr_admin_docker
# --no-cache обязателен, иначе Docker использует старый кэш и упакует старый app.py
docker build --no-cache -t dvr_admin:latest .
docker save dvr_admin:latest | gzip > 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
```