Configure sua instância
Tudo na sua instância é configurado através do arquivo .env que você criou durante a instalação. Esta página percorre as configurações que um operador realmente mexe, agrupadas pelo que fazem, em vez de listar cada variável que o modelo contém.
Depois de alterar o .env, aplique a mudança recriando os contêineres:
docker compose up -d
Identidade e URL
APP_NAMEé o nome exibido na interface e nos e-mails. O padrão éKollek.APP_URLé o endereço público da sua instância. Os links nos e-mails são construídos a partir dele, então precisa ser o endereço que seus usuários realmente usam.APP_PORTé a porta do host que o contêiner web publica,8000por padrão.
A chave da aplicação
APP_KEY criptografa dados sensíveis em repouso. Você a define uma vez durante a instalação e nunca a altera de forma casual. Ela é importante o suficiente para ter sua própria página, que também cobre o mecanismo de rotação APP_PREVIOUS_KEYS.
Banco de dados
DB_DATABASE, DB_USERNAME, DB_PASSWORD e DB_ROOT_PASSWORD configuram o contêiner MySQL incluído. Altere as duas senhas de seus valores de exemplo antes do primeiro boot. RUN_MIGRATIONS controla se o contêiner web migra o banco na inicialização (true por padrão).
MAIL_MAILER decide como o e-mail sai da sua instância, e o padrão é log.
Com o mailer padrão log, nenhum e-mail chega a ser enviado. Convites, links mágicos, redefinições de senha e alertas de segurança são gravados no log da aplicação em vez disso. Configurar um mailer de verdade é a única peça de configuração que praticamente toda instância precisa. Veja Configure a entrega de e-mail.
Armazenamento de arquivos
FILESYSTEM_DISK é local por padrão: fotos e documentos enviados são armazenados no volume storage-data. Para usar armazenamento de objetos compatível com S3, defina como s3 e preencha as variáveis AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_DEFAULT_REGION, AWS_BUCKET e, para provedores fora da AWS, AWS_ENDPOINT. Os arquivos são servidos aos usuários por rotas privadas e verificadas pela conta de qualquer forma, nunca como URLs públicas.
Manutenção de rotina
TRASH_RETENTION_DAYSé por quanto tempo objetos excluídos de forma reversível ficam na lixeira antes que a limpeza noturna os remova definitivamente. O padrão é 30 dias.ACCOUNT_DELETION_NOTIFICATION_EMAILé o endereço notificado quando um usuário exclui sua própria conta de usuário ou é removido pela limpeza por inatividade. Aponte-o para você mesmo para que saídas não passem despercebidas.
O site institucional público
SHOW_MARKETING_SITE é false por padrão, o que significa que sua instância serve apenas a aplicação em si. Defina como true para também servir as páginas públicas institucionais e a referência de API gerada em /docs/api. A maioria das instâncias privadas mantém isso desligado; ative se seus desenvolvedores quiserem a referência de API disponível localmente.
Essas páginas são iguais para todos os visitantes e só mudam quando você reimplanta, então cada uma é enviada com cabeçalhos de cache: um navegador a guarda por cinco minutos, e qualquer CDN à frente da instância a guarda por uma semana. Defina CACHE_PUBLIC_PAGES como false para parar de enviá-los. De um jeito ou de outro, nada é cacheado na própria instância.
Se você serve o site através do Cloudflare, defina também CLOUDFLARE_API_TOKEN e CLOUDFLARE_ZONE_ID. São eles que permitem à instância pedir ao Cloudflare que descarte o que ele guarda quando algo que o site público mostra muda, por conta própria ou pelo painel. Deixe vazios em uma instância servida diretamente: não há nada à frente dela para purgar.
Em ambos os casos, a instância responde ela mesma a /robots.txt em vez de servir um arquivo do disco. Com o site público ativado, ela aponta os rastreadores para /sitemap.xml, que lista todas as páginas públicas em cada idioma em que são oferecidas. Com o site público desativado, ela diz a todos os rastreadores para ficarem fora do host inteiro, porque uma instância privada não tem nada que valha a pena indexar.
Proteção contra spam
Nada impede um bot de preencher seu formulário de cadastro, e numa instância que qualquer um alcança isso acontece mais cedo ou mais tarde. TURNSTILE_ENABLED coloca um widget do Cloudflare Turnstile nos formulários de login, de cadastro e de redefinição de senha, de modo que um envio que não o resolveu nunca chega à aplicação.
O padrão é false, que é a resposta certa para uma instância privada onde você conhece todo mundo que entra. Para ligar, crie um widget do Turnstile na sua conta Cloudflare e depois defina TURNSTILE_ENABLED como true, TURNSTILE_SITE_KEY com a chave pública que ele fornece e TURNSTILE_SECRET_KEY com a privada. A opção sozinha não protege nada: sem as duas chaves, nenhum visitante passa pela verificação.
Com o widget ligado, sua instância verifica cada envio com o Cloudflare, então ela precisa alcançar challenges.cloudflare.com para que alguém consiga entrar. Uma verificação que não pode acontecer conta como uma verificação que falhou, de propósito. Uma instância sem acesso confiável de saída à internet deve deixar isso desligado.
O que você não precisa configurar
Sessões (SESSION_DRIVER), cache (CACHE_STORE) e a fila de jobs (QUEUE_CONNECTION) são todos baseados em database por padrão. Os valores padrão estão corretos para a stack fornecida, e não há Redis ou outro serviço para adicionar. Deixe-os como estão, a menos que você saiba exatamente por que está mudando.
Para onde ir depois
- Faça o e-mail de verdade funcionar em Configure a entrega de e-mail.
- Entenda a chave que você precisa proteger em A chave da aplicação e a criptografia.
- Coloque backups em prática.