En este tutorial te enseñare a crear tu propio servicio PaaS usando Caprover, un software open source que ofrece caracteristicas similares a plataformas de la nube como Heroku, Railway o render.com en esencia.

Caprover puede funcionar con cualquier aplicacion de cualquier lenguaje, ya que al final este lo maneja en sus propios contendores de Docker

¿Qué es Caprover?

CapRover es software que te permite crear tu propio servicio PaaS en tus propios servidores de forma rapida, simple, y sobretodo totalmente administradas por ti.

Requerimientos

Para poder hacer este tutorial es necesario cumplir con los siguientes requerimientos.

  • Servidor (VPS), en mi caso para el VPS voy a usar la nube de DigitalOcean, el cual a los VPS les llama Droplets. Aunque si usas otro proveedor tambien puedes seguir los mismso pasos.
  • Un Dominio, y para el dominio usaré un domino comprado en Namecheap

Creación de VPS (Droplet)

Puedes crear un droplet de digitalocean desde cero o usar el marketplace para crear un droplet con software ya instalado. en este caso escogere este ultimo buscando el termino Docker, aunque tambien esta *Caprover sin embargo como esta opcion no esta disponible en todos los servicios de la nube ire simplemente por docker al ser algo más generico.

Ademas escogere un plan de 6$ minimo. Luego podras incremetar el plan si lo requieres.

Conectate con ssh a tu servidor. el comando para conectarte lucirá así:

ssh root@206.177.96.239

Luego ya que hemos seleccionar Docker en el proceso de creacion del Droplet, vamos a comprobar la version de Docker:

docker version

configurando firewall

ufw allow 80,443,3000,996,7946,4789,2377/tcp; ufw allow 7946,4789,2377/udp;

el comando anterior se selecciona y se copia todo, sin ningun problema

Ejecutar Contenedor

docker run -p 80:80 -p 443:443 -p 3000:3000 -v /var/run/docker.sock:/var/run/docker.sock -v /captain:/captain caprover/caprover

Puede que obtengas un error, asi que necesitaras aceptar los terminos de uso:

docker run -p 80:80 -p 443:443 -p 3000:3000 -e ACCEPTED_TERMS=true  -v /var/run/docker.sock:/var/run/docker.sock -v /captain:/captain caprover/caprover

Añade un wildcard a tu dominio

Primero enlaza namecheap a digitalocean, colocando en Custom DNS en namechap:

ns1.digitalocean.com
ns2.digitalocean.com
ns3.digitalocean.com

luego en Digitalocean DN, añade esto en tu dominio, apuntando al droplet de caprover.

*.something

otros wildcards pueden ser demo, app, web, etc

Instalación del CLI

Ahora configuraremos nuestro servidor de caprover. Primero intalar el CLI de caprover.

npm i -g caprover
pnpm add -g caprover

Ejecuta lo siguiente:

caprover serversetup
  • docker ejecutandose? Yes
  • dominio del droplet: 206.188.80.239 root domain: something.fazt.site contraseña: repite contraseña: email: test@caprover.com caprover machine name: (Default)

Nota que el root domain no es fazt.site sino something.fazt.site debido a que en los DNS asignamos *.something

Haz click en el link generado, para que te lleve al panel de control de tu PaaS.

Subiendo una aplicación

Ahora vamos a subir una aplicación de ejemplo en Caprover:

git clone https://github.com/fazt/books-express

Luego instalaremos algunas dependencias:

npm start

crea una aplicación en caprover:

añade un archivo llamado captain-definition en el root de tu proyecto:

 {
  "schemaVersion": 2,
  "templateId": "node/17.9.1"
 }

ejecuta un commit.

para casos mas compljos puedes crear un contendor en cualquier lenguaje java, c#, nodje, etc.

ejecuta luego:

caprover deploy

selecciona la maquina de caprover por defecto, luego selecciona tu app.

Habilitar SSL

para habilitar SSL puedes usar, simplemente puedes ir a tu aplicacion y dar un click en Enable HTTPS

Tambien puedes forzar la redireccion a HTTPS desde la misma ventana.

One Click Apps

tambien es posible instalar programas simplemente buscandolos en su marketplace. Por ejemplo simplemente busca Wordpress y coloca las credenciales tipicas.

Monitorizacion

Finalmente veremos como añadir Monitorizacion a nuestras aplicaciones.

Más Recursos