Pourquoi Oracle Always Free n'est plus un socle fiable
Oracle a annoncé la réduction de son offre Always Free ARM pour le 18 août 2026 : les 4 vCPU et 24 Go de RAM cèdent la place à 2 vCPU et 12 Go. Outre cette coupe, l'offre gratuite Oracle a toujours comporté des risques structurels que ses utilisateurs connaissent bien : redémarrages non planifiés des instances, interruptions lors des phases de maintenance de la région, et absence de SLA sur les ressources allouées. Oracle peut récupérer les capacités sous-utilisées sans préavis. Pour un service de production — qu'il s'agisse d'un tableau de bord n8n, d'une instance Nextcloud partagée en famille ou d'un panneau Coolify qui pilote vos déploiements — cette incertitude est un risque opérationnel réel. Un VPS facturé mensuellement propose un forfait prévisible, une IPv4 dédiée, un accès root complet et des ressources qui ne sont pas redistribuées à un autre locataire. Le coût n'est pas nul, mais il est connu à l'avance et ne dépend pas d'une politique qu'un fournisseur peut réviser unilatéralement.
Ce qu'un VPS payant apporte par rapport à un free tier
- Ressources garanties — vCPU et RAM réservés pour votre instance, non partagés avec d'autres locataires ni récupérables par le fournisseur.
- IPv4 dédiée — une adresse publique fixe, sans NAT partagé, indispensable pour les enregistrements DNS stables et les webhooks entrants.
- Accès root sans restriction — vous installez et configurez ce que vous souhaitez, sans whitelist de ports ni limitations de protocoles imposées.
- Bande passante prévisible — un volume mensuel inclus clairement affiché, sans facturation surprise au gigaoctet au-delà d'un seuil caché.
- SLA et support — en cas de défaillance matérielle, un accord de niveau de service engage le prestataire à rétablir le service dans un délai contractuel.
- Coût forfaitaire — à partir de 99 DH/mois par mois, le budget est connu à l'avance et ne varie pas selon l'utilisation réelle des ressources.
- Durée sans obligation — vous ne signez pas un contrat annuel : les offres VPS Cloud sont résiliables à tout moment.
Quelles apps sont impactées par la réduction
Avec 2 vCPU et 12 Go de RAM après le 18 août 2026, les nouvelles limites Oracle semblent confortables sur le papier. En pratique, les applications auto-hébergées les plus courantes ont des exigences minimales qui s'accumulent dès que vous en combinez plusieurs. Coolify nécessite au minimum 2 vCPU et 2 Go de RAM pour son propre processus de build et de déploiement — il consomme lui-même des ressources en plus des services qu'il gère. n8n recommande 2 vCPU et 2 Go pour fonctionner de façon stable sous charge. Nextcloud s'en sort avec 2 Go pour moins de 50 utilisateurs, mais ses processus de synchronisation de fichiers sont gourmands en I/O et en CPU dès que le nombre de clients actifs augmente. Immich, le gestionnaire de photos, recommande 4 Go de RAM uniquement pour son pipeline de reconnaissance d'image par machine learning — en dessous, les workers ML s'arrêtent ou crashent silencieusement. Si vous faites tourner deux ou trois de ces services sur la même instance Oracle, la marge devient nulle, et le moindre pic de charge (indexation nocturne Nextcloud, flux n8n déclenché, build Coolify) provoque des kills OOM ou des freezes. Le moment est donc opportun pour migrer vers une infrastructure dimensionnée.
Prérequis avant de migrer
Une migration réussie se prépare en amont, avant de toucher à la configuration DNS ou d'éteindre quoi que ce soit. Commencez par dresser la liste exacte des services qui tournent sur votre instance Oracle : nom du service, port d'écoute, volume Docker associé, domaine ou sous-domaine utilisé. Prenez un snapshot complet de l'instance via la console Oracle Cloud — c'est votre filet de sécurité en cas de problème inattendu. Exportez également tous vos volumes Docker vers des archives tar, que vous pouvez transférer indépendamment. Réduisez les TTL DNS de vos enregistrements A à 300 secondes au moins 24 heures avant la migration : cela limite la durée de propagation lors de la bascule finale. Identifiez les cron jobs, webhooks entrants et services tiers qui utilisent l'IP Oracle actuelle — certains outils comme Stripe, GitHub ou Slack envoient des événements vers une URL fixe que vous devrez mettre à jour. Enfin, vérifiez que vos certificats TLS sont gérés via Let's Encrypt avec renouvellement automatique, car ils devront être régénérés sur la nouvelle IP.
Exporter et recréer votre stack Docker
Lister les conteneurs et volumes actifs
Sur l'instance Oracle, listez tous les conteneurs en cours : docker ps -a --format 'table {{.Names}}\t{{.Image}}\t{{.Mounts}}'. Listez les volumes : docker volume ls. Notez les associations nom-conteneur/volume pour ne rien oublier.
Sauvegarder chaque volume dans une archive tar
Pour chaque volume important (ex. n8n_data, nextcloud_data, coolify_db), exportez avec : docker run --rm -v n8n_data:/data -v $(pwd):/backup alpine tar czf /backup/n8n_data.tar.gz -C /data .. Répétez pour chaque volume. Vous obtenez des archives portables et indépendantes du système de fichiers de l'hôte.
Sauvegarder les images personnalisées
Si vous avez des images buildées localement (ex. via Coolify), exportez-les : docker save nom-image:tag | gzip > nom-image.tar.gz. Pour les images publiques (n8n, Nextcloud, Immich), une simple liste suffit — elles se re-téléchargent depuis le registry.
Transférer les archives vers le nouveau VPS
Depuis votre machine locale ou directement entre les deux serveurs (si l'IP Oracle est encore active) : rsync -avz --progress *.tar.gz root@ip-du-vps:/opt/restore/. Vérifiez les checksums : sha256sum *.tar.gz > checksums.txt && rsync checksums.txt root@ip-du-vps:/opt/restore/.
Installer Docker sur le nouveau VPS
Sur le VPS, en SSH : curl -fsSL https://get.docker.com | sh && systemctl enable --now docker. Vérifiez : docker compose version. Créez la structure de dossiers : mkdir -p /opt/{coolify,n8n,nextcloud,immich}.
Restaurer les volumes Docker
Pour chaque volume sauvegardé : 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. Vérifiez le contenu : docker run --rm -v n8n_data:/data alpine ls -la /data.
Recréer les fichiers docker-compose.yml
Copiez vos fichiers docker-compose.yml depuis Oracle ou récupérez-les depuis votre dépôt Git si vous les versionnez. Adaptez les chemins de volumes si nécessaire. Lancez chaque stack avec docker compose up -d et vérifiez les logs : docker compose logs -f --tail=50.
Vérifier le bon fonctionnement avant la bascule DNS
Testez chaque service via l'IP directe du VPS (en ajoutant une entrée temporaire dans /etc/hosts sur votre poste) : curl -H 'Host: n8n.votre-domaine.com' http://ip-du-vps/healthz. Confirmez que les données sont bien présentes (connexion, liste de workflows, fichiers Nextcloud, albums Immich) avant de toucher au DNS.
Redéployer Coolify sur le nouveau VPS
Installer Coolify
Sur le nouveau VPS en SSH : curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash. Le script installe Docker, les dépendances système et démarre les conteneurs Coolify. Attendez la fin complète (environ 2-3 minutes), puis accédez à http://ip-du-vps:8000.
Créer le compte administrateur
À la première ouverture, Coolify vous demande de créer un compte administrateur avec un e-mail et un mot de passe. Ce compte est local, il ne dépend pas de votre ancienne instance. Utilisez un mot de passe fort — c'est le seul garde-fou avant d'activer un domaine HTTPS.
Configurer le domaine et les certificats
Dans les réglages Coolify (Settings → Instance), renseignez votre domaine Coolify (ex. coolify.votre-domaine.com) et activez la génération automatique de certificats Let's Encrypt. Coolify gère le proxy Traefik en interne — vous n'avez pas à configurer Nginx ou Caddy séparément.
Reconnecter les sources Git
Dans Sources, reconnectez votre compte GitHub, GitLab ou Gitea. Si vous utilisiez des GitHub Apps ou des deploy keys sur l'ancienne instance, re-créez-les — elles sont liées à l'instance Coolify, pas au dépôt. Coolify affiche un guide pour chaque type de source.
Importer les projets et services
Recréez vos projets (Projects → New Project) et ajoutez les services existants. Pour les bases de données (PostgreSQL, MySQL, Redis), recréez-les dans Coolify et restaurez les dumps : docker exec -i <conteneur_postgres> psql -U user db < dump.sql. Pour les applications, re-triggez un build depuis Git.
Vérifier les variables d'environnement
Chaque service migré doit récupérer ses variables d'environnement. Dans Coolify, ouvrez chaque service → Environment Variables et comparez avec vos fichiers .env exportés depuis Oracle. Attention aux URLs en dur qui pointent encore vers l'ancien domaine ou l'ancienne IP.
Points d'attention post-migration
Une fois les services opérationnels sur le VPS, la bascule DNS est l'étape la plus visible. Modifiez les enregistrements A (et AAAA si vous avez de l'IPv6) pour chaque sous-domaine dans votre zone DNS, en pointant vers la nouvelle IP du VPS. Grâce au TTL réduit à 300 secondes préparé en amont, la propagation est généralement effective en moins de dix minutes chez la majorité des résolveurs. Surveillez les logs Traefik ou Caddy pendant les premières heures pour détecter d'éventuelles requêtes qui arrivent encore sur l'ancienne IP Oracle. Les certificats Let's Encrypt doivent être re-générés sur la nouvelle IP : Coolify le fait automatiquement au premier démarrage avec le bon domaine ; pour les services gérés manuellement avec Caddy ou Certbot, vérifiez que le défi HTTP-01 répond bien depuis le VPS avant de supprimer l'ancienne instance. Les cron jobs internes à n8n ou Nextcloud survivent à la migration (ils sont dans la base de données ou la configuration), mais les cron système de l'instance Oracle (dans /etc/cron.d ou la crontab root) doivent être recréés manuellement sur le VPS. Enfin, notifiez les services tiers qui utilisaient votre ancienne IP Oracle dans leurs listes d'IPs autorisées (webhooks Stripe, listes blanches de pare-feu clients).
Mettez en place une sauvegarde automatique des volumes Docker dès le premier jour sur le nouveau VPS. Un script cron quotidien qui exporte chaque volume critique vers un stockage objet (Backblaze B2, S3 compatible) vous protège contre les défaillances disque et les fausses manipulations. Sur une instance ServOrbit, restic ou borgbackup s'installent en quelques minutes et permettent des sauvegardes incrémentales chiffrées avec rétention configurable.
Dépannage des erreurs courantes
Lors d'une migration Docker, quelques erreurs reviennent systématiquement. La première est un problème de permissions sur les volumes restaurés : si votre conteneur démarre avec un UID différent de celui qui a créé les fichiers sur Oracle, vous obtenez des erreurs permission denied dans les logs. Corrigez avec docker run --rm -v volume:/data alpine chown -R uid:gid /data en remplaçant uid:gid par celui attendu par l'image (lisible dans le Dockerfile officiel ou la documentation). La deuxième erreur fréquente est un conteneur qui démarre puis s'arrête immédiatement avec le code 137 : c'est un kill OOM (Out Of Memory). Vérifiez dmesg | grep -i oom et augmentez la RAM allouée au service ou réduisez le nombre de workers. La troisième erreur concerne Let's Encrypt : si le certificat ne se génère pas, vérifiez que le port 80 est bien ouvert (ufw allow 80) et que le DNS pointe déjà vers la nouvelle IP avec dig +short votre-domaine.com. Un enregistrement A qui pointe encore vers Oracle empêche la validation HTTP-01. Enfin, si Coolify affiche les services comme « offline » malgré des conteneurs Docker qui tournent, vérifiez que le réseau Docker coolify est bien attaché à chaque conteneur avec docker network inspect coolify.
Oracle Always Free ARM vs VPS payant : comparaison
| Oracle Always Free ARM (après 18/08/2026) | VPS Cloud ServOrbit | |
|---|---|---|
| vCPU | 2 (partagés, récupérables) | Dédiés, garantis contractuellement |
| RAM | 12 Go (réduit depuis 24 Go) | À partir de 2 Go, évolutif jusqu'à 32+ Go |
| IPv4 | 1 adresse publique (peut être réattribuée) | 1 IPv4 dédiée fixe incluse |
| Bande passante | 10 To/mois sortant (quota région partagé) | Volume mensuel inclus, prévisible |
| Accès root | Oui, mais ports et protocoles filtrés | Root complet, aucune restriction |
| SLA | Aucun sur le free tier | SLA disponibilité réseau inclus |
| Redémarrages non planifiés | Oui (maintenance Oracle, récupération de capacité) | Non (migrations à chaud, pas d'arrêt forcé) |
| Coût mensuel | 0 € (mais risque de coupure ou de facturation si dépassement) | À partir de 99 DH/mois/mois, forfait fixe |