Capitulo 5: Primer Deploy
Capitulo 5: Primer Deploy
< Volver al Indice del Tutorial
Crear una App Node.js de Ejemplo
Vamos a crear una aplicacion Express minima para desplegar en Dokploy. Crea un repositorio nuevo en GitHub con estos archivos:
package.json
{
"name": "dokploy-demo",
"version": "1.0.0",
"scripts": {
"start": "node server.js"
},
"dependencies": {
"express": "^4.21.0"
}
}
server.js
const express = require("express");
const app = express();
const PORT = process.env.PORT || 3000;
app.get("/", (req, res) => {
res.json({
status: "ok",
message: "App desplegada con Dokploy",
timestamp: new Date().toISOString(),
node_version: process.version,
});
});
app.get("/health", (req, res) => {
res.status(200).json({ healthy: true });
});
app.listen(PORT, "0.0.0.0", () => {
console.log(`Servidor corriendo en puerto ${PORT}`);
});
.gitignore
node_modules/
.env
Sube estos archivos a un repositorio en GitHub (puede ser publico o privado).
Conectar Repositorio GitHub con Dokploy
Opcion 1: Repositorio publico (mas rapido)
Si tu repositorio es publico, puedes conectarlo sin autenticacion.
- En el panel de Dokploy, ve a Projects.
- Crea un nuevo proyecto llamado “demo”.
- Dentro del proyecto, haz clic en Create Service > Application.
- En el formulario:
- Name:
demo-api - Source: Git
- Name:
- Haz clic en Create.
En la configuracion de la aplicacion:
- Ve a la pestana General.
- En Repository URL, ingresa la URL HTTPS de tu repositorio:
https://github.com/tu-usuario/dokploy-demo.git - En Branch, selecciona
main. - Haz clic en Save.
Opcion 2: Repositorio privado con GitHub App
Para repositorios privados, Dokploy ofrece integracion directa con GitHub:
- Ve a Settings > Git Providers.
- Haz clic en Connect GitHub.
- Se abre una ventana de autorizacion de GitHub.
- Selecciona la cuenta u organizacion.
- Elige los repositorios a los que Dokploy tendra acceso (o todos).
- Confirma la autorizacion.
Una vez conectado, al crear una aplicacion puedes seleccionar el repositorio directamente desde un dropdown en lugar de escribir la URL.
Opcion 3: Repositorio privado con SSH Key
Si prefieres no usar la GitHub App:
- Ve a Settings > SSH Keys y genera un par de claves.
- Copia la clave publica.
- En GitHub, ve al repositorio > Settings > Deploy Keys > Add deploy key.
- Pega la clave publica y habilita acceso de lectura.
- En Dokploy, usa la URL SSH del repositorio:
[email protected]:tu-usuario/dokploy-demo.git
Configurar el Build y Deploy
Metodo de build: Nixpacks
Nixpacks es el metodo de build por defecto y el mas simple. Detecta automaticamente que tu proyecto es Node.js por la presencia de package.json.
En la pestana General de la aplicacion:
- Build Type: Nixpacks (seleccionado por defecto).
- Publish Directory: Dejar vacio (no es un sitio estatico).
No necesitas configurar nada mas. Nixpacks detecta:
- Runtime: Node.js (por
package.json). - Comando de instalacion:
npm install. - Comando de inicio:
npm start(del script enpackage.json).
Variables de entorno
Ve a la pestana Environment y agrega:
PORT=3000
Dokploy inyecta estas variables en el contenedor durante el build y en tiempo de ejecucion.
Puerto de la aplicacion
En la pestana Advanced > Ports, configura:
- Container Port: 3000
- Protocol: HTTP
Este es el puerto interno donde Express escucha. Traefik enruta el trafico externo (80/443) a este puerto.
Ejecutar el Deploy
Con todo configurado:
- Ve a la pestana Deployments.
- Haz clic en Deploy.
- Dokploy inicia el proceso de build.
Que sucede durante el deploy
El ciclo completo es:
- Clone: Dokploy clona el repositorio desde GitHub.
- Build: Nixpacks analiza el proyecto, instala dependencias y construye la imagen Docker.
- Push: La imagen se almacena en el registry interno.
- Deploy: Docker Swarm despliega el contenedor con la nueva imagen.
- Health Check: Dokploy verifica que el contenedor esta saludable.
- Route: Traefik actualiza las rutas para dirigir trafico al nuevo contenedor.
Ver los Logs del Build
Durante el deploy, la pestana Deployments muestra los logs en tiempo real:
[+] Building...
=> Detecting language: Node.js
=> Installing dependencies
npm install
added 64 packages in 3s
=> Starting application
npm start
Servidor corriendo en puerto 3000
Si el build falla, los logs muestran el error exacto. Causas comunes:
- Dependencia faltante: Error en
npm install. Verificapackage.json. - Error de sintaxis: El codigo no compila. Revisa el error del build.
- Puerto incorrecto: La app inicia pero Traefik no puede conectar. Verifica la configuracion de puertos.
Historial de deployments
Cada deploy se registra con:
- Fecha y hora.
- Commit hash de Git.
- Estado: success, failed, running.
- Duracion del build.
- Logs completos.
Puedes hacer rollback a cualquier deploy anterior haciendo clic en “Redeploy” en un deployment exitoso previo.
Acceder a la Aplicacion Desplegada
Sin dominio (por IP)
Si no has configurado un dominio, puedes acceder temporalmente por el puerto expuesto. En la pestana Advanced > Ports, habilita el acceso publico al puerto.
Accede a:
http://tu-ip-del-servidor:3000
Con dominio (recomendado)
Para acceso por dominio con SSL:
- Ve a la pestana Domains.
- Haz clic en Add Domain.
- Ingresa el dominio (ej:
api.tudominio.com). - Selecciona HTTPS y habilita Generate Certificate.
- Haz clic en Save.
Previamente debes crear un registro DNS tipo A apuntando api.tudominio.com al IP de tu servidor.
Una vez propagado el DNS (puede tomar minutos), accede a:
https://api.tudominio.com
Respuesta esperada:
{
"status": "ok",
"message": "App desplegada con Dokploy",
"timestamp": "2026-02-28T15:30:00.000Z",
"node_version": "v20.11.0"
}
Entender el Ciclo: Push, Build, Deploy
Una vez configurada la aplicacion, el flujo de trabajo continuo es:
[Git Push] → [Webhook] → [Clone] → [Build] → [Deploy] → [Route]
Deploys automaticos
Para que cada push a la rama main dispare un deploy automatico:
- En la pestana General, habilita Autodeploy.
- Dokploy registra un webhook en tu repositorio de GitHub.
- Cada push a la rama configurada inicia un build y deploy automaticamente.
Deploys manuales
Si prefieres control manual:
- Deshabilita Autodeploy.
- Ve a Deployments y haz clic en Deploy cuando quieras desplegar.
Flujo tipico de desarrollo
# Desarrollar localmente
code server.js
# Probar localmente
node server.js
# Commit y push
git add .
git commit -m "feat: agregar endpoint /users"
git push origin main
# Si Autodeploy esta habilitado: deploy automatico
# Si no: ir al panel y hacer clic en Deploy
Verificar el deploy
Despues de cada deploy, verifica que la aplicacion responde:
curl https://api.tudominio.com/health
Respuesta esperada:
{ "healthy": true }
El health check endpoint (/health) es una buena practica. Dokploy puede usarlo para verificar automaticamente que la aplicacion esta funcionando y reiniciarla si falla.
Siguiente: Capitulo 6: Nixpacks —>