Saltar al contenido principal

VPS Hermes: cómo desplegué mi portfolio en Oracle Cloud gratis

vps oracle-cloud devops docker

Cuando decidí crear mi portfolio profesional, la primera pregunta era obvia: ¿dónde lo despliego? Las opciones eran un hosting compartido, un servicio de sites estáticos, o directamente un VPS propio. La tercera opción siempre me atrajo más, pero el coste siempre era un factor. Hasta que descubrí que Oracle Cloud tiene un tier gratuito que, si lo usas bien, no caduca nunca.

Así nació VPS Hermes, mi servidor en Oracle Cloud Infrastructure que aloja este portfolio y más.

¿Qué es el tier gratuito de Oracle Cloud?

Oracle ofrece un programa llamado “Always Free” que incluye recursos que no tienen fecha de caducidad, siempre que no excedas ciertos límites. Para un proyecto como un portfolio estático, los límites son más que suficientes:

  • 1 VM con hasta 4 cores ARM y 24 GB de RAM (el Ampere A1)
  • 200 GB de almacenamiento en bloque
  • 1 TB de transferencia de datos al mes

La clave está en que no es un trial: es realmente gratis para siempre si respetas los límites. Mucha gente no lo sabe o lo dejó pasar porque la interfaz de Oracle Cloud no es la más intuitiva del mundo.

Registro y creación del VPS

El proceso es directo pero largo: necesitas una cuenta de Oracle, verificar identidad, añadir una tarjeta de crédito (no se cobra nada, es solo verificación), y crear tu VM.

Elegí la región de Fráncfort porque tengo baja latencia desde España. El sistema operativo inicial fue Ubuntu 22.04 LTS, y en menos de 10 minutos tenía una SSH connection funcionando.

Primer paso: actualizar el sistema y asegurar el servidor con una configuración básica de UFW, fail2ban y actualizaciones automáticas.

sudo apt update && sudo apt upgrade -y
sudo ufw allow OpenSSH
sudo ufw enable

Docker como capa de abstracción

Mi estrategia para gestionar servicios en Hermes es simple: todo corre en Docker. No instalo nada directamente en el host salvo Docker y Docker Compose. Esto me da reproducibilidad, portabilidad y la posibilidad de reconstruir cualquier servicio en minutos.

El portfolio está construido con Astro, un generador de sitios estáticos. El flujo de deploy es:

  1. Git push a mi repositorio en GitHub
  2. GitHub Actions compila el sitio y genera los archivos estáticos
  3. Los archivos se copian al VPS via rsync o se buildan directamente en el contenedor
  4. Nginx sirve los archivos como reverse proxy

El docker-compose simplificado:

services:
  portfolio:
    build: ./portfolio
    restart: always
  nginx:
    image: nginx:alpine
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - portfolio

TLS con Let’s Encrypt

Hacer pasar HTTPS sin certificados válidos es unacceptable. Para un VPS con dominio propio, Certbot y Let’s Encrypt son la solución estándar:

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d tudominio.com

Oracle Cloud tiene sus propios problemas con los TTLs de DNS y la propagación de registros, pero una vez configurado el dominio correctamente, certificados y renovación automática funcionan sin intervención.

Lo que he aprendido

Oracle Cloud no es la opción más cómoda. La UI cambia constantemente, la documentación a veces está desactualizada, y los límites de “Always Free” están ahí para recordarte que no puedes excederte. Pero para un portfolio que necesita estar siempre disponible, ligero, y gratis, es difícil encontrar algo mejor.

El verdadero aprendizaje vino de tratar este VPS como un entorno de producción real: documentar cada configuración, tener un sistema de backups externo, y automatizar todo lo que se pueda.

Hermes lleva meses funcionando sin intervención. Y eso, al final, es lo que buscaba: una máquina que trabaja mientras yo no estoy mirando.