DespliegueDesplegar desde código local

Desplegar desde código local

Si tu código no está en GitHub o quieres probar cambios rápidos, sube el directorio actual directamente con lizard up. Empaqueta tu árbol de trabajo como un tarball, lo envía a los nodos de compilación y lo despliega. Para los comandos que necesita cada stack, consulta las guías de React, Vue, Astro, SvelteKit, Hugo, Docusaurus, VitePress, FastAPI y Streamlit.

Desplegar el directorio actual

lizard up
  • Sube el directorio actual como un tarball. Dentro de un repositorio git respeta .gitignore. Fuera de git, o con --no-gitignore, omite solo una lista fija de carpetas de compilación y dependencias (node_modules, .git, dist, .next, build, __pycache__, .venv, venv, .cache, coverage, .turbo, .vercel) además de .DS_Store, *.pyc, *.pyo y *.log, por lo que los archivos .env se suben. Ejecuta git init o mueve antes los secretos a otro lugar.
  • Fuerza sourceType=upload.
  • Transmite los logs de compilación por SSE y muestra la URL en vivo al finalizar.

Si la carpeta todavía no está vinculada a un proyecto, up la vincula al proyecto predeterminado de tu cuenta (el proyecto más antiguo de tu workspace personal, <username>'s Project en las cuentas nuevas) y lo indica. No pregunta, ni en una terminal ni en CI. Para desplegar en otro proyecto, ejecuta antes lizard init --name <project> o pasa --project <name>. lizard init --force vuelve a vincular una carpeta.

Sin --service, up despliega en el servicio vinculado a la carpeta. Si no hay ninguno vinculado, toma el nombre de package.json o de la carpeta (en una terminal te pide que lo confirmes). Si el proyecto ya tiene un servicio con ese nombre, up despliega en él, aunque sea un servicio de GitHub, al que cambia a sourceType=upload. También fija el puerto de ese servicio igual que en uno nuevo: --port, la línea EXPOSE local o 3000. Si no, crea el servicio. Pasa --service <name> para elegir; un nombre que aún no existe crea ese servicio.

Banderas comunes

BanderaPropósito
-s, --service <name>Servicio en el que desplegar; un nombre nuevo lo crea
-p, --project <name>Desplegar en este proyecto en lugar del vinculado o del predeterminado
--build-command <cmd>Anular el comando de compilación
--start-command <cmd>Anular el comando de arranque
--pre-deploy-command <cmd>Ejecutar al inicio de cada contenedor, antes del comando de arranque; requiere --start-command (consulta configuración de compilación)
--port <number>Puerto del contenedor (0 = modo worker)
--region <code>Región para un servicio nuevo (se ignora en servicios existentes)
-d, --detachIniciar el despliegue y salir sin transmitir logs
-c, --ciSalida amigable para CI
--no-gitignoreIgnorar .gitignore y usar en su lugar la lista fija de exclusiones (un dist/ o build/ ya compilado sigue quedando fuera)
lizard up --service api --start-command "node server.js" --port 8080

Configurar comandos de compilación/arranque

Pasar --build-command o --start-command lo guarda en el servicio y cambia el servicio a la ruta de Dockerfile sintetizado, a menos que dockerfilePath esté definido. En esa ruta, Procfile y package.json scripts.start no se leen: establece el comando de arranque explícitamente. Consulta Proceso de compilación. Python es donde esto más suele afectar: Django, Flask and FastAPI necesitan cada uno una línea distinta de gunicorn o uvicorn.

Volver a desplegar un servicio subido

lizard up vuelve a subir y recompilar. Para recompilar la última subida con las variables actuales sin volver a subir:

lizard redeploy --service api

Sin interfaz / CI

En CI, una carpeta sin vincular también despliega en tu proyecto predeterminado. Para desplegar en un proyecto concreto, vincúlalo antes:

export LIZARD_TOKEN=liz_xxx   # create one with: lizard keys create <name>
lizard init --name my-project
lizard up --ci --service api

Cuándo conviene usar GitHub en su lugar

La subida es excelente para iterar rápido y para situaciones sin remoto. Para cualquier cosa de larga duración, conviene preferir una fuente de GitHub para que los pushes vuelvan a desplegar automáticamente y tengas un historial de despliegues limpio.

Ver también

Actualizado