Configura tu instancia
Todo lo relativo a tu instancia se configura a través del archivo .env que creaste durante la instalación. Esta página recorre los ajustes que un operador realmente utiliza, agrupados por lo que hacen, en lugar de enumerar todas las variables que contiene la plantilla.
Después de modificar .env, aplica los cambios recreando los contenedores:
docker compose up -d
Identidad y URL
APP_NAMEes el nombre que se muestra en la interfaz y en los correos. Por defecto esKollek.APP_URLes la dirección pública de tu instancia. Los enlaces de los correos se construyen a partir de ella, así que debe ser la dirección que realmente usan tus usuarios.APP_PORTes el puerto del host que publica el contenedor web,8000por defecto.
La clave de aplicación
APP_KEY cifra los datos sensibles en reposo. La defines una vez durante la instalación y no la cambias a la ligera. Es lo bastante importante como para tener su propia página, que también cubre el mecanismo de rotación APP_PREVIOUS_KEYS.
Base de datos
DB_DATABASE, DB_USERNAME, DB_PASSWORD y DB_ROOT_PASSWORD configuran el contenedor de MySQL incluido. Cambia ambas contraseñas respecto a sus valores de ejemplo antes del primer arranque. RUN_MIGRATIONS controla si el contenedor web migra al arrancar (true por defecto).
Correo
MAIL_MAILER decide cómo sale el correo de tu instancia, y por defecto es log.
Con el mailer log por defecto, no se envía ningún correo. Las invitaciones, los enlaces mágicos, los restablecimientos de contraseña y las alertas de seguridad se escriben en el log de la aplicación en su lugar. Configurar un mailer real es la única pieza de configuración que casi toda instancia necesita. Consulta Configura la entrega de correo.
Almacenamiento de archivos
FILESYSTEM_DISK es local por defecto: las fotos y documentos subidos se guardan en el volumen storage-data. Para usar almacenamiento de objetos compatible con S3, ponlo en s3 y completa las variables AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_DEFAULT_REGION, AWS_BUCKET y, para proveedores que no sean AWS, AWS_ENDPOINT. En cualquier caso, los archivos se sirven a los usuarios a través de rutas privadas verificadas por cuenta, nunca como URLs públicas.
Mantenimiento
TRASH_RETENTION_DAYSes el tiempo que los objetos eliminados de forma reversible permanecen en la papelera antes de que la limpieza nocturna los elimine para siempre. El valor por defecto es 30 días.ACCOUNT_DELETION_NOTIFICATION_EMAILes la dirección a la que se notifica cuando un usuario elimina su propio usuario o es eliminado por la limpieza por inactividad. Apúntala a ti mismo para que ninguna baja pase desapercibida.
El sitio público de marketing
SHOW_MARKETING_SITE es false por defecto, lo que significa que tu instancia solo sirve la aplicación en sí. Ponlo en true para servir también las páginas públicas de marketing y la referencia de API generada en /docs/api. La mayoría de las instancias privadas lo dejan desactivado; actívalo si tus desarrolladores quieren tener la referencia de la API disponible localmente.
Esas páginas son iguales para todos los visitantes y solo cambian cuando redespliegas, así que cada una se envía con cabeceras de caché: un navegador la guarda cinco minutos, y cualquier CDN delante de la instancia la guarda una semana. Pon CACHE_PUBLIC_PAGES en false para dejar de enviarlas. En ningún caso se cachea nada en la propia instancia.
Si sirves el sitio a través de Cloudflare, define también CLOUDFLARE_API_TOKEN y CLOUDFLARE_ZONE_ID. Son los que permiten a la instancia pedir a Cloudflare que descarte lo que guarda cuando cambia algo que muestra el sitio público, por su cuenta o desde el panel. Déjalos vacíos en una instancia servida directamente: no hay nada delante que purgar.
En ambos casos, la instancia responde ella misma a /robots.txt en lugar de servir un archivo del disco. Con el sitio público activado, dirige a los rastreadores a /sitemap.xml, que enumera todas las páginas públicas en cada idioma en el que se ofrecen. Con el sitio público desactivado, indica a todos los rastreadores que se mantengan fuera de todo el host, porque una instancia privada no tiene nada que merezca ser indexado.
Protección contra el spam
Nada impide que un bot rellene tu formulario de registro, y en una instancia a la que puede llegar cualquiera eso acaba pasando tarde o temprano. TURNSTILE_ENABLED coloca un widget de Cloudflare Turnstile en los formularios de inicio de sesión, de registro y de restablecimiento de contraseña, de modo que un envío que no lo haya resuelto nunca llega a la aplicación.
Por defecto es false, que es la respuesta correcta para una instancia privada en la que conoces a todo el que inicia sesión. Para activarlo, crea un widget de Turnstile en tu cuenta de Cloudflare y luego pon TURNSTILE_ENABLED en true, TURNSTILE_SITE_KEY con la clave pública que te da y TURNSTILE_SECRET_KEY con la privada. El indicador por sí solo no protege nada: sin las dos claves, ningún visitante puede superar la comprobación.
Con el widget activado, tu instancia verifica cada envío con Cloudflare, así que necesita poder alcanzar challenges.cloudflare.com para que alguien pueda iniciar sesión. Una verificación que no puede hacerse cuenta como una verificación fallida, a propósito. Una instancia sin acceso saliente a internet fiable debería dejar esto desactivado.
Lo que no necesitas configurar
Las sesiones (SESSION_DRIVER), la caché (CACHE_STORE) y la cola (QUEUE_CONNECTION) dependen todas de la base de datos (database) de fábrica. Los valores por defecto son correctos para la pila proporcionada, y no hay Redis ni ningún otro servicio que añadir. Déjalos como están a menos que sepas con precisión por qué los cambias.
Por dónde seguir
- Haz que el correo real funcione en Configura la entrega de correo.
- Entiende la clave que debes proteger en La clave de aplicación y el cifrado.
- Configura las copias de seguridad.