Variables de entorno
Cómo Joppa mantiene el .env al día con los dominios HTTPS y los servicios vinculados, sin escribir nunca sin mostrar el diff.
La pestaña Entorno (E) gestiona el .env del proyecto. Joppa escribe en él dos cosas: las direcciones HTTPS de tus dominios y las conexiones a los servicios vinculados. Todo pasa por un diff que tú confirmas.

Conectar un servicio
El bloque de servicios lista los de Joppa. Usar PostgreSQL (o Redis, Mailpit…) abre un diff con dos opciones:
- Vincular y escribir en .env: se escriben las variables del servicio, y se mantienen al día si cambia su puerto.
- Vincular sin escribir: Joppa guarda el vínculo, sin tocar el archivo.
En el caso de una base de datos, si la base del proyecto todavía no existe, Joppa la crea. Un proyecto solo usa un servicio de cada tipo: conectar MySQL reemplaza a PostgreSQL.
Dejar de usar… hace lo contrario: Desvincular y limpiar el .env restaura el valor de .env.example (o quita la variable), Desvincular sin tocar el .env deja el archivo tal cual. Las variables que modificaste a mano se conservan.
Con qué nombres
Joppa escribe con los nombres que el proyecto ya lee: los del .env y luego los de .env.example (aunque estén comentados). Reconoce muchos alias (DATABASE_URL, DIRECT_URL, POSTGRES_PRISMA_URL, POSTGRES_*, PG*, MYSQL_*…) y conserva el esquema y los parámetros de tus URL existentes.
Si el proyecto no declara nada, Joppa usa los nombres habituales de su framework:
| Servicio | Laravel | Otros |
|---|---|---|
| Base de datos | DB_CONNECTION, DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD |
DATABASE_URL (Symfony: con ?serverVersion=…&charset=utf8) |
| Redis, Valkey | REDIS_HOST, REDIS_PASSWORD, REDIS_PORT |
REDIS_URL |
| Mailpit | MAIL_MAILER=smtp, MAIL_HOST, MAIL_PORT… |
Symfony MAILER_DSN · Rails SMTP_ADDRESS, SMTP_PORT · Django EMAIL_HOST, EMAIL_PORT · Node SMTP_HOST, SMTP_PORT |
| Meilisearch | MEILISEARCH_HOST, MEILISEARCH_KEY, SCOUT_DRIVER |
Symfony MEILISEARCH_URL, MEILISEARCH_API_KEY |
| Typesense | TYPESENSE_*, SCOUT_DRIVER |
TYPESENSE_HOST, TYPESENSE_PORT, TYPESENSE_PROTOCOL, TYPESENSE_API_KEY |
El framework se reconoce por sus archivos: Laravel (artisan), Symfony, Django (manage.py), Rails, Node (package.json).
Las direcciones HTTPS
Todo valor http://localhost:PUERTO (o 127.0.0.1, [::1]) cuyo puerto tenga un dominio se convierte en la dirección HTTPS correspondiente, también dentro de una lista separada por comas:
- APP_URL=http://localhost:8000
+ APP_URL=https://miproyecto.test
- CORS_ORIGINS=http://localhost:5173,http://localhost:3000
+ CORS_ORIGINS=https://app.miproyecto.test,http://localhost:3000
Los valores por defecto de .env.example que faltan en el .env se tratan de la misma forma.
Gestionadas por Joppa
El bloque Gestionadas por Joppa agrupa las variables que Joppa quiere escribir: por actualizar y al día. Aplicar (N) abre el diff y escribe el archivo.
El editor del .env
El archivo se edita directamente en Joppa. Las líneas gestionadas por Joppa están marcadas.
- / o ⌘ F: buscar en el archivo.
- En .env.example, faltan aquí: la lista de claves que faltan, y + Añadir las claves que faltan (se añaden bajo
# Desde .env.example (Joppa)). - ⌘ S: Revisar y guardar, con el diff.
- Si el archivo cambia en el disco mientras lo editas, Joppa te avisa.
Si no hay .env, Joppa crea uno al guardar.
Lo que Joppa garantiza
- Siempre un diff antes de escribir.
- Una copia de seguridad: en la primera escritura, el archivo original se copia en
.env.joppa-backup. - Cambios quirúrgicos: solo cambian las líneas afectadas; los comentarios,
export, las notas al final de línea y los valores de varias líneas se quedan como están. Las claves nuevas se añaden al final, bajo un comentario (# PostgreSQL (Joppa)).