Sign inSign up

ncfn/portal

By ncfn

•Updated 2 months ago

NCFN Portal - plataforma forense digital, custodia de evidencias e laudos RFC 3161.

Image
0

10K+

ncfn/portal repository overview

⁠NCFN Portal

Nexus Cyber Forensic Network — plataforma de segurança cibernética e perícia forense digital.

⁠O que é

Portal web fullstack usado por equipes de peritos forenses para:

  • Cofre Forense — custódia de arquivos digitais com cadeia de evidências, criptografia AES-256, timestamps RFC 3161 (TSA) e ciclo de vida completo (T0 → relatório inicial → intermediário → final)
  • Laudo Forense — geração, assinatura e gestão de laudos tipados com expiração automática
  • Auditor — monitoramento interno, logs de sessão, alertas canary por e-mail
  • Vitrine — portfólio público de serviços da perícia
  • Chat IA — comunicação com modelos de IA com histórico persistido
  • Admin — painel de controle com WebAuthn, TOTP, gestão de usuários

⁠Stack

CamadaTecnologia
FrontendNext.js 14 (App Router), TypeScript, Tailwind CSS
BackendNext.js API Routes
BancoPostgreSQL 16 (Prisma ORM)
AuthNextAuth.js v4 + WebAuthn (simplewebauthn v8) + TOTP
StorageVolume Docker /COFRE_NCFN
ProxyCaddy + Cloudflare Tunnel

⁠App Desktop

Disponível para Linux e Windows. Baixe em ncfn.net⁠.

ArquivoSistemaObservação
NCFN Portal-x.x.x.AppImageLinux (universal)Dar permissão de execução e rodar
ncfn-portal_x.x.x_amd64.debLinux Debian/UbuntuInstalar com dpkg -i
ncfn-portal Setup x.x.x.exeWindows 10/11 (x64)Instalar como qualquer programa
⁠Pré-requisito obrigatório

O app desktop gerencia os containers Docker automaticamente, mas o Docker Engine (Linux) ou o Docker Desktop (Windows) precisa estar instalado antes de abrir o NCFN Portal.

⁠Fluxo de instalação (Windows)
  1. Instale o Docker Desktop e reinicie o computador
  2. Execute ncfn-portal Setup x.x.x.exe → instala no menu Iniciar
  3. Abra NCFN Portal pelo menu Iniciar
  4. Na tela de licença, insira sua chave NCFN-XXXX-XXXX-XXXX-XXXX
  5. O app baixa e sobe os containers automaticamente
  6. O portal abre em janela dedicada — sem necessidade de browser
⁠Fluxo de instalação (Linux AppImage)
chmod +x "NCFN Portal-1.0.0.AppImage"
./"NCFN Portal-1.0.0.AppImage"

⁠Licença e Cadastro

Para usar o app desktop é necessária uma chave de licença gratuita (validade 1 ano, até 2 máquinas).

Cadastre-se em ncfn.net⁠ → você receberá a chave por e-mail após validação.

⁠Rodando via Docker Compose (servidor)

⁠Pré-requisitos
  • Docker Engine 24+ e Docker Compose Plugin
  • 4 GB RAM mínimo, 8 GB recomendado
⁠Início rápido
# 1. Variáveis de ambiente
cat > .env << EOF
PG_PASS=$(openssl rand -hex 16)
NEXTAUTH_SECRET=$(openssl rand -hex 32)
NEXTAUTH_URL=http://localhost:3000
EOF

# 2. docker-compose.yml
cat > docker-compose.yml << 'EOF'
name: ncfn-portal

services:
  postgres:
    image: postgres:16-alpine
    restart: unless-stopped
    environment:
      POSTGRES_DB: ncfn_db
      POSTGRES_USER: ncfn
      POSTGRES_PASSWORD: "${PG_PASS}"
    volumes:
      - pgdata:/var/lib/postgresql/data
    expose:
      - "5432"

  portal:
    image: ncfn/portal:latest
    restart: unless-stopped
    depends_on:
      postgres:
        condition: service_healthy
    ports:
      - "3000:3000"
    volumes:
      - ./COFRE_NCFN:/COFRE_NCFN
      - ./arquivos:/app/arquivos
    environment:
      DATABASE_URL: "postgresql://ncfn:${PG_PASS}@postgres:5432/ncfn_db"
      NEXTAUTH_SECRET: "${NEXTAUTH_SECRET}"
      NEXTAUTH_URL: "${NEXTAUTH_URL:-http://localhost:3000}"
      NODE_ENV: production

volumes:
  pgdata:
EOF

# 3. Subir
docker compose up -d
⁠Acesso

Portal disponível em http://localhost:3000 após inicialização (~30s).

⁠Variáveis de Ambiente

VariávelObrigatóriaDescrição
DATABASE_URL✓URL PostgreSQL completa
NEXTAUTH_SECRET✓Secret JWT (mínimo 32 chars)
NEXTAUTH_URL✓URL base do portal
DEV_BYPASS—true = desativa auth (apenas dev)
NCFN_LICENSE_KEY—Chave de licença (app desktop)
SMTP_HOST—Servidor SMTP para alertas canary
SMTP_USER—Usuário SMTP
SMTP_PASS—Senha SMTP
R2_ACCOUNT_ID—Cloudflare R2 para arquivos >50 MB
R2_ACCESS_KEY_ID—Chave de acesso R2
R2_SECRET_ACCESS_KEY—Secret R2
R2_BUCKET_NAME—Nome do bucket R2

⁠Segurança

  • Autenticação via WebAuthn (biometria/FIDO2) + TOTP
  • Criptografia de arquivos AES-256-CBC com chave por arquivo
  • Timestamps RFC 3161 (TSA FreeTSA) para prova de existência
  • Rate limiting sliding window em todas as rotas sensíveis
  • Alertas canary por e-mail para detecção de intrusão
  • IP binding de sessão (subnet /24)
  • Nenhuma porta exposta publicamente (via Cloudflare Tunnel)

Tag summary

Content type

Image

Digest

sha256:2e99915e6…

Size

811.3 MB

Last updated

2 months ago

docker pull ncfn/portal