No description
  • Python 72.1%
  • JavaScript 9.4%
  • PLpgSQL 9.1%
  • CSS 5.1%
  • HTML 4.3%
Find a file
2026-06-10 20:04:58 -03:00
src corrigida a cadência da listagem de vídeos 2026-06-10 20:04:58 -03:00
www feat: Adicionada autenticação 2026-05-18 17:54:42 -03:00
.env.template first commit 2026-05-17 18:27:26 -03:00
.gitignore atualizado o .gitignore 2026-05-18 22:35:00 -03:00
model.sql feat: Adicionada autenticação 2026-05-18 17:54:42 -03:00
README.md fix: corrigido o README.md 2026-05-18 22:36:28 -03:00

Argos

Servidor NVR muito simples. Funciona em conjunto com o Kerberos.io Agent.

Funcionamento

Lista, indexa e gerencia o ciclo de vida das gravações de segurança. Fornece as gravações em um portal web a partir de filtros (câmera e período).

Configuração

Backend FastAPI e PostgreSQL

$ python -m venv .venv
$ source .venv/bin/activate

$ pip install "fastapi[standard]"
$ pip install "psycopg[binary]"
$ pip install pydantic-settings
$ pip install argon2-cffi

Adicionar no arquivo .env

RECORDINGS_PATH: Caminho da pasta onde as gravações devem ser salvas

DATABASE_NAME: Nome do banco de dados

DATABASE_USER: Usuário do banco de dados

DATABASE_PASSWORD: Senha do usuário do banco de dados

Banco de dados

Rodar os comandos DDL do arquivo model.sql

Adicionar as câmeras na tabela:

INSERT INTO argos.camera (nm_camera, model,	files_path, storage_limit)
VALUES
	(
		'Nome da câmera', -- Nome que você dá à câmera. ex: Pátio, Escritório, Portão 1, etc.
		'Modelo da câmera', -- Modelo. Ex: Intelbras IM5, TP-Link Tapo TC60, etc.
		'endereço das gravações do Kerberos.io Agent', -- Endereço da pasta onde o Kerberos.io Agent salva as gravações.
		100_000_000 -- Limite em bytes do armazenamento, quando estourado o limite, as gravações mais antigas serão apagadas.
	);

/*
	User admin, senha 123456. Usado inicialmente para criar outra conta.
	Necessário desativar ou trocar a senha, serão criados endpoints pra isso futuramente, por enquanto deve ser feito via SQL
*/
INSERT INTO argos."user" (nm_user, pwd_hash)
VALUES
	(
		'admin',
		'$argon2id$v=19$m=65536,t=3,p=4$hlbqMh5IPHg+E1/XxUCpiw$yadLvq/Yh5Lvg4ZRyT5rEgl/5xFmIwI2Pn6x5VT1Je4'
	);