Pular para o conteúdo principal

Moonfire NVR no reComputer

Introdução

Moonfire-NVR foi projetado com o objetivo de fornecer um sistema NVR fácil de usar, leve e minimalista, ou seja, sem a complexidade de outras soluções comerciais de NVR mais pesadas. Ele enfatiza funcionalidade e simplicidade, permitindo que os usuários gravem de câmeras IP diretamente em um sistema de arquivos ou em armazenamento em nuvem.

Pré-requisitos

Requisitos de hardware

reComputer R1125reComputer AI R2130reComputer AI Industrial R2145
reComputer Industrial R20xxreComputer Industrial R21xx

Baixar o Moonfire

Atualizar o sistema

Use o seguinte comando para executar.

sudo apt update
sudo apt upgrade -y

Baixar docker e docker compose

Use o seguinte comando para instalar o docker.

wget https://get.docker.com -O get-docker.sh
chmod +x
sudo sh get-docker.sh
sudo systemctl start docker
sudo systemctl enable docker
docker --version

O resultado é mostrado abaixo:

pir

Use o seguinte comando para instalar o docker compose.

sudo curl -L "https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | jq -r .tag_name)/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

O resultado é mostrado abaixo:

pir

Criar docker-compose.yaml

Use o seguinte comando para identificar seu ID e UID.

id

O resultado é mostrado abaixo.

pir

Use o seguinte comando para criar docker-compose.yaml.

cd ~ && nano docker-compose.yaml

Nota: Reescreva o arquivo YAML com base no seu próprio ID e UID.

Em seguida, insira o seguinte conteúdo no arquivo YAML.

services:
moonfire-nvr:
# The `vX.Y.Z` images will work on any architecture (x86-64, arm, or
# aarch64); just pick the correct version.
image: ghcr.io/scottlamb/moonfire-nvr:v0.7.23
command: run

volumes:
# Pass through `/var/lib/moonfire-nvr` from the host.
- "/var/lib/moonfire-nvr:/var/lib/moonfire-nvr"

# Pass through `/etc/moonfire-nvr.toml` from the host.
# Be sure to create `/etc/moonfire-nvr.toml` first (see below).
# Docker will "helpfully" create a directory by this name otherwise.
- "/etc/moonfire-nvr.toml:/etc/moonfire-nvr.toml:ro"

# Pass through `/var/tmp` from the host.
# SQLite expects to be able to create temporary files in this dir, which
# is not created in Moonfire's minimal Docker image.
# See: <https://www.sqlite.org/tempfiles.html>
- "/var/tmp:/var/tmp"

# Add additional mount lines here for each sample file directory
# outside of /var/lib/moonfire-nvr, e.g.:
# - "/media/nvr:/media/nvr"

# The Docker image doesn't include the time zone database; you must mount
# it from the host for Moonfire to support local time.
- "/usr/share/zoneinfo:/usr/share/zoneinfo:ro"

# Edit this to match your `moonfire-nvr` user.
# Note that Docker will not honor names from the host here, even if
# `/etc/passwd` is passed through.
# - Be sure to run the `useradd` command below first.
# - Then run `echo $(id -u moonfire-nvr):$(id -g moonfire-nvr)` to see
# what should be filled in here.
user: "1000:1000"

# Uncomment this if Moonfire fails with `clock_gettime failed` (likely on
# older 32-bit hosts). <https://github.com/moby/moby/issues/40734>
# security_opt:
# - seccomp:unconfined

environment:
# Edit zone below to taste.
TZ: "America/Los_Angeles"
RUST_BACKTRACE: 1

# docker's default log driver won't rotate logs properly, and will throw
# away logs when you destroy and recreate the container. Using journald
# solves these problems.
# <https://docs.docker.com/config/containers/logging/configure/>
logging:
driver: journald
options:
tag: moonfire-nvr

restart: unless-stopped

ports:
- "8080:8080/tcp"

Use o seguinte comando para alterar as permissões.

sudo chmod -R 777 /var/lib/moonfire-nvr

Criar /etc/moonfire-nvr.toml

Use o seguinte comando para criar /etc/moonfire-nvr.toml.

sudo nano /etc/moonfire-nvr.toml 

Em seguida, insira o seguinte conteúdo no arquivo toml.

ain@AI-Box:~ $ sudo cat /etc/moonfire-nvr.toml 
[[binds]]
ipv4 = "0.0.0.0:8080"
allowUnauthenticatedPermissions = { viewVideo = true }

[[binds]]
unix = "/var/lib/moonfire-nvr/sock"
ownUidIsPrivileged = true

Configurar o Moonfire

Executar o docker compose

Use o seguinte comando para inicializar o banco de dados.

sudo docker compose run --rm moonfire-nvr init

O resultado é mostrado abaixo.

pir

Criar uma pasta

Crie uma pasta para salvar a gravação de vídeo:

sudo mkdir -p /var/lib/moonfire-nvr/recordings
sudo chown 1000:1000 /var/lib/moonfire-nvr/recordings

Execute a configuração interativa

sudo docker compose run --rm moonfire-nvr config 2>debug-log

Siga as etapas abaixo para adicionar a pasta.

pir

pir

Siga as etapas abaixo para adicionar a câmera.

pir

pir

pir

pir

pir

pir

Executar o Moonfire NVR

Use o seguinte comando para executar o Moonfire NVR.

sudo docker compose up --detach moonfire-nvr

Em seguida, abra a porta localhost:8080 no seu dispositivo para acessá-lo. O resultado é mostrado abaixo:

pir

Observação: não se esqueça de clicar na opção no canto superior esquerdo.

Resultado

Depois de configurarmos tudo, podemos visualizar a transmissão ao vivo da câmera atual.

pir

Suporte Técnico e Discussão sobre Produtos

Obrigado por escolher nossos produtos! Estamos aqui para oferecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Loading Comments...