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 R1125 | reComputer AI R2130 | reComputer AI Industrial R2145 |
|---|---|---|
![]() | ![]() | ![]() |
| reComputer Industrial R20xx | reComputer 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:

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:

Criar docker-compose.yaml
Use o seguinte comando para identificar seu ID e UID.
id
O resultado é mostrado abaixo.

Use o seguinte comando para criar docker-compose.yaml.
cd ~ && nano docker-compose.yaml
Nota: Reescreva o arquivo
YAMLcom base no seu próprioIDeUID.
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.

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.


Siga as etapas abaixo para adicionar a câmera.






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:

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.

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.




