Iniciar sesiónCrear servidor
Apps

Desplegar una app de Node.js o Python con Git

Guía para desplegar una app de Node.js o Python desde GitHub o GitLab: repositorio, clave de despliegue, variables, compilación y despliegue automático.

6 min de lectura#deploy node.js app#deploy python app#git deploy#deploy key#webhook#environment variables#app hosting

Para desplegar una app de Node.js o Python con Git, sube tu código a un repositorio, dale a tu hosting el enlace del repositorio (y una clave de despliegue de solo lectura si es privado), indica los comandos de compilación e inicio, añade tus secretos como variables de entorno y pulsa desplegar. Después, un webhook puede publicar solo cada push a la rama que elijas. Esta guía cubre cada pieza y los errores que rompen los primeros despliegues.

Qué significa «desplegar con Git»

En lugar de copiar archivos a mano, el servidor descarga tu código desde un repositorio. Cada versión es un commit, así que ves qué cambió y puedes volver atrás. El flujo habitual:

  1. Haces push a una rama.
  2. El hosting descarga ese commit.
  3. Instala las dependencias y ejecuta un paso de compilación si lo tienes.
  4. Inicia (o reinicia) tu app.

Paso 1: Prepara el repositorio

Antes del primer despliegue, comprueba que el repo contiene lo que el hosting necesita.

Node.js

  • Un package.json con las dependencias y un script start.
  • Un archivo de bloqueo (package-lock.json, pnpm-lock.yaml o yarn.lock) para instalaciones reproducibles.
  • Un .gitignore que excluya node_modules y .env.

Python

  • Un requirements.txt (o un pyproject.toml) con las dependencias.
  • Un archivo de entrada, habitualmente app.py o main.py.
  • Un .gitignore que excluya los entornos virtuales y .env.

Consejo: ejecuta la app desde un clon limpio en tu máquina antes de desplegar. Si falla ahí, fallará en el servidor.

Paso 2: Elige el entorno de ejecución

El hosting de código, como los planes de programación de SolumeCore, ejecuta tu app en un contenedor aislado con un entorno que eliges al comprar: Python, Node.js, Bun, Deno, Go, Java o Rust, cada uno con varias versiones. Elige la versión para la que se hizo tu proyecto. El entorno forma parte del plan, así que otro lenguaje implica otro plan.

Paso 3: Conecta el repositorio

Pega el enlace del repositorio:

  • Repo público: basta el enlace HTTPS.
  • Repo privado: usa el enlace SSH, que empieza por git@. El hosting genera una clave de despliegue (una clave pública) que añades al repositorio. La clave de despliegue debe ser de solo lectura; no actives el permiso de escritura.

En GitHub: Settings > Deploy keys > Add deploy key, pega la clave y deja sin marcar «Allow write access». En GitLab: Settings > Repository > Deploy keys.

Pantalla de la clave de despliegue de un plan de programación en el panel de SolumeCore con la clave pública para copiar en GitHub o GitLab
Pantalla de la clave de despliegue de un plan de programación en el panel de SolumeCore con la clave pública para copiar en GitHub o GitLab

Si más adelante conviertes un repo público en privado, vuelve y añade entonces la clave.

Paso 4: Define los comandos

Normalmente necesitas dos comandos:

  • Comando de compilación (opcional): se ejecuta una vez tras cada despliegue, antes de que arranque la app. En Node suele ser npm ci && npm run build; en Python puede ser pip install -r requirements.txt. Su salida va al registro del despliegue.
  • Comando de inicio: lo que lanza tu app, como node index.js, npm start o python app.py.

Las dependencias también pueden instalarse solas al arrancar cuando el hosting encuentra un package.json o un requirements.txt.

Paso 5: Añade variables de entorno

La configuración y los secretos, como claves de API y contraseñas de bases de datos, no pertenecen al repositorio. Defínelos como variables de entorno en el panel y léelos desde tu código:

javascript
const token = process.env.DISCORD_TOKEN;
python
import os
token = os.environ["DISCORD_TOKEN"]

Si necesitas una base de datos, créala desde el panel. Los planes de programación pueden crear bases MySQL con su propio usuario y contraseña.

Paso 6: Despliega y lee el registro

Pulsa Desplegar ahora. Un despliegue pasa por etapas (en cola, clonado, compilando, en marcha) y el registro muestra cada línea. Si una falla, el registro te dice dónde se detuvo. Los sospechosos habituales:

Fallo Causa típica
No se puede descargar el repositorio Enlace erróneo, o repo privado sin la clave de despliegue añadida
Falla la instalación de dependencias Falta el archivo de bloqueo, o una versión de Node o Python incompatible
La app arranca y termina Falta una variable de entorno, o el comando de inicio es incorrecto
Errores de puerto La app escucha en un puerto o dirección equivocados

Lo último importa en las apps web: tu app debe escuchar en el puerto y la dirección que da el hosting, no en uno fijado a mano. Léelos de variables de entorno cuando puedas.

Paso 7: Activa los despliegues automáticos

Cuando el primer despliegue funcione, activa el despliegue automático para una rama. El hosting te da una URL de webhook; añádela en los ajustes de tu repositorio (webhooks de GitHub o GitLab) para que cada push avise al hosting de que despliegue. A partir de ahí publicas con git push.

Cuidado con los despliegues limpios

Un despliegue limpio borra todos los archivos del servidor y vuelve a clonar el repositorio. Todo lo que no esté en el repo se pierde, incluidas las bases SQLite, las subidas de usuarios, node_modules y el archivo .env. Si tu app guarda datos en disco, llévalos a una base de datos, o haz una copia antes de limpiar. Mira copias de seguridad de servidores de juegos y apps para el enfoque general.

Hazlo un hábito

  • Despliega desde una rama estable como main y desarrolla en otras.
  • Etiqueta las versiones para poder volver a un commit que funcionaba.
  • Mantén siempre los secretos fuera de Git.
  • Prueba en local desde un clon limpio.

FAQ

¿Necesito Docker?

No. Eliges un entorno y el hosting lo ejecuta en un contenedor por ti. Docker es opcional si administras tu propio VPS.

¿Puedo desplegar sin Git?

Sí. Sube los archivos con el gestor de archivos o por SFTP. Git es mejor cuando quieres historial y automatización.

¿Por qué el despliegue salió bien pero la app no responde?

Puede que la app escuche en el puerto equivocado o solo en localhost. Enlázala a la dirección y el puerto que da el hosting.

¿Puedo desplegar un repositorio privado?

Sí, con el enlace SSH y una clave de despliegue de solo lectura añadida al repo.

¿Se compila en cada push?

Solo si activaste el despliegue automático para esa rama. Sin él, despliegas a mano.

¿Listo para publicar?

Mira el hosting de programación, con páginas para Node.js y Python, y ten presente alojar un bot de Discord 24/7 si tu proyecto es un bot. Para máquinas que controlas de punta a punta, echa un vistazo a un VPS.

¿Te fue útil este artículo?
Desplegar una app de Node.js o Python con Git