Étude de cas · Construit avec Claude Code

La migration OCI :
12 services, une plateforme que j'exploite de bout en bout.

En un mois, avec Claude Code en binôme, j'ai déplacé toute ma stack — sites web, applications, serveurs MCP, bases de données — de Vercel, Render et Supabase vers un unique serveur ARM que j'exploite de bout en bout : HTTPS automatique, déploiement par git push, sauvegardes automatiques et reprise après sinistre testée.

24/7en production, sauvegardé et restaurable
4 / 24cœurs ARM / Go de RAM (Always Free)
500+lignes de base migrées, zéro perte
1 push= 1 déploiement en production
01 — Le récit

Pourquoi, et comment

L'objectif : tout centraliser sur un serveur gratuit, sans renoncer au confort développeur de Vercel ou Render.

1 · Les fondations

Ubuntu 24.04 sur un OCI Ampere A1 (ARM64). Deux couches de pare-feu — Security List OCI + iptables de l'instance — sous-domaines DuckDNS avec mise à jour d'IP par cron.

2 · La plateforme

Coolify en PaaS auto-hébergé : builds depuis GitHub, déploiements en conteneurs Docker, variables d'environnement et cron. Traefik termine le HTTPS avec certificats Let's Encrypt automatiques.

3 · Les charges applicatives

Serveurs MCP, services web et API, chacun dans son conteneur, routés par nom d'hôte et chemin. Environnements de test et de prod, déployés par git push (webhook Coolify).

4 · Les données

PostgreSQL/PostgREST auto-hébergé (même syntaxe d'API que Supabase — zéro changement de code) plus une base Oracle. 500+ lignes migrées avec recherche plein texte intacte ; sauvegardes automatiques vers OCI Object Storage.

02 — Schémas

Schémas d'architecture

L'image complète, du flux de migration à la couche de services.

Vue d'ensemble de la migration

Ce qui a bougé et d'où : les charges Vercel, Render, Supabase et locales consolidées sur le serveur OCI.

Schéma de la migration OCI

Architecture de l'infrastructure

Le trafic Internet traverse deux couches de pare-feu, atteint Traefik qui termine le TLS, et est routé vers le bon conteneur. Coolify construit depuis GitHub et gère le cycle de vie.

Schéma d'architecture de l'infrastructure Arx

Flux de données entre composants

Comment requêtes, builds et données circulent entre le proxy, les applications, les bases de données et le stockage objet.

Schéma du flux de données OCI

Couche de services PaaS

Le plan de contrôle Coolify : builds, déploiements, variables d'environnement, tâches planifiées.

Schéma de la couche de services PaaS Arx

Détails du PaaS

Un regard rapproché sur les entrailles de la plateforme et la place de chaque service hébergé.

Schéma des détails du PaaS Arx
03 — Services plateforme

Les services de la plateforme, un par un

Les briques derrière chaque application déployée : le plan de déploiement, la couche de données, le stockage objet et les sauvegardes.

Coolify — plan de déploiement

Construit depuis GitHub à chaque push, déploie des conteneurs Docker, gère variables d'environnement et tâches planifiées — le tout piloté via son API REST.

Schéma du plan de déploiement Coolify

Couche de données — PostgreSQL + PostgREST + base Oracle

Une API de données auto-hébergée compatible Supabase avec recherche plein texte en français, aux côtés d'une base Oracle. 500+ lignes migrées sans perte.

Schéma de la couche de données Arx

MinIO — stockage objet compatible S3

Stockage type S3 auto-hébergé pour les fichiers et ressources des applications, derrière Traefik comme tous les autres services.

Schéma du stockage S3 MinIO

Sauvegardes — automatiques, hors conteneur

Sauvegardes planifiées des bases et volumes expédiées vers OCI Object Storage (10 Go gratuits), testées par restauration avant toute bascule.

Schéma de l'architecture de sauvegarde
04 — Stack

La stack

ComposantRôle
OCI Ampere A1 (ARM64)4 OCPU, 24 Go de RAM, Ubuntu 24.04 — offre gratuite Oracle
Docker EngineRuntime de toutes les charges applicatives
CoolifyPaaS auto-hébergé : build, déploiement, env, cron, API REST
TraefikReverse proxy, HTTPS Let's Encrypt automatique, routage hôte/chemin
PostgreSQL + PostgRESTAPI de données auto-hébergée compatible Supabase, recherche plein texte française
MinIOStockage objet compatible S3
OCI Object StorageSauvegardes automatiques hors conteneur, reprise après sinistre testée
DuckDNSDNS gratuit avec mise à jour d'IP par cron
05 — Phases

Les phases de migration

Stratégie de bascule : l'ancien hébergeur reste actif en parallèle jusqu'à validation de la cible — aucune suppression avant validation en production, sauvegardes testées avant bascule finale.

PhasePérimètreÉtat
0Fondations — Docker, pare-feu 2 couches, DNS + cron✅ Fait
1Plateforme Coolify + admin + API REST✅ Fait
2Première app migrée depuis le local (Node)✅ Fait
3Serveur MCP Einstein migré depuis Vercel✅ Fait
4Services Render + tâches planifiées⏳ En cours
5Postgres auto-hébergé + sauvegardes, sortie de Supabase✅ Fait
6Ollama — petits modèles quantifiés ARM (optionnel)⏳ Prévu