Dockploy la alternativa a Heroku, Vercel y Netlify para desplegar aplicaciones con Docker

· 10min · docker

Introducción

Dockploy es una plataforma de despliegue de aplicaciones que utiliza Docker para facilitar el proceso de despliegue y gestión de aplicaciones web. Es una alternativa a servicios como Heroku, Vercel y Netlify, pero con un enfoque en la simplicidad y la flexibilidad que ofrece Docker. Dockploy permite a los desarrolladores desplegar sus aplicaciones de manera rápida y sencilla, sin necesidad de preocuparse por la infraestructura subyacente. Con Dockploy, los desarrolladores pueden centrarse en escribir código y dejar que la plataforma se encargue del resto.

URL principal: https://dokploy.com

Arquitectura de Dockploy

imagenes/dockploy/dokploy-06-architecture.png Dockploy está construido sobre una arquitectura de microservicios que utiliza Docker para aislar y gestionar las aplicaciones. La plataforma consta de varios componentes clave:

Características principales

Dockploy ofrece una serie de características que facilitan el despliegue y la gestión de despliegues:

Requisitos previos

Dockploy está diseñado para funcionar en sistemas Linux, por lo que necesitarás una distribución compatible:

Además será necesario disponer de recursos mínimos en el servidor donde se instale Dockploy, como:

A mayores necesitarás disponer de más recursos a la hora de desplegar aplicaciones, dependiendo de los requisitos de cada aplicación.

Instalación de Dockploy

La instalación de Dockploy es sencilla y se puede realizar en pocos pasos. A continuación, se describen los pasos básicos para instalar Dockploy en tu servidor:

  1. Actualizar el sistema: Antes de instalar Dockploy, es recomendable actualizar el sistema para asegurarse de que todos los paquetes estén al día. Por ejemplo, en Debian o Ubuntu, puedes usar el siguiente comando como root:
apt update && sudo apt upgrade -y
  1. Instalar Docker: Dockploy utiliza Docker para gestionar las aplicaciones, por lo que es necesario tener Docker instalado en el servidor. Puedes seguir las instrucciones oficiales de Docker para instalarlo en tu sistema operativo. Sino el instalador de Dockploy también puede instalar Docker automáticamente si no está presente en el sistema.
  2. Instalar Dockploy: Una vez que Docker esté instalado, puedes proceder a instalar Dockploy. La forma más sencilla de hacerlo es utilizando el script de instalación proporcionado por Dockploy. Puedes descargar y ejecutar el script con los siguientes comandos:
curl -sSL https://dokploy.com/install.sh | sh

Al final de la instalación, el script te proporcionará una URL para acceder a la interfaz web de Dockploy.

Congratulations, Dokploy is installed!
Wait 15 seconds for the server to start
Please go to http://SERVER_IP:3000

Acceso a la interfaz web

Una vez que Dockploy esté instalado, puedes acceder a la interfaz web de Dockploy a través de tu navegador web. La URL de acceso dependerá de la configuración de tu servidor, pero generalmente será algo como http://mi-servidor-ip:3000. imagenes/dockploy/dokploy-01-first-web-admin.png En esta pantalla inicial, deberás crear una cuenta de administrador para poder gestionar Dockploy. Introduce:

Configuración inicial del dominio

Antes de comenzar a crear proyectos y servicios, es recomendable configurar un dominio para acceder a Dockploy. Esto facilitará el acceso a la plataforma y permitirá utilizar certificados SSL para asegurar las conexiones.

Para ello necesitaremos un dominio propio y configurarlo para que apunte a la dirección IP de nuestro servidor donde hemos instalado Dockploy. Mediante un registro A en la configuración DNS del dominio,

Después, para configurar el dominio dentro del Dokploy, ve a la sección “Settings” en el menú lateral y selecciona “Web Server”.

En el apartado “Server Domain”, puedes configurar el dominio que deseas utilizar para acceder a Dockploy. En el campo “Domain”, introduce el nombre de dominio que deseas utilizar para acceder a Dockploy (por ejemplo, dockploy.midominio.com). En nuestro caso, meteremos dokploy.cursosdedesarrollo.com. Despues, en el campo “Let’s Encrypt Email”, introduce una dirección de correo electrónico válida que se utilizará para gestionar los certificados SSL con Let’s Encrypt. A continuación, en el apartado “HTTPS”, activa el interruptor para habilitar el soporte HTTPS en Dockploy. Además deberás elegir el “Certificate Provider”, con Let’s Encrypt es la opción recomendada. Por último, haz clic en el botón “Save” para guardar la configuración.

Debería salir una notificación indicando que la configuración se ha guardado correctamente.

Después de guardar la configuración, Dockploy intentará obtener un certificado SSL para el dominio que has configurado utilizando Let’s Encrypt: https://dokploy.cursosdedesarrollo.com/

Proyectos

Una vez que hayas accedido a la interfaz web de Dockploy, puedes comenzar a crear y gestionar tus proyectos. Un proyecto en Dockploy representa una aplicación que deseas desplegar y gestionar. En el apartado “Projects”, puedes ver una lista de tus proyectos existentes y crear nuevos proyectos. Para crear un nuevo proyecto, haz clic en el botón “Create Project” y proporciona la siguiente información:

Servicios

Dentro de cada proyecto, puedes crear y gestionar servicios. Un servicio en Dockploy representa una instancia de tu aplicación que se ejecuta en un contenedor Docker. Para crear un nuevo servicio, haz clic en el botón “Create Service” dentro de tu proyecto. imagenes/dockploy/dockploy/dokploy-03-create-service-modal.png Nos ofrece varias opciones para desplegar nuestra aplicación:

Databases

Dockploy también permite desplegar y gestionar bases de datos como servicios dentro de tus proyectos. Puedes elegir entre varias bases de datos populares, como PostgreSQL, MySQL, MariaDB, MongoDB y Redis. Para crear un nuevo servicio de base de datos, selecciona la opción “Database” al crear un servicio. imagenes/dockploy/dokploy-04-create-service-database.png Como vemos en la imagen, podemos elegir entre varias bases de datos populares. Selecciona la base de datos que deseas desplegar y proporciona la siguiente información:

Acceso externo a la base de datos por consola

Para acceder a la base de datos desde fuera de Dockploy, necesitaremos desde la pestaña general, irnos al apartado “External Credentials” y cambiar el puerto por defecto (3306 en el caso de MySQL/MariaDB) por otro puerto que no esté en uso en el servidor. Pulsamos en el botón “Save” para guardar los cambios. Para acceder a la base de datos desde fuera de Dockploy, necesitaremos la siguiente información:

mariadb -h SERVER_IP -P PORT -u Database_User -p NOMBRE_DATABASE

Nos pedirá la contraseña y si todo es correcto, deberíamos poder acceder a la base de datos.

Acceso a la base de datos desde PHPMyAdmin

Si hemos desplegado una base de datos MySQL o MariaDB, podemos acceder a la base de datos desde PHPMyAdmin, que es una herramienta web para gestionar bases de datos MySQL/MariaDB. Para ello, necesitaremos desplegar un servicio de PHPMyAdmin dentro de nuestro proyecto en Dockploy. Al crear el servicio, seleccionamos la opción “Compose” y proporcionamos la siguiente información:

services:
  phpmyadmin:
    image: phpmyadmin:5.2.2
    environment:
      # Permite introducir manualmente el host/puerto del servidor en la UI
      PMA_ARBITRARY: '1'
      # Opcional: ajusta el tamaño de subida si lo necesitas
      UPLOAD_LIMIT: 512M

Como vemos en el archivo docker-compose, estamos desplegando un servicio de PHPMyAdmin que se conectará a cualquier base de datos MySQL/MariaDB que le indiquemos manualmente. Indicamos dos variables de entorno:

El puerto 80 es el que expone el contenedor por defecto para acceder a PHPMyAdmin.

Pulsamos en el botón “Save” para guardar los cambios.

Pulsamos en el botón “Deploy” para desplegar el servicio.

Configuración de dominio personalizado para PHPMyAdmin o cualquier otro servicio

Si queremos acceder a PHPMyAdmin o cualquier otro servicio desplegado En Dockploy mediante un dominio personalizado, podemos configurar un dominio o subdominio en la sección “Domains” del servicio que queramos configurar.

Para ello pulsaremos en el botón “Add Domain” y proporcionaremos la siguiente información:

Deberíamos ver el dominio en la lista de dominios del servicio. imagenes/dockploy/dokploy-09-service-custom-domain.png

Ahora deberíamos validar el DNS pulsando en el botón “Validate DNS” para asegurarnos de que el dominio apunta correctamente a la dirección IP de nuestro servidor donde está desplegado Dockploy y que se generan los certificados SSL si hemos activado la opción HTTPS.

imagenes/dockploy/dokploy-10-service-custom-domain-validated-dns.png Una vez que el DNS esté validado, deberíamos poder acceder al servicio con el dominio personalizado que hemos configurado. Es posible que tengamos que esperar unos minutos/horas para que los cambios de DNS se propaguen y los certificados SSL se generen correctamente. De momento, genera un certificado autofirmado para el dominio, así que el navegador nos mostrará una advertencia de seguridad al acceder al dominio por primera vez.

Pero una vez hecho esto, ya podremos acceder a PHPMyAdmin o cualquier otro servicio desplegado en Dockploy mediante el dominio personalizado que hemos configurado: https://phpmyadmin.midominio.com/

Recuerda que cuando puedas acceder a PHPMyAdmin, deberás quitar el puerto 8080 del docker compose que creamos anteriormente para que podamos acceder a PHPMyAdmin sólo mediante el dominio personalizado y evitar posibles problemas de seguridad al usar https en vez del puerto 8080 sin cifrado por http.

Conclusión

Como vemos hemos visto cómo instalar y utilizar Dockploy para desplegar y gestionar aplicaciones y bases de datos utilizando Docker. Dockploy es una plataforma sencilla y flexible que facilita el proceso de despliegue y gestión de aplicaciones web, permitiendo a los desarrolladores centrarse en escribir código y dejar que la plataforma se encargue del resto. En concreto para desplegar bases de datos, hemos visto cómo crear un servicio de base de datos y cómo acceder a la base de datos desde fuera de Dockploy y desde PHPMyAdmin.