Fuentes de Deploy

Por: Artiko
dokploydeploygitdocker-registryzip

Fuentes de Deploy

Dokploy soporta multiples formas de obtener tu codigo o imagenes para deployar. Cada metodo tiene sus ventajas y casos de uso. Aqui los vemos todos.

Fuentes de codigo disponibles

FuenteAuto-deployBuild en DokployRepositorios privados
GitHub AppSi (webhooks)SiSi
GitHub OAuthNoSiSi
Git generico (GitLab, Bitbucket, etc.)Si (webhook manual)SiSi (SSH key)
Docker RegistryNoNo (imagen pre-built)Si (credenciales)
ZIP DropNoSiN/A

GitHub: el metodo principal

GitHub es la integracion mas completa en Dokploy. Hay tres formas de conectarlo.

GitHub App (recomendado)

La GitHub App es el metodo preferido. Ofrece permisos granulares, webhooks automaticos y acceso a repositorios especificos.

Configuracion:

  1. Ve a Settings > Git Providers en Dokploy
  2. Clic en Setup GitHub App
  3. Dokploy te redirige a GitHub para crear e instalar la app
  4. Selecciona la organizacion o cuenta personal
  5. Elige los repositorios a los que la app tendra acceso:
    • All repositories: Acceso a todo
    • Only select repositories: Solo los que elijas (recomendado)
  6. Confirma la instalacion

Una vez instalada, al crear un servicio:

  1. Selecciona GitHub como provider
  2. El dropdown muestra los repositorios disponibles
  3. Selecciona el repositorio y la rama
  4. Clic en Save

Auto-deploy con webhooks:

Con la GitHub App, cada push a la rama configurada dispara un deploy automatico. No necesitas configurar nada adicional:

Para desactivar auto-deploy, desmarca Auto Deploy en la configuracion del servicio.

GitHub OAuth

OAuth da acceso a todos los repositorios de tu cuenta sin instalar una app.

  1. Ve a Settings > Git Providers
  2. En la seccion GitHub, clic en Connect with OAuth
  3. Autoriza a Dokploy en GitHub
  4. Los repositorios aparecen disponibles al crear servicios

Diferencias con GitHub App:

Token personal (PAT)

Para repositorios especificos sin instalar la GitHub App:

  1. En GitHub, ve a Settings > Developer settings > Personal access tokens > Fine-grained tokens
  2. Crea un token con permisos:
    • Contents: Read
    • Metadata: Read
  3. En Dokploy, al configurar un servicio, selecciona Git como provider
  4. Usa la URL del repositorio con el token:
https://<token>@github.com/usuario/repositorio.git

O configura el token en los campos de autenticacion del provider Git generico.

Git generico (GitLab, Bitbucket, Gitea, Forgejo)

Para cualquier repositorio Git accesible por HTTPS o SSH.

Configuracion con HTTPS

  1. Al crear o editar un servicio, selecciona Git como provider
  2. Ingresa la URL del repositorio:
https://gitlab.com/usuario/mi-proyecto.git
https://bitbucket.org/usuario/mi-proyecto.git
https://git.miserver.com/usuario/mi-proyecto.git
  1. Si es privado, agrega las credenciales:
    • Username: Tu usuario
    • Password: Token de acceso personal (no tu password real)

Configuracion con SSH

Para repositorios privados via SSH:

  1. En Settings > SSH Keys, Dokploy genera un par de llaves
  2. Copia la llave publica
  3. Agregala como deploy key en tu plataforma Git:
    • GitLab: Settings > Repository > Deploy Keys
    • Bitbucket: Repository settings > Access keys
    • Gitea/Forgejo: Settings > Deploy Keys
  4. En el servicio, usa la URL SSH:
[email protected]:usuario/mi-proyecto.git
[email protected]:usuario/mi-proyecto.git

Webhooks manuales para auto-deploy

Con Git generico, debes configurar webhooks manualmente:

  1. En Dokploy, ve al servicio y copia la Webhook URL (disponible en la seccion de deployment)
  2. En tu plataforma Git, agrega un webhook:

GitLab: Settings > Webhooks > Add webhook

Bitbucket: Repository settings > Webhooks > Add webhook

Gitea/Forgejo: Settings > Webhooks > Add webhook (Gitea)

Cada push a la rama configurada dispara un nuevo deploy.

Deploy desde Docker Registry

Si ya tienes una imagen construida en un registry, Dokploy puede desplegarla directamente sin hacer build.

Registries soportados

Configuracion

  1. Crea un servicio de tipo Application
  2. En Provider, selecciona Docker
  3. Ingresa la imagen completa con tag:
nginx:alpine
node:22-alpine
ghcr.io/mi-org/mi-api:v1.2.3
mi-registry.com:5000/mi-app:latest
  1. Si el registry requiere autenticacion, configura las credenciales en Settings > Registry:
    • Docker Hub: Username + Access Token
    • GHCR: Username + Personal Access Token (con read:packages)
    • ECR: AWS Access Key + Secret Key

Agregar un registry privado

  1. Ve a Settings > Registry
  2. Clic en Add Registry
  3. Completa los campos:
    • Registry URL: ghcr.io, 123456789.dkr.ecr.us-east-1.amazonaws.com, etc.
    • Username: Usuario o AWS Access Key
    • Password: Token o AWS Secret Key
  4. Clic en Save

Una vez configurado, puedes usar imagenes de ese registry en cualquier servicio.

Actualizar la imagen

Cuando publicas una nueva version de la imagen:

  1. Ve al servicio en Dokploy
  2. Actualiza el tag si cambio (por ejemplo, v1.2.3v1.2.4)
  3. Clic en Deploy

Si usas el tag latest, simplemente haz deploy de nuevo y Dokploy descarga la version mas reciente.

ZIP Drop deployment

Disponible desde Dokploy v0.28, permite subir un archivo ZIP con el codigo fuente directamente desde el navegador.

Cuando usar ZIP Drop

Como funciona

  1. Crea un servicio de tipo Application
  2. En Provider, selecciona Drop
  3. Arrastra o selecciona un archivo .zip con tu codigo
  4. Dokploy extrae el ZIP y ejecuta el build (Nixpacks o Dockerfile, segun configuracion)
  5. Despliega la aplicacion

Preparar el ZIP

El ZIP debe contener los archivos del proyecto en la raiz (no dentro de una carpeta):

# Correcto: archivos en la raiz del ZIP
cd mi-proyecto
zip -r ../mi-proyecto.zip . -x ".git/*" "node_modules/*"

# Incorrecto: carpeta contenedora
zip -r mi-proyecto.zip mi-proyecto/

Excluye archivos innecesarios para reducir el tamano:

zip -r deploy.zip . \
  -x ".git/*" \
  -x "node_modules/*" \
  -x ".env*" \
  -x "*.test.*" \
  -x "coverage/*"

Limitaciones del ZIP Drop

Deploy desde rama especifica o tag

Independientemente del provider Git, puedes elegir que rama o tag desplegar.

Configurar la rama

En la configuracion del servicio, el campo Branch define desde donde Dokploy obtiene el codigo:

main
develop
release/v2.0
feature/nueva-funcionalidad

Cada deploy clona o actualiza esa rama especifica.

Deploy desde tag

Para deployar un tag especifico (por ejemplo, para releases):

  1. En el campo Branch, ingresa el nombre del tag:
v1.0.0
v2.3.1
release-2026-02
  1. Clic en Deploy

Esto es util para:

Estrategia recomendada con ramas

main          → produccion (auto-deploy)
staging       → staging (auto-deploy)
develop       → desarrollo (deploy manual)

Configura un servicio por entorno, cada uno apuntando a su rama correspondiente.

Cuando usar cada fuente

GitHub App

Git generico (SSH/HTTPS)

Docker Registry

ZIP Drop


Anterior: Capitulo 8: Docker Compose | Siguiente: Capitulo 10: PostgreSQL y MySQL