¿Qué cabe en un VPS de 2€?
Hasta la fecha, tengo varios servicios desperdigados entre varios servidores, alguna web en algún hosting, proyectos de un cliente en un servidor, el podcast en otro....y finalmente he decidido contratar un nuevo servidor en el que alojar ciertos servicios que quiero que funcionen al 100% y con los que no quiero tener problemas por el hecho de estar conviviendo junto a otros proyectos que se crean y se destruyen...
Aprovechando esta situación, me animo a inaugurar el blog y dejar aquí documentado todo el proceso.
Para empezar decidr que he utilizado un VPS de ionos, concretamente el S+ con 2 vCPU, 2 GB de RAM y 60 GB de disco, como sistema operativo he elegido ubuntu 24.04
Configuración dominio / DNS
Lo primero una vez IONOS me ha dado el servidor ha sido revisar la zona DNS de mi dominio en cloudflare y apuntar los subdominios correspondientes a los servicios que voy a alojar a la IP del VPS, aquí mencionar que no he habilitado la capa de proxy de cloudflare, quiero que las cosas funcionen haya futbol o no.
Concretamente voy a alojar estos servicios:
- nginx proxy manager
- pihole
- wireguard
- vaultwarden
- appflowy
- navidrome
- dropbot
- n8n
Instalación de Docker
Ya teniendo los nombres DNS, me he contado por SSH y he actualizado todo:
sudo apt-get update && sudo apt-get upgrade
He seguido con la instalación de Docker
# Add Docker's official GPG key:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Instalación de Nginx Proxy Manager y SSL
Ya con docker instalado, me he creado una carpeta: mkdir /root/docker y me he movido a su anterior para ir creando una carpeta para cada serivcio, por ejemplo: mdkir /root/docker/nginxpm
En este primer caso de nginx proxy manager, el compose.yml es este:
services:
app:
image: 'jc21/nginx-proxy-manager:2.16.0'
restart: unless-stopped
ports:
- '443:443'
- '8443:81'
environment:
TZ: "Europe/Madrid"
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
Mencionar que he quitado el puerto 80 que habitualmente se publica para el HTTP Challenge a la hora de generar certificados SSL porqué yo uso DNS Challenge, y he cambiado el puerto 81 a 8443 porqué en el caso de IONOS, el 8443 ya viene abierto en el firewall y así evitaba tocar.
Ya con el compose.yml creado, levanto el servicio con: docker compose up -d y accedo vía web para hacer la configuración inicial:
Lo primero que haré para ganar tiempo es generar un API Token en mi cuenta de cloudflare con los permisos necesarios para editar la zona DNS de mi dominio: https://dash.cloudflare.com/profile/api-tokens
Ya con el token creado, en Nginx Proxy Manager, voy a crear un certificado que sirva para todos los servicios, para ello voy a Certificates -> Add certificate y Let's encrypt via DNS
Elegimos los valores seleccionados en la foto:
Y en el campo Credentials File Content ponemos el token que hemos creado en cloudflare
Quedará tal que así:
Comentarios
Publicar un comentario