Operations
Referencia de variaveis de ambiente
Referencia completa das variaveis de ambiente do QuoteNode para producao, desenvolvimento, Docker Compose e operacao.
Variaveis de ambiente
As variaveis de ambiente controlam comportamentos criticos do QuoteNode. Devem ser geridas como parametros sensiveis de infraestrutura.
Como ler esta referencia
- Prod significa que a variavel pertence ao
.envde producao - Dev significa desenvolvimento local ou stacks de demo
- Compose significa wiring do Docker Compose no host, nao da aplicacao em si
- defaults vazios significam normalmente “define explicitamente quando precisares desta feature”
Variaveis de Compose e stack local
Estas variaveis moldam o ambiente local em Docker Compose e o proxy dev do frontend.
| Variavel | Ambito | Objetivo | Valor tipico |
|---|---|---|---|
COMPOSE_PROJECT_NAME | Dev / Compose | Evita colisoes de nomes de contentores | quotenode-dev |
POSTGRES_PORT | Dev / Compose | Porta host mapeada para PostgreSQL | 5433, 5434 |
MAILPIT_PORT | Dev / Compose | Porta da UI do Mailpit | 8025, 8026 |
BACKEND_PORT | Dev / Compose | Porta host da API backend | 8091, 8092 |
FRONTEND_PORT | Dev / Compose | Porta host do frontend | 5174, 5175 |
VITE_PUBLIC_API_BASE | Dev / Frontend | URL base da API visivel no browser | http://localhost:8091 |
APP_VERSION | Prod / Dev / Compose | Tag de imagem Docker selecionada | latest |
PROXY_MODE | Prod / Dev / Compose | Define se o Caddy corre interno ou externo | internal, external |
DOMAIN | Prod / Compose | Dominio publico usado por Caddy e URLs publicos | quotenode.example.com |
Base de dados e runtime
| Variavel | Ambito | Objetivo | Valor tipico |
|---|---|---|---|
DB_URL | Prod / Dev | String JDBC para PostgreSQL | jdbc:postgresql://postgres:5432/quotenode |
DB_USERNAME | Prod / Dev | Utilizador da base de dados | quotenode |
DB_PASSWORD | Prod / Dev | Password da base de dados | 32+ chars em prod |
DB_NAME | Prod / Dev / Compose | Nome da base de dados | quotenode |
SPRING_PROFILES_ACTIVE | Prod / Dev | Perfil Spring ativo | prod, dev |
CORS_ALLOWED_ORIGINS | Prod / Dev | Origins permitidas para o browser | https://yourdomain.com |
LOG_LEVEL | Prod / Dev | Verbosidade base dos logs | ERROR, INFO, DEBUG |
Rotacao de logs Docker e diagnostico
| Variavel | Ambito | Objetivo | Valor tipico |
|---|---|---|---|
DOCKER_LOG_MAX_SIZE | Prod / Compose | Tamanho maximo de um ficheiro de log antes de rotacao | 10m |
DOCKER_LOG_MAX_FILE | Prod / Compose | Numero de ficheiros de log retidos | 5 |
SUPPORT_LOGS_BUFFER_SIZE | Prod | Tamanho do buffer de preview de logs | 4000 |
SUPPORT_LOGS_PREVIEW_RATE_LIMIT_PER_MINUTE | Prod | Rate limit para preview de logs | 30 |
SUPPORT_LOGS_LOG_LEVEL_DEFAULT_TTL_MINUTES | Prod | Tempo de expiracao do override temporario de log level | 15 |
SUPPORT_LOGS_LOG_LEVEL_MAX_TTL_MINUTES | Prod | Janela maxima para elevar log level | 30 |
Seguranca, autenticacao e sessao
| Variavel | Ambito | Objetivo | Valor tipico |
|---|---|---|---|
DB_ENCRYPTION_KEY | Prod / Dev | Chave principal de cifragem aplicacional | 64 chars hex |
TIMING_TOKEN_SECRET | Prod / Dev | Segredo HMAC para protecao anti-bot | 32+ chars |
PUBLIC_LINK_PASSWORD_SESSION_SECRET | Prod / Dev | Segredo de sessao para links publicos protegidos | 32+ chars |
AUTH_PASSWORD_MIN_LENGTH | Prod / Dev | Comprimento minimo de password | 12, 8 |
AUTH_PASSWORD_COMPLEXITY_LEVEL | Prod / Dev | Nivel de complexidade exigido | 2, 1 |
AUTH_SESSION_IDLE_TIMEOUT_MIN | Prod / Dev | Timeout por inatividade | 30, 480 |
SECURITY_SESSION_ABSOLUTE_TIMEOUT_H | Prod / Dev | Duracao maxima absoluta da sessao | 12, 24 |
SECURITY_MAX_FAILED_LOGINS_SOFT | Prod / Dev | Limite de falhas para aviso | 5, 10 |
SECURITY_MAX_FAILED_LOGINS_TEMP_LOCK | Prod / Dev | Limite para bloqueio temporario | 10, 20 |
SECURITY_MAX_FAILED_LOGINS_HARD_LOCK | Prod / Dev | Limite para bloqueio forte | 20, 50 |
SECURITY_TEMP_LOCK_MINUTES | Prod / Dev | Duracao do bloqueio temporario | 30, 5 |
FEATURE_2FA_ENABLED | Prod / Dev | Ativa fluxos de 2FA | true, false |
SECURITY_REQUIRE_2FA_ROLES | Prod / Dev | Perfis obrigados a ativar 2FA | ADMIN |
SECURITY_BOT_DETECTION_ENABLED | Prod / Dev | Ativa camada de bot detection | true, false |
Estas variaveis definem o baseline de seguranca da instancia. Devem ser revistas explicitamente antes de qualquer go-live.
CRM, ficheiros, importacoes e media de produto
| Variavel | Ambito | Objetivo | Valor tipico |
|---|---|---|---|
CRM_DEDUP_NAME_SIMILARITY_THRESHOLD | Prod / Dev | Threshold de similaridade para aviso de duplicados | 0.8 |
CRM_DEDUP_EMAIL_DOMAIN_WARN | Prod / Dev | Aviso quando dominios de email coincidem | true |
CRM_ATTACHMENT_MAX_SIZE_MB | Prod / Dev | Tamanho maximo de anexos CRM | 25 |
CSV_IMPORT_MAX_ROWS | Prod / Dev | Limite de linhas em importacoes CSV | 5000 |
STORAGE_PATH | Prod / Dev | Diretoria raiz para uploads | /data/uploads |
PIM_MEDIA_MAX_SIZE_MB | Prod / Dev | Tamanho maximo de uma imagem de produto | 5 |
PIM_MEDIA_MAX_PER_PRODUCT | Prod / Dev | Numero maximo de media por produto | 5 |
PIM_MEDIA_ALLOWED_TYPES | Prod / Dev | Extensoes de media permitidas | jpg,jpeg,png,webp,svg |
Email, links publicos e notificacoes
| Variavel | Ambito | Objetivo | Valor tipico |
|---|---|---|---|
SMTP_HOST | Prod / Dev | Hostname do servidor SMTP | provider ou localhost |
SMTP_PORT | Prod / Dev | Porta SMTP | 587, 1025, 1026 |
SMTP_USERNAME | Prod / Dev | Username SMTP | conta do provider |
SMTP_PASSWORD | Prod / Dev | Password SMTP | segredo |
SMTP_AUTH | Prod / Dev | Ativa autenticacao SMTP | true, false |
SMTP_STARTTLS | Prod / Dev | Ativa STARTTLS | true, false |
PUBLIC_LINK_TOKEN_BYTES | Prod / Dev | Entropia dos tokens de links publicos | 32 |
PUBLIC_LINK_DEFAULT_EXPIRY_DAYS | Prod / Dev | Validade por defeito do link publico | 0 |
PUBLIC_RATE_LIMIT_OPEN_PER_HOUR | Prod / Dev | Limite horario de abertura | 60, 999 |
PUBLIC_RATE_LIMIT_ACTION_PER_HOUR | Prod / Dev | Limite horario para acoes publicas | 5, 999 |
NOTIFICATIONS_ENABLED | Prod / Dev | Ativa subsistema de notificacoes | true |
NOTIFICATIONS_EMAIL_ENABLED | Prod / Dev | Ativa entrega email de notificacoes | true, false |
Shipping, FX e defaults de proposta
| Variavel | Ambito | Objetivo | Valor tipico |
|---|---|---|---|
SHIPPING_DEFAULT_VOLUMETRIC_DIVISOR | Prod / Dev | Divisor para peso volumetrico | 4000 |
SHIPPING_OVERRIDE_REQUIRES_REASON | Prod / Dev | Obriga justificacao para override de shipping | true |
FX_PROVIDER | Prod / Dev | Fonte das taxas FX | NBP, ECB, CUSTOM |
FX_PROVIDER_URL | Prod / Dev | URL custom do provider FX | vazio ou URL |
FX_REFRESH_INTERVAL_MIN | Prod / Dev | Cadencia de refresh das taxas | 60 |
FX_DEFAULT_MARGIN_PERCENT | Prod / Dev | Margem default aplicada sobre a taxa | 0 |
OFFER_NUMBER_PREFIX | Prod / Dev | Prefixo de numeracao das propostas | OF |
| Variavel | Ambito | Objetivo | Valor tipico |
|---|---|---|---|
PDF_ENABLED | Prod / Dev | Ativa geracao PDF | true, false |
PDF_GOTENBERG_URL | Prod / Dev | URL interna do servico Gotenberg | http://gotenberg:3000 |
PDF_SYNC_TIMEOUT_MS | Prod / Dev | Timeout para pedidos sincronos de PDF | 10000 |
PDF_SYNC_MAX_ITEMS | Prod / Dev | Numero maximo de linhas para modo sincrono | 50 |
PDF_STORAGE_PATH | Prod / Dev | Caminho do filesystem para PDFs gerados | /data/pdfs |
PDF_RETENTION_DAYS | Prod / Dev | Periodo de retencao dos PDFs | 365 |
PDF_WORKER_CONCURRENCY | Prod / Dev | Concorrencia dos workers de PDF | 2 |
Licenciamento, relatorios e manutencao
| Variavel | Ambito | Objetivo | Valor tipico |
|---|---|---|---|
LICENSE_SKIP_SIGNATURE_CHECK | Prod / Dev | Salta validacao de assinatura da licenca | false |
LICENSE_EXPIRY_CHECK_INTERVAL_H | Prod / Dev | Cadencia de verificacao da expiracao | 24 |
REPORTS_DEFAULT_PERIOD_DAYS | Prod / Dev | Janela default dos relatorios | 30 |
REPORTS_EXPORT_MAX_ROWS | Prod / Dev | Limite de linhas para exportacao | 10000 |
Backups, GeoIP e privacidade
| Variavel | Ambito | Objetivo | Valor tipico |
|---|---|---|---|
BACKUP_ENABLED | Prod / Dev | Ativa backups agendados | true, false |
BACKUP_CRON | Prod / Dev | Expressao cron do backup | 0 0 2 * * * |
BACKUP_LOCAL_DIR | Runtime / Compose | Diretorio local dos backups | /app/data/backups |
BACKUP_RCLONE_REMOTE | Prod / Dev | Destino rclone para copias remotas | s3:bucket/path |
BACKUP_GPG_RECIPIENT | Prod / Dev | Recipiente GPG para cifragem | fingerprint ou email |
GEOIP_ENABLED | Prod / Dev | Ativa controlo GeoIP | false |
GEOIP_DB_PATH | Prod / Dev | Caminho da base MaxMind | /app/data/geoip/... |
SECURITY_GEOIP_ALLOWED_COUNTRIES | Prod / Dev | Allowlist de paises ISO | PT,ES,FR |
GDPR_ANONYMIZE_AUTO_AFTER_DAYS | Prod / Dev | Horizonte de anonimização automatica | 0 |
Orientacao pratica
- comeca pelo template de producao para ambientes reais e pelo template de desenvolvimento para stacks locais
- trata
DB_ENCRYPTION_KEY,TIMING_TOKEN_SECRET,PUBLIC_LINK_PASSWORD_SESSION_SECRETe credenciais SMTP como segredos com backup seguro - evita levar portas de Compose e variaveis de frontend para o
.envde producao sem necessidade - para o setup minimo viavel, consulta o Guia de instalacao
- para topologia e modos de deploy, consulta Opcoes de deployment