# Configura tu instancia Todo lo relativo a tu instancia se configura a través del archivo `.env` que creaste durante la [instalación](https://getkollek.com/es/docs/alojamiento-propio/instalar-con-docker). 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: ```bash docker compose up -d ``` ## Identidad y URL - `APP_NAME` es el nombre que se muestra en la interfaz y en los correos. Por defecto es `Kollek`. - `APP_URL` es 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_PORT` es el puerto del host que publica el contenedor web, `8000` por 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](https://getkollek.com/es/docs/alojamiento-propio/la-clave-de-aplicacion-y-el-cifrado), 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`. :::note 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](https://getkollek.com/es/docs/alojamiento-propio/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_DAYS` es el tiempo que los objetos eliminados de forma reversible permanecen en la [papelera](https://getkollek.com/es/docs/seguridad-y-mantenimiento-de-datos/restaura-algo-desde-la-papelera) antes de que la limpieza nocturna los elimine para siempre. El valor por defecto es 30 días. - `ACCOUNT_DELETION_NOTIFICATION_EMAIL` es la dirección a la que se notifica cuando un usuario elimina su propio usuario o es eliminado por la [limpieza por inactividad](https://getkollek.com/es/docs/seguridad-y-mantenimiento-de-datos/elimina-automaticamente-un-usuario-inactivo). 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](https://getkollek.com/es/docs/alojamiento-propio/el-panel-de-administracion-de-instancia). 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. :::note 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](https://getkollek.com/es/docs/alojamiento-propio/configura-la-entrega-de-correo). - Entiende la clave que debes proteger en [La clave de aplicación y el cifrado](https://getkollek.com/es/docs/alojamiento-propio/la-clave-de-aplicacion-y-el-cifrado). - Configura las [copias de seguridad](https://getkollek.com/es/docs/alojamiento-propio/haz-copias-de-seguridad-y-restaura-tu-instancia).