Desplegar una app desde GitHub o GitLab (auto deploy)
Conecta tu repositorio de GitHub o GitLab, configura la deploy key y el webhook y despliega tu app con cada push desde el panel de SolumeCore.
Puedes desplegar una app desde GitHub o GitLab en SolumeCore en pocos minutos: abre la pestaña Código de tu app, pulsa Conectar repositorio, pega el enlace de tu repositorio y define los comandos de build y de arranque. Después cada deploy es un clic, y con un webhook cada push a tu rama puede publicar la app de forma automática.
Antes de empezar
- Una app de SolumeCore (Node.js, Python u otro lenguaje disponible en tu plan) con un comando de arranque que tu proyecto pueda ejecutar, por ejemplo
npm startopython main.py. - Un repositorio de Git en GitHub, GitLab o cualquier otro servidor de Git accesible desde internet.
- El enlace del repositorio: un repo público usa el enlace HTTPS; un repo privado usa el enlace SSH.
Los secretos, como los tokens de bots y las claves de API, no deben estar en el repositorio. Guárdalos como variables en el panel; mira Variables de entorno de tu app o bot.
Paso 1: Conecta tu repositorio
- Abre tu app en el panel y entra en Código > Deploy.
- Si la app aún no tiene código, verás tres formas de ponerla en línea: Conectar un repositorio de Git (la recomendada), Empezar con una plantilla y Subir tus archivos. Pulsa Conectar repositorio.
- El asistente tiene tres pasos: Tu código, Acceso y Comandos.
Tu código
Elige Repositorio público o Repositorio privado y pega el enlace.
| Repositorio | Enlace que debes usar | Ejemplo |
|---|---|---|
| Público | El enlace HTTPS del botón Code | https://github.com/tu-usuario/mi-bot |
| Privado | El enlace SSH (Code > SSH) | [email protected]:tu-usuario/mi-bot.git |
Después indica la Rama que publicamos. Casi siempre es main; los repositorios más antiguos usan master.
Algunas reglas que aplica el panel: los repositorios privados se conectan por SSH; se rechaza un enlace con usuario o token dentro (https://usuario:token@...); y el servidor de Git tiene que ser público en internet. Si pegas un enlace SSH, el asistente cambia solo a privado.
Acceso
En un repositorio público no hay nada que configurar. En uno privado, el asistente muestra una Llave pública de solo lectura (la deploy key) que permite a SolumeCore leer el repositorio sin tu contraseña. Pulsa Crear llave si todavía no aparece una y añádela a tu repositorio.
En GitHub:
- En tu repositorio, abre Settings > Deploy keys.
- Pulsa Add deploy key, ponle un nombre como
SolumeCorey pega la llave. - Deja sin marcar Allow write access y pulsa Add key.
En GitLab:
- En tu proyecto, abre Settings > Repository > Deploy keys.
- Pulsa Add new key, ponle un título y pega la llave.
- Deja sin marcar Grant write permissions y guarda.
El asistente tiene atajos para abrir esas páginas. Cuando la llave esté añadida, marca Ya agregué la llave a mi repositorio y continúa.
Comandos
- Comando de build se ejecuta una vez después de cada deploy, antes de que arranque la app. Suele instalar dependencias o compilar. El panel sugiere comandos para tu lenguaje, como
npm ci,npm installonpm ci && npm run builden Node.js, ypip install -U --prefix .local -r requirements.txten Python. Lo que imprime queda en el log del deploy. - Comando de arranque es la línea que ejecuta tu app, por ejemplo
npm start,node index.jsopython main.py. Si lo dejas vacío se usa el comando por defecto de tu lenguaje (puedes revisarlo en Ajustes > Arranque). - Desplegar solo con cada push activa los deploys automáticos. Necesita un webhook, que añadirás en el paso 3.
Pulsa Guardar y desplegar. El primer deploy empieza enseguida.
Paso 2: Sigue el deploy
La pantalla Deploy muestra una línea de progreso con cuatro pasos: En cola, Código, Build y En línea. Pulsa Consola para ver cada línea mientras ocurre. Cuando termina verás el commit, cuánto tardó y un botón Ver log.
Un deploy pasa por estos estados:
| Estado | Significado |
|---|---|
| En cola | Espera su turno |
| Trayendo código | Obteniendo tu código del repositorio |
| Construyendo | Ejecutando tu comando de build y encendiendo la app |
| Desplegado | Terminó correctamente |
| Falló | Abre el log: casi siempre es una dependencia que falta o un comando de arranque equivocado |
| Cancelado | Lo cancelaste mientras estaba en cola |
Si pulsas Desplegar ahora mientras hay otro deploy en cola, el que esperaba se actualiza para incluir tus últimos cambios.
Paso 3: Despliega automáticamente con cada push
Un webhook es un aviso que tu repositorio envía a SolumeCore cada vez que haces un push.
- En Código > Deploy, comprueba que Desplegar solo con cada push esté activado y pulsa Guardar cambios.
- En la tarjeta Deploys automáticos (webhook), pulsa Generar secreto. Copia enseguida la URL del webhook y el secreto; el secreto se muestra una sola vez.
- Añade el webhook a tu repositorio.
En GitHub: abre Settings > Webhooks > Add webhook. Pon la URL del webhook en Payload URL, application/json en Content type y el secreto en Secret. Elige Just the push event y pulsa Add webhook.
En GitLab: abre Settings > Webhooks > Add new webhook. Pega la URL, pon el secreto en Secret token, marca solo Push events y pulsa Add webhook.
Los deploys automáticos funcionan con los eventos push de GitHub y GitLab. Solo los pushes a la rama que configuraste lanzan un deploy; los pushes a otras ramas se ignoran, y una entrega repetida del mismo push también.
Volver atrás, redesplegar o empezar de cero
- Desplegar ahora vuelve a publicar el último código de tu rama.
- El Historial de deploys lista cada versión con su estado y su duración. Pulsa Log para leerlo, o Volver a esta en una versión que funcionaba: desplegamos de nuevo esa versión exacta, y tus variables y los archivos que están fuera del repositorio se quedan como están.
- En el menú ..., Cambiar repositorio… te permite apuntar la app a otro repo, y Reinstalar desde cero borra todos los archivos del servidor y vuelve a clonar el repositorio.
Un deploy normal solo reemplaza los archivos que Git controla, así que cosas como una base de datos SQLite o los archivos subidos se conservan. Reinstalar desde cero borra cualquier archivo que no esté en el repositorio, incluidos node_modules y cualquier archivo .env. Haz un backup antes si algo importa.
Si necesitas una deploy key o un secreto de webhook nuevos, usa Generar una llave nueva o Generar otro secreto. El anterior deja de funcionar al instante, así que pega el nuevo en tu repositorio antes del siguiente deploy.
Solución de problemas
- El deploy falla enseguida con un mensaje sobre la rama: revisa el enlace, que la rama exista y, si el repo es privado, que la deploy key esté añadida al repositorio.
- La app se construye pero no arranca: abre la consola. Lo habitual es un Comando de arranque equivocado o una dependencia que falta.
- Un push no lanza un deploy: confirma que Desplegar solo con cada push esté guardado, que el secreto del webhook coincida, que el tipo de contenido sea
application/jsony que hiciste el push a la rama configurada. - El botón Desplegar ahora está deshabilitado: tienes cambios sin guardar. Guárdalos primero.
Preguntas frecuentes
¿Puedo desplegar un repositorio privado de GitHub?
Sí. Usa el enlace SSH y añade al repositorio la deploy key que muestra el asistente, sin permiso de escritura.
¿Un deploy borra mis datos?
Un deploy normal solo sobrescribe los archivos que están en tu repositorio. Los que no están en el repo, como una base de datos SQLite o los archivos subidos, se conservan. Solo Reinstalar desde cero borra también esos archivos.
¿Funciona con Bitbucket o con un servidor de Git propio?
Puedes clonar cualquier servidor de Git público por HTTPS, o por SSH con la deploy key. Los deploys automáticos con webhook funcionan con GitHub y GitLab. En otros servidores, pulsa Desplegar ahora después de cada push.
¿Cómo vuelvo a una versión anterior?
Abre el Historial de deploys y pulsa Volver a esta junto a la versión que quieras.
Artículos relacionados
- Variables de entorno de tu app o bot
- Ver los logs y la consola de tu app
- Deploys sin caída para tu app
- Desplegar un bot de Discord con Node.js (discord.js)
Si buscas un lugar donde ejecutar tu propio código, compara los planes de apps para Node.js, Python y más.