Auto-alojar a NexBasira
A mesma stack Docker que corre o nosso SaaS gerido é o que entregamos on-prem. O mesmo backend Django, a mesma SPA React, a mesma cadeia de auditoria. Disponível no nível Enterprise com um DPA + pacote de questionários InfoSec.
docs/SELF_HOST.md no repositório de origem — entregamo-lo aos clientes Enterprise com o seu pacote de instalação. Contacte-nos via Contacto (Enterprise) para iniciar a conversa. Porquê auto-alojar
- Mandato regulatório — o seu setor ou jurisdição exige que as provas vivam na sua infraestrutura.
- Isolamento de rede — os seus inspetores operam dentro de uma VPN; sair para um SaaS não é uma opção.
- Residência de dados personalizada — precisa de aterrar os dados numa região específica ou nuvem soberana.
- Previsibilidade de custos à escala — acima de 5 mil inspeções/mês, a infraestrutura dedicada é muitas vezes mais barata do que o escalão por inspeção.
Arquitetura
Seis serviços (mais o seu fornecedor de identidade existente para SSO):
| Serviço | O que faz | Imagem |
|---|---|---|
| caddy | Terminação TLS, encaminhamento HTTP, entrega de recursos estáticos | caddy:2 |
| backend | Aplicação Django — API REST, cadeia de auditoria, SCIM, assinatura | ghcr.io/codelounge-io/certivisiopro/api (your tag) |
| frontend | Nginx a servir a SPA compilada + estáticos de marketing | ghcr.io/codelounge-io/certivisiopro/web |
| postgres | Armazenamento de dados primário, isolamento de tenant imposto por RLS | postgres:16 |
| redis | Broker do Celery + cache + armazenamento de sessão | redis:7 |
| celery-worker + celery-beat | Tarefas em segundo plano (polling da TSA, pós-processamento de gravação, varrimento de retenção) | igual ao backend |
| livekit | SFU WebRTC para o plano de vídeo em direto | livekit/livekit-server |
| minio (optional) | Armazenamento de objetos compatível com S3 para provas + gravações | minio/minio |
Para o armazenamento de objetos, pode também apontar para qualquer serviço compatível com S3 (AWS S3, Wasabi, OVH Object Storage, o seu cluster Ceph on-premises existente). O MinIO é incluído por defeito para instalações verdadeiramente air-gapped.
Requisitos mínimos
| Aspeto | Mínimo | Confortável |
|---|---|---|
| OS | Linux x86_64 (Ubuntu 22.04 LTS or Debian 12) | igual |
| Docker / Compose | Docker 24 + Compose v2 | igual |
| CPU | 4 vCPU | 8 vCPU |
| RAM | 8 GB | 16 GB |
| Disk | 200 GB SSD (BD + provas iniciais) | 500 GB + armazenamento de objetos compatível com S3 para gravações |
| Network | IP estático, portas 443 + WebRTC (LiveKit) acessíveis | igual |
| TLS | O Caddy aprovisiona automaticamente via Let's Encrypt | BYO-cert para redes fechadas |
Bootstrap
Sensivelmente a forma que o script de instalação automatiza:
# 1. Clone the released bundle
git clone --depth 1 https://github.com/codelounge-io/nexbasira-onprem.git
cd nexbasira-onprem
# 2. Fill in env from the example
cp .env.example .env
$EDITOR .env # set DOMAIN, SECRET_KEY, DB password, S3 creds, LiveKit keys
# 3. Pull pinned images
docker compose pull
# 4. Run migrations + create the platform superuser
docker compose run --rm backend python manage.py migrate
docker compose run --rm backend python manage.py createsuperuser
# 5. Start everything
docker compose up -d
# 6. Tail the logs until you see the audit-chain self-test pass
docker compose logs -f backend | grep "audit chain self-test" Num VPS Ubuntu 22.04 limpo, toda a sequência corre em cerca de 5 minutos.
O que obtém de imediato
- Tanto
app.<o-seu-domínio>(SPA) como<o-seu-domínio>(site de marketing, opcional) num único Caddy. - TLS automático via Let's Encrypt — ou fixação a uma CA privada em redes fechadas.
- Migrações RLS do Postgres + os quatro papéis de sistema semeados.
- Trigger de cadeia de auditoria no Postgres (append-only).
- Semeador de sessão de demonstração para que os administradores de primeira vez possam explorar com dados realistas.
Operações Day-2
- Cópias de segurança — dump lógico do Postgres todas as noites + ciclo de vida S3 para os objetos. O runbook
docs/SELF_HOST.mdinclui testes de fumo de restauro a partir de cópia de segurança, incluindoaudit-chain verify. - Atualizações — puxe a nova tag de imagem,
docker compose up -d. As migrações de esquema são apenas para a frente + testadas em CI; o rollback está documentado para uso de último recurso. - Observabilidade — o Django emite logs JSON estruturados com etiquetas
tenant_id+session_id; encaminhe para o seu agregador de logs existente. - Métricas — endpoint exportador Prometheus no backend; recolha a partir da sua stack de monitorização.
O que difere do SaaS gerido
| Aspeto | SaaS gerido | Auto-alojamento |
|---|---|---|
| Backends TSA | YodaLedger + FreeTSA + OpenTimestamps configurados por defeito | Configurável. Pode desativar qualquer um; pode ligar diretamente um QTSP pago (DataSure). |
| Armazenamento de gravações | S3 na UE com ciclo de vida para Glacier | O seu bucket compatível com S3; o ciclo de vida fica a seu cargo. |
| Entrega de email | Sendgrid na nossa infraestrutura | Configure as variáveis de ambiente SMTP para o seu próprio relay. |
| Entrega de SMS | Twilio na nossa infraestrutura (opt-in) | Twilio com a sua própria conta, ou backend null se não for usado. |
| Faturação Stripe | Integrada | Desativada por defeito — o auto-alojamento implica o seu próprio contrato de faturação. |
| Atualizações | Nós implementamos | Você puxa as tags de imagem à sua cadência. |
Suporte
Os clientes de auto-alojamento Enterprise têm um canal dedicado no Slack + Connect, SLA de 1 hora, walkthroughs de atualização agendados e acesso direto à nossa rotação de on-call para incidentes de produção.
O que vem a seguir
- Iniciar uma conversa Enterprise
- Postura de segurança — o que consta no pacote de questionário de InfoSec
- DPA — o que consta no pacote contratual