Lo primero que debemos hacer es crear un droplet utilizando la opción de digital ocean llamada “One click apps” en la que debemos seleccionar la que contiene la distribución de Dokku.
Luego de seleccionar esta opción debemos seleccionar el tipo de droplet que necesitamos, lo recomendado en la documentación de dokku es contar con al menos 1gb de ram. En mi caso he seleccionado un droplet de
2 vCPUs y 4g de ram.
La región del datacenter a utilizar la dejo a su propia elección de acuerdo a su posición geográfica. Luego de esta configuración y de colocar el nombre del droplet que crearemos presionamos en create.
Una vez finalizada la creación del droplet por digitalocean recibiremos un correo electrónico con la confirmación y los datos de acceso a la cuenta mediante el uso de ssh.
Antes de conectarnos vía ssh, procederemos a abrir en el navegador web la ip que hemos recibido en el email. Al ingresar deberíamos ver una pantalla similar a la que se muestra a continuación.
En este punto necesitamos conectarnos vía ssh a nuestro servidor para poder obtener la clave pública que usaremos para completar el proceso.
Ahora nos conectaremos con ssh para poder generar la clave pública que dokku nos pide para poder terminar de configurar.
Para ello ejecutaremos una vez que ingresamos por consola al servidor el siguiente comando:
ssh-keygen -t rsa
Una vez que fue generada debemos obtenerla para poder copiarla, para ello utilizamos el siguiente comando:
cat /root/.ssh/id_rsa.pub
Luego de realizada esta acción volvemos a la ventana de nuestro navegador que habíamos abierto anteriormente y pegamos la clave pública en el campo Public key. Quedándonos como muestra la siguiente imagen.
Ya con esto podemos comenzar a trabajar pero de la forma configurada por defecto nos permite tener múltiples aplicaciones pero con la salvedad que siempre para acceder debemos utilizar la ip de nuestro servidor y lo que cambiara entre aplicación y aplicación es el puerto al que accedemos.
En mi caso utilizare un dominio pero además he clickeado la opción “User virtualhost naming for apps” lo que nos permite tener subdominios de la aplicación de esta forma podemos tener my-app-1.rexolution.com asi como otra llamada my-app-2.rexolution.com y así sucesivamente.
Una vez realizada esta configuración presionamos Finish Setup, si todo ha salido correctamente nos redireccionará a la documentación de Dokku en su sitio web.
Finalizado estos pasos ya podemos comenzar a hacer el deploy de nuestros proyectos. Existen 2 formas de configurar
La primera consiste en configurar nuestro dominio con la ip del servidor donde está instalado dokku para ello vamos la configuración del mismo y establecemos 2 DNS. El primero es un comodín que permite que luego que la aplicación se encuentra deployada se pueda acceder por el dominio establecido cuando se crea a través de Dokku. El segundo es el dominio principal del sitio web que lo he dejado establecido con el fin de tener el sitio web empresarial.
Una vez realizado esto y que nuestro dominio se encuentra configurado, nos dirigimos a la carpeta donde tenemos nuestro proyecto y ejecutamos la siguiente sentencia.
git remote add dokku dokku@rexolution.com:myapp
La segunda forma es utilizar en lugar de un dominio la ip del servidor para ello, tan solo basta con ejecutar la sentencia:
git remote add dokku dokku@206.189.224.105:myapp
Pero antes de poder ejecutar el comando para hacer el deploy hacia el servidor debemos copiar nuestra llave pública hacía el servidor donde tenemos instalado Dokku.
Para ello ejecutamos el comando:
cat ~/.ssh/id_rsa.pub | ssh root@206.189.224.105 “sudo sshcommand acl-add dokku admin”
Al ejecutarlo nos solicitará el password del servidor, luego de ingresarlo nos retornará como confirmación un SHA256.
Luego de realizado estos pasos volvemos a la carpeta de nuestro proyecto y ejecutamos git push dokku master. En este punto comenzará el deploy al estilo heroku.
Como aclaración hay que mencionar que como usamos git para versionar antes de subir nuestra aplicación debemos de hacer los pasos correspondientes:
git add .
git commit -m "Initial Commit"
git push dokku master
El resultado en la consola de nuestra máquina luce así.
Si nos dirigimos al navegador podemos ver el resultado de nuestro ejemplo ejecutándose.