Implantação Self-Hosted
Esta página cobre as opções de implantação do Elven Assessment em infraestrutura própria. Para configurações avançadas, consulte o arquivo README.md e docs/self-hosted.md no repositório do projeto.
Opções de implantação
| Opção | Quando usar |
|---|---|
| Docker Compose | Avaliação, desenvolvimento, ambientes pequenos |
| Kubernetes / Helm | Produção, alta disponibilidade, escalabilidade |
Docker Compose (mais rápido para começar)
Pré-requisitos
- Docker 24+ e Docker Compose v2
- 2 vCPU, 4 GB RAM mínimos
- 20 GB de disco disponível
Passo 1 — Clone o repositório
Passo 2 — Configure o arquivo .env
Edite o .env com as configurações do seu ambiente (veja a referência de variáveis abaixo).
Passo 3 — Suba os containers
A plataforma estará disponível em http://localhost:8080 (ou a porta configurada).
Passo 4 — Verifique os logs
Aguarde a mensagem Server ready on :8080.
HTTPS em produção
Para produção, coloque um reverse proxy (nginx ou Caddy) na frente do container para terminação TLS. Veja o exemplo de configuração nginx em docs/nginx.conf.example.
Kubernetes / Helm (produção)
Pré-requisitos
- Kubernetes 1.26+
- Helm 3.12+
- Namespace dedicado criado:
kubectl create namespace assessment
Passo 1 — Adicione o repositório Helm
Passo 2 — Crie o secret de configuração
kubectl create secret generic elven-assessment-config \
--namespace assessment \
--from-literal=AUTH_TOKEN="seu-token-seguro" \
--from-literal=SESSION_SECRET="string-aleatoria-longa-aqui" \
--from-literal=DATABASE_URL="postgres://user:pass@host:5432/assessment?sslmode=require" \
--from-literal=CREDENTIAL_ENCRYPTION_KEY="chave-de-32-bytes-em-hex"
Passo 3 — Configure o values.yaml
# values-prod.yaml
image:
tag: "0.4.27"
replicaCount: 2
ingress:
enabled: true
className: nginx
host: assessment.suaempresa.com
tls:
enabled: true
secretName: assessment-tls
persistence:
enabled: false # Use PostgreSQL externo (recomendado)
env:
TENANT_MODE: single # ou "multi" para multi-tenant
AUTH_USERS: "maria:hash_bcrypt:admin"
AUDIT_LOG_RETENTION_DAYS: "365"
Passo 4 — Instale o Helm chart
helm install elven-assessment elvenworks/elven-assessment \
--namespace assessment \
--values values-prod.yaml \
--set existingSecret=elven-assessment-config
Passo 5 — Verifique o deployment
Variáveis de ambiente
Autenticação e segurança
| Variável | Obrigatório | Descrição |
|---|---|---|
AUTH_TOKEN |
Sim* | Token de acesso único (modo simples sem RBAC) |
AUTH_USERS |
Sim* | Usuários com RBAC: user:pass:role,... |
SESSION_SECRET |
Sim | String secreta para assinar cookies de sessão (mín. 32 chars) |
CREDENTIAL_ENCRYPTION_KEY |
Sim | Chave para criptografia AES-256-GCM das credenciais em repouso (32 bytes hex) |
*AUTH_TOKEN ou AUTH_USERS — um dos dois é obrigatório.
Banco de dados
| Variável | Padrão | Descrição |
|---|---|---|
DATABASE_URL |
(arquivo local) | URL do PostgreSQL externo. Se não configurado, usa SQLite local |
DATABASE_MAX_CONNECTIONS |
25 |
Pool de conexões com o banco |
Use PostgreSQL em produção
SQLite (padrão sem DATABASE_URL) funciona para avaliação e desenvolvimento, mas não é recomendado para produção. Configure PostgreSQL 14+ para ambientes multi-usuário e alta disponibilidade.
Multi-tenant
| Variável | Padrão | Descrição |
|---|---|---|
TENANT_MODE |
single |
single ou multi — modo de tenant |
ALLOWED_DOMAINS |
(vazio) | Domínios de e-mail permitidos para auto-registro (multi-tenant) |
AI Insights
| Variável | Padrão | Descrição |
|---|---|---|
ANTHROPIC_API_KEY |
(vazio) | Chave da API Anthropic para AI Insights (opcional) |
AI_INSIGHTS_DEFAULT |
true |
Se AI Insights está habilitado por padrão nos assessments de nuvem |
Features flags
| Variável | Padrão | Descrição |
|---|---|---|
DISABLE_DB_ASSESSMENT |
true |
Desabilitar assessment de banco de dados (Enterprise) |
Notificações
| Variável | Padrão | Descrição |
|---|---|---|
SMTP_HOST |
(vazio) | Host do servidor SMTP para notificações por e-mail |
SMTP_PORT |
587 |
Porta SMTP |
SMTP_USER |
(vazio) | Usuário SMTP |
SMTP_PASSWORD |
(vazio) | Senha SMTP |
SMTP_FROM |
(vazio) | Endereço de origem dos e-mails |
Backup e restauração
Backup (PostgreSQL)
# Backup completo
pg_dump -h seu-postgres-host -U postgres -d assessment -Fc \
-f backup_assessment_$(date +%Y%m%d).dump
# Restauração
pg_restore -h seu-postgres-host -U postgres -d assessment \
backup_assessment_20260513.dump
Backup (SQLite — instalações simples)
Automação de backup
Configure um cronjob para executar o backup diariamente e armazenar em S3, GCS ou Azure Blob Storage. O arquivo de backup contém todos os assessments, histórico, usuários e configurações.
Atualizando a plataforma
Docker Compose
# Fazer pull da nova imagem
docker-compose pull
# Reiniciar com a nova versão (zero-downtime se usar múltiplas réplicas)
docker-compose up -d
# Verificar os logs para confirmar que a versão nova subiu corretamente
docker-compose logs -f elven-assessment | head -20
Kubernetes / Helm
helm repo update
helm upgrade elven-assessment elvenworks/elven-assessment \
--namespace assessment \
--values values-prod.yaml \
--set image.tag="0.4.27" \
--set existingSecret=elven-assessment-config
Verifique as release notes
Antes de atualizar, consulte o CHANGELOG.md ou as release notes da nova versão para verificar se há breaking changes ou migrações necessárias.
Recursos adicionais
README.md— visão geral e quickstartdocs/self-hosted.md— guia completo de implantação self-hostedcharts/elven-assessment/— Helm chart com valores documentadosdeploy.sh— script de setup inicial para Kubernetes