Por qué Oracle Always Free ya no es una base fiable
Oracle ha anunciado la reducción de su oferta Always Free ARM para el 18 de agosto de 2026: los 4 vCPU y 24 GB de RAM dejan paso a 2 vCPU y 12 GB. Además de este recorte, la oferta gratuita de Oracle siempre ha tenido riesgos estructurales que sus usuarios conocen bien: reinicios no planificados de las instancias, interrupciones durante las fases de mantenimiento de la región y ausencia de SLA sobre los recursos asignados. Oracle puede recuperar la capacidad infrautilizada sin previo aviso. Para un servicio en producción — ya sea un panel n8n, una instancia Nextcloud compartida en familia o un panel Coolify que dirige sus despliegues — esta incertidumbre es un riesgo operativo real. Un VPS facturado mensualmente ofrece una tarifa previsible, una IPv4 dedicada, un acceso root completo y unos recursos que no se redistribuyen a otro inquilino. El coste no es nulo, pero se conoce de antemano y no depende de una política que un proveedor pueda revisar unilateralmente.
Lo que aporta un VPS de pago frente a un free tier
- Recursos garantizados — vCPU y RAM reservados para su instancia, no compartidos con otros inquilinos ni recuperables por el proveedor.
- IPv4 dedicada — una dirección pública fija, sin NAT compartido, imprescindible para tener registros DNS estables y webhooks entrantes.
- Acceso root sin restricciones — instale y configure lo que desee, sin lista blanca de puertos ni limitaciones de protocolos impuestas.
- Ancho de banda previsible — un volumen mensual incluido y claramente indicado, sin facturación sorpresa por gigabyte más allá de un umbral oculto.
- SLA y soporte — en caso de fallo de hardware, un acuerdo de nivel de servicio compromete al proveedor a restablecer el servicio en un plazo contractual.
- Coste fijo — desde 99 DH/mes al mes, el presupuesto se conoce de antemano y no varía según el uso real de los recursos.
- Sin permanencia — no firma ningún contrato anual: los planes VPS Cloud se pueden cancelar en cualquier momento.
Qué aplicaciones se ven afectadas por el recorte
Con 2 vCPU y 12 GB de RAM a partir del 18 de agosto de 2026, los nuevos límites de Oracle parecen cómodos sobre el papel. En la práctica, las aplicaciones auto-alojadas más habituales tienen requisitos mínimos que se acumulan en cuanto se combinan varias. Coolify necesita como mínimo 2 vCPU y 2 GB de RAM para su propio proceso de build y de despliegue — consume recursos por sí mismo, además de los servicios que gestiona. n8n recomienda 2 vCPU y 2 GB para funcionar de forma estable bajo carga. Nextcloud se defiende con 2 GB para menos de 50 usuarios, pero sus procesos de sincronización de archivos son exigentes en I/O y en CPU en cuanto aumenta el número de clientes activos. Immich, el gestor de fotos, recomienda 4 GB de RAM solo para su pipeline de reconocimiento de imágenes por machine learning — por debajo, los workers de ML se detienen o fallan en silencio. Si ejecuta dos o tres de estos servicios en la misma instancia Oracle, el margen desaparece y el menor pico de carga (indexación nocturna de Nextcloud, flujo n8n disparado, build de Coolify) provoca kills OOM o bloqueos. Es, por tanto, el momento oportuno para migrar a una infraestructura bien dimensionada.
Requisitos previos antes de migrar
Una migración exitosa se prepara con antelación, antes de tocar la configuración DNS o de apagar nada. Empiece por elaborar la lista exacta de los servicios que se ejecutan en su instancia Oracle: nombre del servicio, puerto de escucha, volumen Docker asociado, dominio o subdominio utilizado. Tome un snapshot completo de la instancia desde la consola de Oracle Cloud — es su red de seguridad ante cualquier imprevisto. Exporte también todos sus volúmenes Docker a archivos tar, que podrá transferir de forma independiente. Reduzca el TTL DNS de sus registros A a 300 segundos al menos 24 horas antes de la migración: así limita la duración de la propagación durante el cambio final. Identifique los cron jobs, webhooks entrantes y servicios de terceros que utilizan la IP actual de Oracle — algunas herramientas como Stripe, GitHub o Slack envían eventos a una URL fija que tendrá que actualizar. Por último, compruebe que sus certificados TLS se gestionan con Let's Encrypt con renovación automática, ya que tendrán que regenerarse en la nueva IP.
Exportar y recrear su stack Docker
Listar los contenedores y volúmenes activos
En la instancia Oracle, liste todos los contenedores en curso:
docker ps -a --format 'table {{.Names}}\t{{.Image}}\t{{.Mounts}}'. Liste los volúmenes:docker volume ls. Anote las asociaciones nombre-contenedor/volumen para no olvidar nada.Guardar cada volumen en un archivo tar
Para cada volumen importante (p. ej.
n8n_data,nextcloud_data,coolify_db), expórtelo con:docker run --rm -v n8n_data:/data -v $(pwd):/backup alpine tar czf /backup/n8n_data.tar.gz -C /data .. Repita para cada volumen. Obtiene archivos portables e independientes del sistema de archivos del host.Guardar las imágenes personalizadas
Si tiene imágenes construidas localmente (p. ej. con Coolify), expórtelas:
docker save nombre-imagen:tag | gzip > nombre-imagen.tar.gz. Para las imágenes públicas (n8n, Nextcloud, Immich) basta con una lista — se vuelven a descargar desde el registry.Transferir los archivos al nuevo VPS
Desde su máquina local o directamente entre los dos servidores (si la IP de Oracle sigue activa):
rsync -avz --progress *.tar.gz root@ip-del-vps:/opt/restore/. Verifique los checksums:sha256sum *.tar.gz > checksums.txt && rsync checksums.txt root@ip-del-vps:/opt/restore/.Instalar Docker en el nuevo VPS
En el VPS, por SSH:
curl -fsSL https://get.docker.com | sh && systemctl enable --now docker. Compruebe:docker compose version. Cree la estructura de carpetas:mkdir -p /opt/{coolify,n8n,nextcloud,immich}.Restaurar los volúmenes Docker
Para cada volumen guardado:
docker volume create n8n_data && docker run --rm -v n8n_data:/data -v /opt/restore:/backup alpine tar xzf /backup/n8n_data.tar.gz -C /data. Compruebe el contenido:docker run --rm -v n8n_data:/data alpine ls -la /data.Recrear los archivos docker-compose.yml
Copie sus archivos
docker-compose.ymldesde Oracle o recupérelos de su repositorio Git si los versiona. Adapte las rutas de los volúmenes si es necesario. Lance cada stack condocker compose up -dy revise los logs:docker compose logs -f --tail=50.Comprobar el funcionamiento antes del cambio de DNS
Pruebe cada servicio a través de la IP directa del VPS (añadiendo una entrada temporal en
/etc/hostsde su equipo):curl -H 'Host: n8n.su-dominio.com' http://ip-del-vps/healthz. Confirme que los datos están presentes (inicio de sesión, lista de workflows, archivos de Nextcloud, álbumes de Immich) antes de tocar el DNS.
Volver a desplegar Coolify en el nuevo VPS
Instalar Coolify
En el nuevo VPS por SSH:
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash. El script instala Docker, las dependencias del sistema y arranca los contenedores de Coolify. Espere a que termine por completo (unos 2-3 minutos) y acceda ahttp://ip-del-vps:8000.Crear la cuenta de administrador
En la primera apertura, Coolify le pide crear una cuenta de administrador con un correo electrónico y una contraseña. Esta cuenta es local, no depende de su antigua instancia. Use una contraseña robusta — es la única barrera antes de activar un dominio HTTPS.
Configurar el dominio y los certificados
En los ajustes de Coolify (Settings → Instance), indique su dominio de Coolify (p. ej.
coolify.su-dominio.com) y active la generación automática de certificados Let's Encrypt. Coolify gestiona el proxy Traefik internamente — no tiene que configurar Nginx ni Caddy por separado.Volver a conectar las fuentes Git
En Sources, vuelva a conectar su cuenta de GitHub, GitLab o Gitea. Si usaba GitHub Apps o deploy keys en la antigua instancia, vuelva a crearlas — están vinculadas a la instancia de Coolify, no al repositorio. Coolify muestra una guía para cada tipo de fuente.
Importar los proyectos y servicios
Recree sus proyectos (Projects → New Project) y añada los servicios existentes. Para las bases de datos (PostgreSQL, MySQL, Redis), vuelva a crearlas en Coolify y restaure los dumps:
docker exec -i <contenedor_postgres> psql -U user db < dump.sql. Para las aplicaciones, vuelva a lanzar un build desde Git.Comprobar las variables de entorno
Cada servicio migrado debe recuperar sus variables de entorno. En Coolify, abra cada servicio → Environment Variables y compárelas con sus archivos
.envexportados desde Oracle. Cuidado con las URL fijas que siguen apuntando al antiguo dominio o a la antigua IP.
Puntos de atención después de la migración
Una vez que los servicios funcionan en el VPS, el cambio de DNS es la etapa más visible. Modifique los registros A (y AAAA si tiene IPv6) de cada subdominio en su zona DNS, apuntando a la nueva IP del VPS. Gracias al TTL reducido a 300 segundos preparado de antemano, la propagación suele ser efectiva en menos de diez minutos en la mayoría de los resolvers. Vigile los logs de Traefik o Caddy durante las primeras horas para detectar posibles peticiones que sigan llegando a la antigua IP de Oracle. Los certificados Let's Encrypt deben regenerarse en la nueva IP: Coolify lo hace automáticamente en el primer arranque con el dominio correcto; para los servicios gestionados manualmente con Caddy o Certbot, compruebe que el reto HTTP-01 responde correctamente desde el VPS antes de eliminar la antigua instancia. Los cron jobs internos de n8n o Nextcloud sobreviven a la migración (están en la base de datos o en la configuración), pero los cron del sistema de la instancia Oracle (en /etc/cron.d o en la crontab de root) deben recrearse manualmente en el VPS. Por último, avise a los servicios de terceros que utilizaban su antigua IP de Oracle en sus listas de IP autorizadas (webhooks de Stripe, listas blancas de cortafuegos de clientes).
Implemente una copia de seguridad automática de los volúmenes Docker desde el primer día en el nuevo VPS. Un script cron diario que exporte cada volumen crítico a un almacenamiento de objetos (Backblaze B2, compatible con S3) le protege ante fallos de disco y errores de manipulación. En una instancia ServOrbit, restic o borgbackup se instalan en unos minutos y permiten copias de seguridad incrementales cifradas con retención configurable.
Resolución de los errores más habituales
Durante una migración Docker, algunos errores se repiten sistemáticamente. El primero es un problema de permisos en los volúmenes restaurados: si su contenedor arranca con un UID distinto del que creó los archivos en Oracle, obtendrá errores permission denied en los logs. Corríjalo con docker run --rm -v volume:/data alpine chown -R uid:gid /data, sustituyendo uid:gid por el que espera la imagen (indicado en el Dockerfile oficial o en la documentación). El segundo error frecuente es un contenedor que arranca y se detiene de inmediato con el código 137: es un kill OOM (Out Of Memory). Revise dmesg | grep -i oom y aumente la RAM asignada al servicio o reduzca el número de workers. El tercer error tiene que ver con Let's Encrypt: si el certificado no se genera, compruebe que el puerto 80 está abierto (ufw allow 80) y que el DNS ya apunta a la nueva IP con dig +short su-dominio.com. Un registro A que sigue apuntando a Oracle impide la validación HTTP-01. Por último, si Coolify muestra los servicios como «offline» a pesar de que los contenedores Docker están en marcha, compruebe que la red Docker coolify está asociada a cada contenedor con docker network inspect coolify.
Oracle Always Free ARM frente a un VPS de pago: comparativa
Desplace la tabla
| Oracle Always Free ARM (después del 18/08/2026) | VPS Cloud ServOrbit | |
|---|---|---|
| vCPU | 2 (compartidos, recuperables) | Dedicados, garantizados por contrato |
| RAM | 12 GB (reducidos desde 24 GB) | Desde 2 GB, ampliable hasta 32+ GB |
| IPv4 | 1 dirección pública (puede reasignarse) | 1 IPv4 dedicada fija incluida |
| Ancho de banda | 10 TB/mes de salida (cuota compartida por región) | Volumen mensual incluido, previsible |
| Acceso root | Sí, pero con puertos y protocolos filtrados | Root completo, sin ninguna restricción |
| SLA | Ninguno en el free tier | SLA de disponibilidad de red incluido |
| Reinicios no planificados | Sí (mantenimiento de Oracle, recuperación de capacidad) | No (migraciones en caliente, sin parada forzada) |
| Coste mensual | 0 € (pero con riesgo de corte o de facturación en caso de exceso) | Desde 99 DH/mes, tarifa fija |