Tips para Produccion y Cierre del Tutorial
Tips para Produccion y Cierre del Tutorial
Este capitulo final recopila las mejores practicas para operar Dokploy en produccion, desde la preparacion inicial hasta el mantenimiento continuo.
Checklist Pre-Produccion
Antes de exponer tu servidor Dokploy a trafico real, verifica cada punto:
Seguridad
- Firewall configurado (solo puertos 80, 443, 22, y los de Swarm si aplica)
- SSH con autenticacion por llave (password deshabilitado)
- Fail2ban activo para proteger contra fuerza bruta
- Panel de Dokploy accesible solo por HTTPS
- Contraseña de admin de Dokploy robusta (minimo 16 caracteres)
- Traefik configurado para redirigir HTTP a HTTPS
- No hay puertos de bases de datos expuestos al exterior
Aplicaciones
- Cada aplicacion tiene dominio con SSL configurado
- Variables de entorno sensibles no estan hardcodeadas
- Health checks configurados para cada aplicacion critica
- Limites de recursos (CPU/RAM) definidos
- Logs accesibles desde el panel
Backups
- Backup automatico de bases de datos configurado
- Backup de volumenes criticos configurado
- Destino de backups externo al servidor (S3, otro servidor)
- Restauracion de backup probada al menos una vez
- Notificaciones de backup activas
Monitoreo
- Notificaciones configuradas en al menos un canal
- Umbrales de servidor definidos (CPU, RAM, disco)
- Monitoreo externo configurado (Uptime Kuma, StatusCake, etc.)
Optimizar Rendimiento del Servidor Host
Dimensionar correctamente
Recomendaciones minimas segun carga:
| Escenario | CPU | RAM | Disco |
|---|---|---|---|
| 1-3 apps simples | 2 cores | 4 GB | 40 GB SSD |
| 5-10 apps medianas | 4 cores | 8 GB | 80 GB SSD |
| 10+ apps o alto trafico | 8+ cores | 16+ GB | 160+ GB SSD |
Dokploy mismo consume aproximadamente 500 MB de RAM y minimo de CPU.
Limpieza automatica de Docker
Docker acumula imagenes, contenedores detenidos y volumenes huerfanos. Dokploy tiene limpieza automatica, pero puedes complementarla:
# Ver espacio usado por Docker
docker system df
# Limpieza manual (solo recursos no usados)
docker system prune -a --volumes
Para automatizar, agrega un cron:
# Ejecutar limpieza cada domingo a las 3 AM
0 3 * * 0 docker system prune -af --filter "until=168h"
Esto elimina imagenes no usadas con mas de 7 dias de antiguedad.
Swap
Si tu servidor tiene poca RAM, configura swap como respaldo:
# Crear archivo de swap de 4 GB
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# Hacer permanente
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
# Ajustar swappiness (usar swap solo cuando sea necesario)
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
Limites del sistema operativo
Aumenta los limites de archivos abiertos y conexiones:
# /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
# /etc/sysctl.conf
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
fs.file-max = 2097152
Aplica los cambios:
sudo sysctl -p
Estrategia de Backups (3-2-1)
La regla 3-2-1 establece:
- 3 copias de tus datos
- 2 tipos de almacenamiento diferentes
- 1 copia fuera del sitio (offsite)
Implementacion practica con Dokploy
Copia 1: Backup local automatico
Configura backups automaticos en Dokploy para cada base de datos. Los backups se guardan en el servidor.
Copia 2: Backup en almacenamiento externo
Configura un destino S3 (o compatible) en Dokploy:
- Ve a Settings > S3 Destinations
- Agrega tu bucket:
| Campo | Valor |
|---|---|
| Name | backup-produccion |
| Endpoint | s3.amazonaws.com (o tu proveedor) |
| Bucket | mi-bucket-backups |
| Region | us-east-1 |
| Access Key | Tu access key |
| Secret Key | Tu secret key |
Proveedores S3-compatible economicos:
- Backblaze B2: $0.005/GB/mes
- Cloudflare R2: sin costo de egress
- MinIO: self-hosted, gratuito
Copia 3: Backup offsite periodico
Copia manual o automatizada a otro servidor o disco externo:
# Sincronizar backups locales a otro servidor via rsync
rsync -avz /ruta/backups/ usuario@otro-servidor:/backups/dokploy/
Frecuencia recomendada
| Tipo de dato | Frecuencia |
|---|---|
| Bases de datos en produccion | Cada 6-12 horas |
| Volumenes con archivos de usuario | Diario |
| Configuracion del servidor | Semanal |
| Snapshot completo del VPS | Mensual |
Probar restauraciones
Un backup que no puedes restaurar no es un backup. Programa pruebas periodicas:
# Restaurar un backup de PostgreSQL en un contenedor temporal
docker run --rm -v /ruta/backup:/backup postgres:16 \
pg_restore -d test_restore /backup/mi-backup.dump
Actualizar Dokploy a Nuevas Versiones
Dokploy se actualiza desde el propio panel:
- Ve a Settings
- Si hay una nueva version, aparecera un aviso
- Haz clic en Update
Antes de actualizar
- Lee el changelog en GitHub Releases
- Verifica si hay breaking changes
- Haz un snapshot/backup del servidor
- Programa la actualizacion en horario de bajo trafico
Actualizacion manual via CLI
Si el panel no responde:
cd /root/.dokploy
docker compose pull
docker compose up -d
Rollback
Si la actualizacion causa problemas:
cd /root/.dokploy
# Editar docker-compose.yml y cambiar la version de la imagen
# de "latest" a la version anterior, ej: "v0.27.0"
docker compose up -d
Monitoreo Externo Complementario
Dokploy monitorea internamente, pero un monitor externo detecta cuando el propio Dokploy o el servidor caen.
Opciones recomendadas
Uptime Kuma (self-hosted en otro servidor):
Instalalo en un VPS diferente al de Dokploy para que sea independiente. Monitorea:
- El panel de Dokploy
- Cada aplicacion desplegada
- Endpoints criticos de tu API
Servicios externos gratuitos:
| Servicio | Plan gratuito |
|---|---|
| UptimeRobot | 50 monitores, cada 5 min |
| StatusCake | 10 monitores, cada 5 min |
| Hetrix Tools | 15 monitores, cada 1 min |
| Cronitor | 5 monitores |
Que monitorear
- Disponibilidad: que la URL responda con codigo 200
- Latencia: que el tiempo de respuesta sea aceptable (< 2s)
- Certificado SSL: que no expire sin aviso
- Disco: alerta cuando quede menos del 20% libre
- Contenido: que la respuesta contenga un string esperado
Cuando Considerar Multiples Servidores
Senales de que necesitas mas de un servidor:
- El uso de CPU esta constantemente arriba del 80%
- La RAM se llena y el swap se usa frecuentemente
- Los deployments afectan el rendimiento de otras aplicaciones
- Necesitas alta disponibilidad (99.9%+ uptime)
- Tienes aplicaciones con requisitos de aislamiento (compliance, seguridad)
Estrategia de separacion
Una distribucion comun:
- Servidor 1: Dokploy (manager) + aplicaciones web
- Servidor 2: Bases de datos + backups
- Servidor 3: Worker para tareas pesadas (builds, cron jobs)
Con Docker Swarm configurado (capitulo 21), agregar servidores es cuestion de un comando.
Recursos de la Comunidad
Canales oficiales
- Documentacion: docs.dokploy.com
- GitHub: github.com/Dokploy/dokploy - Issues, PRs, discusiones
- Discord: Comunidad activa con soporte en tiempo real
Contribuir
Dokploy es open source (Apache 2.0). Puedes contribuir:
- Reportando bugs en GitHub Issues
- Creando templates para el catalogo
- Mejorando la documentacion
- Compartiendo tu experiencia en el Discord
Mantenerse actualizado
- Sigue el repositorio en GitHub (Watch > Releases)
- Unete al Discord para anuncios
- Revisa el changelog antes de cada actualizacion
Resumen del Tutorial
A lo largo de 25 capitulos cubrimos el camino completo de Dokploy:
Fundamentos (1-5): Que es Dokploy, instalacion, primer deploy, dominios y SSL, variables de entorno.
Aplicaciones (6-10): Aplicaciones desde Git, Docker Compose, Dockerfiles, builds avanzados, logs y monitoreo.
Bases de datos (11-15): PostgreSQL, MySQL, MongoDB, Redis, backups automaticos.
Administracion (16-20): Gestion de proyectos, usuarios y permisos, Traefik avanzado, seguridad, Docker Cleanup.
Avanzado (21-25): Docker Swarm, CI/CD con webhooks y CLI, templates one-click, notificaciones, produccion.
Proximos pasos
Con lo aprendido puedes:
- Migrar servicios existentes de proveedores pagos a tu propio servidor
- Automatizar deployments con webhooks o GitHub Actions
- Escalar cuando el trafico lo requiera con Docker Swarm
- Explorar templates para herramientas que aun no conoces
- Contribuir al proyecto open source
Dokploy es una herramienta que mejora con cada version. Mantenerte actualizado y participar en la comunidad te dara acceso a nuevas funcionalidades y soluciones a problemas comunes.
Fin del tutorial. Vuelve al indice para revisar cualquier capitulo.