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

2.9 KiB
Raw Blame History

DVR Admin — сборка и деплой Docker-контейнера

Первый запуск (локально)

cd /home/deeily/git/ISAPI/dvr_admin_docker
docker compose up -d --build

Приложение будет доступно на http://localhost:5001
Логин по умолчанию: admin / admin
БД и ключ шифрования создаются автоматически в /home/deeily/docker/dvr_admin/


Обновление (пересборка образа)

cd /home/deeily/git/ISAPI/dvr_admin_docker

# Пересобрать и перезапустить (данные сохраняются)
docker compose up -d --build

Перенос на другой сервер

1. Собрать и экспортировать образ

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. Скопировать на сервер

scp dvr_admin.tar.gz user@server:/opt/dvr_admin/

Также скопировать docker-compose.yml, заменив build: . на image: dvr_admin:latest:

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. Запустить на сервере

docker load < dvr_admin.tar.gz
docker compose up -d

Обновление на удалённом сервере

# На локальной машине — пересобрать и экспортировать
# Сначала скопировать актуальный 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

Генерация ключей

# 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())"

Просмотр логов

docker logs dvr_admin -f