05 - Variáveis de Ambiente (Avançado)

📌 Esta seção é OPCIONAL. Se quiser manter os padrões, pule para 06-systemd.md.

Todas as variáveis estão documentadas no arquivo .env.example do projeto.


📊 Limites Personalizáveis

Você pode ajustar os limites da aplicação editando .env:

Variável Padrão Descrição
NEXT_PUBLIC_MAX_MESSAGE_LENGTH 2000 Máximo de caracteres por mensagem
NEXT_PUBLIC_MAX_MODERATION_REASON_LENGTH 400 Máximo de caracteres em razão de moderação
NEXT_PUBLIC_MAX_TIMEOUT_MINUTES 4320 Máximo de duração de timeout (72 horas)
CHANNEL_UPLOAD_MAX_FILE_SIZE_MB 50 Máximo de upload em canais (MB)
NEXT_PUBLIC_MAX_AVATAR_SIZE_MB 10 Máximo para avatar de usuário (MB)
NEXT_PUBLIC_MAX_PROFILE_GIF_SIZE_MB 15 Máximo para GIF de perfil (MB)
NEXT_PUBLIC_MAX_SOUND_FILE_SIZE_MB 8 Máximo para sons do soundboard (MB)
NEXT_PUBLIC_MAX_SOUND_DURATION_SECONDS 10 Máximo de duração para sons (segundos)
NEXT_PUBLIC_MAX_STICKER_FILE_SIZE_MB 8 Máximo para figurinhas (MB)
NEXT_PUBLIC_MAX_EMOJI_FILE_SIZE_MB 2 Máximo para emojis customizados (MB)

🛡️ Proteção Anti-Spam

SPAM_RATE_WINDOW_MS=12000              # Janela de tempo (ms)
SPAM_MAX_MESSAGES_PER_WINDOW=8         # Máximo de mensagens por janela
SPAM_DUPLICATE_WINDOW_MS=20000         # Janela para duplicatas (ms)
SPAM_MAX_IDENTICAL_MESSAGES=3          # Máximo de mensagens idênticas
SPAM_TEMP_BLOCK_MS=20000               # Tempo de bloqueio (ms)

🤖 Cloudflare Turnstile (Proteção Anti-Bot)

Protege login e cadastro contra bots e ataques automatizados.

Como Configurar

  1. Obter credenciais no Cloudflare:
  2. Adicionar ao .env:
# Habilitar Turnstile (true/false ou deixe vazio para desabilitar)
NEXT_PUBLIC_ENABLE_TURNSTILE=true

# Site Key (obtida no painel Cloudflare)
NEXT_PUBLIC_TURNSTILE_SITE_KEY=0x4AAAAAAAxxxxxxxxxxxxxxxxxx

# Secret Key (NUNCA exponha publicamente)
TURNSTILE_SECRET_KEY=0x4AAAAAAAxxxxxxxxxxxxxxxxxxxxxxxxxx
  1. Rebuildar e reiniciar:
cd /home/deploy/twins
npm run build
sudo systemctl restart twinslkit

Desabilitar Turnstile