Añadir un proyecto
Cómo Joppa analiza una carpeta, nombra el proyecto, encuentra sus servidores de desarrollo y les propone dominios.
Tres formas de añadir
- Arrastrar y soltar: suelta una carpeta en cualquier parte de la ventana («› Suelta la carpeta para añadirla»).
- Botón o atajo: + nuevo junto a Proyectos en la barra lateral, Añadir un proyecto en el inicio, o N desde cualquier sitio.
- Terminal: en el TUI, tecla a en la sección Proyectos, o la herramienta MCP
add_project.
La ventana Añadir un proyecto muestra lo que Joppa ha encontrado; no se guarda nada hasta que confirmas (⌘ ⏎).
El nombre y el icono
El nombre sale del campo name de package.json (sin el scope @org/) o, si no, del nombre de la carpeta. Se convierte a minúsculas sin acentos ni espacios: Kiné Santé se convierte en kine-sante.
El icono se genera a partir del nombre. Cámbialo cuando quieras con I en la página del proyecto: motivos generados, iniciales, pictogramas o tu propia imagen (.svg, .png, .jpg, .webp, 180 KB como máximo), tramada con los colores de Joppa.
Qué detecta Joppa
| Stack | Indicio | Puerto por defecto |
|---|---|---|
Vite, Vite+ (vp), React Router, Remix |
script dev |
5173, o port: en vite.config |
| Astro | script dev |
4321, o port: en astro.config |
| Next.js | script dev |
3000 |
| Nuxt | script dev |
3000 |
| Node (otro servidor) | puerto escrito en el script | el del script |
| Laravel | archivo artisan |
8000 |
| Bun | bun.lock / bun.lockb |
— |
| Docker Compose | compose.yaml, docker-compose.yml… |
puertos publicados |
Joppa lee el script dev de la raíz y de cada workspace de un monorepo. Un puerto se reconoce en estas formas: --port 3000, -p 3000, --port=3000, PORT=3000, ${PORT:-3000}.
Los subdominios propuestos
Con un solo servidor, el proyecto recibe el dominio base: miproyecto.test. En un monorepo, cada app recibe un subdominio según el nombre de su carpeta:
| Carpeta de la app | Dominio |
|---|---|
web, app, frontend, client, dashboard |
app.miproyecto.test |
marketing, site, www, website, landing, home |
miproyecto.test |
api, server, backend |
api.miproyecto.test |
otra (docs, admin…) |
docs.miproyecto.test |
Si dos apps acaban con el mismo nombre, se numeran: app, app2.
Las interfaces web de Docker Compose
Los servicios de Compose que publican una interfaz web conocida también reciben su dominio:
| Servicio | Puerto | Dominio |
|---|---|---|
| Mailpit, MailHog | 8025 | mail.miproyecto.test |
| MinIO (consola) | 9001 | minio.miproyecto.test |
| RabbitMQ (management) | 15672 | rabbitmq.miproyecto.test |
| Adminer | 8080 | adminer.miproyecto.test |
| phpMyAdmin | 80 | phpmyadmin.miproyecto.test |
| pgAdmin | 80 | pgadmin.miproyecto.test |
Los demás puertos publicados (bases de datos, cachés) aparecen como «Sin enrutar (no son interfaces web)». Si el Compose contiene PostgreSQL, MySQL, MariaDB, Redis o Valkey, la ventana también propone importar sus datos en Joppa: consulta Importación desde Docker Compose.
¿No se detectó ningún servidor?
Añade los dominios a mano: un subdominio (admin) o un dominio completo, y un puerto. Siempre podrás añadir más después en la pestaña Dominios.
La página del proyecto
Una vez añadido, el proyecto tiene su página, con sus pestañas:
| Pestaña | Atajo | Contenido |
|---|---|---|
| Dominios | D | Dominios, destinos y estado |
| Procesos | P | Servidores de desarrollo y contenedores iniciados por Joppa |
| Entorno | E | Servicios vinculados y editor del .env |
| Runtime | R | Versiones de Node, del gestor de paquetes y de PHP |
| Analytics | S | Tráfico, latencia, errores y disponibilidad |
El menú Acciones (⋯) permite Renombrar… (con la opción «Renombrar también los dominios»), Cambiar icono…, Mostrar en el Finder y Quitar de Joppa. Quitar un proyecto detiene sus servidores de desarrollo y olvida su configuración local; su carpeta y su joppa.toml, si lo hay, no se tocan.