Guide : L'Infrastructure Gratuite à Vie
avril 2026 · 15 min de lecture
Objectif : Héberger serveurs, CDN, déploiements — zéro euro. Pour toujours.
Sommaire
- Oracle Cloud Free Tier — Serveur ARM 4 cœurs / 24 Go RAM
- Google Cloud Free Tier — VM e2-micro permanente
- Cloudflare Free Plan — CDN + DDoS + DNS illimités
- Vercel & Netlify — Déploiement front en 30 secondes
- Stack complète recommandée
1. Oracle Cloud Free Tier
Ce que tu obtiens gratuitement, à vie
| Ressource | Détail |
|---|---|
| CPU | 4 cœurs ARM (Ampere A1) |
| RAM | 24 Go |
| Stockage | 200 Go (block storage) |
| Bande passante | 10 To sortant / mois |
| Base de données | 2 Autonomous DB (20 Go chacune) |
| Load balancer | 1 instance (10 Mbps) |
| Adresse IP | 1 IP publique réservée |
⚠️ Pas un trial. Ces ressources ne expirent jamais, contrairement à AWS ou GCP qui limitent à 12 mois.
Créer un compte
- Aller sur oracle.com/cloud/free
- Cliquer Start for free
- Remplir : email, nom, pays
- Entrer un numéro de téléphone (vérification SMS)
- Entrer une carte bancaire (vérification d'identité uniquement — 0 débit)
- Choisir une Home Region (important : ne peut pas être changée après)
💡 Conseil région : Choisis
Frankfurt(Europe) ouParispour la latence. Certaines régions ont des pénuries de capacité ARM — si la création échoue, essaie une autre région.
Créer ta VM ARM (le serveur principal)
Via la console web
- Menu → Compute → Instances → Create Instance
- Nom :
mon-serveur - Image : Ubuntu 22.04 (ou Oracle Linux)
- Shape : clique Change Shape
- Sélectionne Ampere (ARM)
- Shape :
VM.Standard.A1.Flex - OCPUs :
4 - RAM :
24 GB
- Réseau : laisse par défaut (VCN auto-créé)
- SSH Key : télécharge ou colle ta clé publique
- Clique Create
Via CLI (OCI CLI)
# Installer OCI CLI
bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"
# Configurer
oci setup config
# Créer l'instance
oci compute instance launch \
--availability-domain "YOUR_AD" \
--compartment-id "YOUR_COMPARTMENT_OCID" \
--shape VM.Standard.A1.Flex \
--shape-config '{"ocpus": 4, "memoryInGBs": 24}' \
--image-id "UBUNTU_22_04_ARM_IMAGE_OCID" \
--subnet-id "YOUR_SUBNET_OCID" \
--display-name "mon-serveur" \
--ssh-authorized-keys-file ~/.ssh/id_rsa.pub
Ouvrir les ports (pare-feu)
Oracle a deux niveaux de pare-feu : les Security Lists (cloud) + iptables (OS).
1. Security List (console Oracle)
- Menu → Networking → Virtual Cloud Networks
- Clique sur ton VCN → Security Lists → Default Security List
- Add Ingress Rules :
| Source CIDR | Protocol | Port | Usage |
|---|---|---|---|
0.0.0.0/0 |
TCP | 22 | SSH |
0.0.0.0/0 |
TCP | 80 | HTTP |
0.0.0.0/0 |
TCP | 443 | HTTPS |
0.0.0.0/0 |
TCP | 3000 | App (optionnel) |
2. iptables sur l'OS (SSH dans la VM)
# Ouvrir les ports au niveau OS
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 3000 -j ACCEPT
# Sauvegarder les règles
sudo apt install iptables-persistent -y
sudo netfilter-persistent save
Installer Docker (recommandé)
# Connexion SSH
ssh -i ~/.ssh/id_rsa ubuntu@TON_IP_PUBLIQUE
# Installer Docker
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker ubuntu
newgrp docker
# Vérifier
docker run hello-world
Cas d'usage typiques
# Bot Discord / Telegram
docker run -d --name mon-bot mon-image-bot
# VPN WireGuard
docker run -d \
--name=wg-easy \
-e WG_HOST=TON_IP \
-p 51820:51820/udp \
-p 51821:51821/tcp \
weejewel/wg-easy
# Backend Node.js
docker run -d -p 3000:3000 --name backend mon-app-node
# Base de données PostgreSQL
docker run -d \
--name postgres \
-e POSTGRES_PASSWORD=monmotdepasse \
-p 5432:5432 \
postgres:15
Maintenir le compte actif
⚠️ Oracle peut suspendre les comptes inactifs. Pour éviter ça :
- Connecte-toi à la console au moins une fois tous les 6 mois
- Ou passe en mode Pay As You Go (le tier gratuit reste actif, les comptes ne sont pas fermés)
2. Google Cloud Free Tier
Ce que tu obtiens gratuitement, à vie
| Ressource | Détail |
|---|---|
| VM | 1 instance e2-micro (2 vCPU, 1 Go RAM) |
| Stockage | 30 Go HDD standard |
| Bande passante | 1 Go sortant / mois (US vers US) |
| Durée | Illimitée (pas d'expiration) |
⚠️ Limites : la e2-micro n'est gratuite que dans 3 régions US (
us-central1,us-east1,us-west1) et avec un disque standard ≤ 30 Go.
Créer un compte
- Aller sur cloud.google.com/free
- Cliquer Commencer gratuitement
- Compte Google requis
- Carte bancaire (vérification — tu reçois aussi 300 $ de crédits pour 90 jours)
- Après les 90 jours : le free tier permanent reste actif
Créer la VM e2-micro gratuite
Via la console web
- Menu → Compute Engine → Instances de VM → Créer une instance
- Nom :
mon-serveur-gcp - Région :
us-central1(ouus-east1/us-west1) - Zone :
us-central1-a - Type de machine : e2-micro (dans "Usage général")
- Disque de démarrage :
- OS : Ubuntu 22.04 LTS
- Type : Disque persistant standard (pas SSD !)
- Taille : 30 Go max
- Pare-feu : cocher Autoriser le trafic HTTP et HTTPS
- Réseau avancé → Network Service Tier : Standard (pas Premium)
- Clique Créer
Via gcloud CLI
# Installer gcloud CLI
curl https://sdk.cloud.google.com | bash
exec -l $SHELL
gcloud init
# Créer la VM (respecte exactement ces paramètres pour le free tier)
gcloud compute instances create mon-serveur \
--zone=us-central1-a \
--machine-type=e2-micro \
--image-family=ubuntu-2204-lts \
--image-project=ubuntu-os-cloud \
--boot-disk-size=30GB \
--boot-disk-type=pd-standard \
--network-tier=STANDARD \
--no-service-account \
--tags=http-server,https-server
Ouvrir les ports
# Via gcloud
gcloud compute firewall-rules create allow-web \
--allow tcp:80,tcp:443,tcp:3000 \
--source-ranges 0.0.0.0/0 \
--target-tags http-server
# Se connecter en SSH
gcloud compute ssh mon-serveur --zone=us-central1-a
Vérifier que tu es dans le free tier
Dans la console GCP → Facturation → ton compte → tu dois voir un crédit automatique correspondant au coût de la e2-micro (~7,30 $/mois). Si ce crédit apparaît, tu es bien en free tier.
Comparaison Oracle vs GCP Free Tier
| Oracle | Google Cloud | |
|---|---|---|
| CPU | 4 cœurs ARM | 2 vCPU partagés |
| RAM | 24 Go | 1 Go |
| Bande passante | 10 To/mois | 1 Go/mois |
| Région | Mondiale | US uniquement |
| Verdict | Meilleur pour tout | Backup / petit usage |
💡 Recommandation : utilise Oracle comme serveur principal, GCP comme fallback ou monitoring.
3. Cloudflare Free Plan
Ce que tu obtiens gratuitement
| Fonctionnalité | Détail |
|---|---|
| CDN | Illimité (pas de limite de trafic) |
| DDoS Protection | Illimitée, automatique |
| SSL/HTTPS | Automatique (Universal SSL) |
| DNS | Ultra-rapide, illimité |
| Cloudflare Workers | 100 000 req/jour |
| Pages (déploiement) | Illimité |
| Pare-feu (WAF) | 5 règles custom |
Configurer Cloudflare pour ton domaine
Étape 1 : Créer un compte
- Aller sur cloudflare.com
- Sign Up → email + mot de passe
- Plan : sélectionner Free
Étape 2 : Ajouter ton domaine
- Dashboard → Add a Site
- Entrer ton domaine (ex:
monprojet.com) - Sélectionner Free plan
- Cloudflare scanne tes DNS existants automatiquement
Étape 3 : Changer les nameservers
Cloudflare te donne 2 nameservers (ex: aria.ns.cloudflare.com).
Rends-toi chez ton registrar (OVH, Namecheap, Gandi...) et remplace les NS par ceux de Cloudflare.
⏱️ La propagation prend de 5 minutes à 24h.
Étape 4 : Configurer les DNS
Dans Cloudflare Dashboard → DNS :
Type Nom Valeur Proxy
A @ TON_IP_ORACLE ✅ (orange)
A www TON_IP_ORACLE ✅ (orange)
A api TON_IP_ORACLE ✅ (orange)
🟠 L'icône orange = trafic passe par Cloudflare (CDN + protection activés) 🔘 L'icône grise = trafic direct vers ton serveur (pas de protection)
Configurer SSL
Dashboard → SSL/TLS → Mode : Full (strict)
Off → HTTP seulement (dangereux)
Flexible → HTTPS vers Cloudflare, HTTP vers ton serveur
Full → HTTPS partout (certificat auto-signé OK)
Full (strict) → HTTPS partout (certificat valide requis sur le serveur)
Pour générer un certificat sur ton serveur Oracle :
# Installer Certbot (Let's Encrypt)
sudo apt install certbot -y
# Générer le certificat
sudo certbot certonly --standalone -d mondomaine.com -d www.mondomaine.com
# Renouvellement automatique
sudo crontab -e
# Ajouter : 0 12 * * * certbot renew --quiet
Cloudflare Workers (serverless gratuit)
Les Workers permettent d'exécuter du code JavaScript à la edge — sans serveur.
// Exemple : API simple avec Workers
export default {
async fetch(request) {
const url = new URL(request.url);
if (url.pathname === '/api/hello') {
return new Response(JSON.stringify({ message: 'Hello World!' }), {
headers: { 'Content-Type': 'application/json' }
});
}
return new Response('Not found', { status: 404 });
}
};
Déploiement :
# Installer Wrangler (CLI Cloudflare)
npm install -g wrangler
# Connexion
wrangler login
# Créer un projet Worker
wrangler init mon-worker
cd mon-worker
# Déployer
wrangler deploy
Cloudflare Tunnel (exposer un service local sans IP publique)
# Installer cloudflared
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb -o cloudflared.deb
sudo dpkg -i cloudflared.deb
# Authentification
cloudflared tunnel login
# Créer un tunnel
cloudflared tunnel create mon-tunnel
# Configurer (~/.cloudflared/config.yml)
tunnel: MON_TUNNEL_ID
credentials-file: /root/.cloudflared/MON_TUNNEL_ID.json
ingress:
- hostname: app.mondomaine.com
service: http://localhost:3000
- service: http_status:404
# Lancer
cloudflared tunnel run mon-tunnel
# En service systemd
sudo cloudflared service install
sudo systemctl start cloudflared
4. Vercel & Netlify
Vercel
Ce que tu obtiens gratuitement (Hobby Plan)
| Ressource | Détail |
|---|---|
| Bande passante | 100 Go / mois |
| Déploiements | Illimités |
| Domaines custom | Illimités |
| HTTPS | Automatique |
| Edge Functions | Incluses |
| Preview URLs | Chaque PR = une URL |
⚠️ Limitation : le plan Hobby est pour usage non-commercial. Pour une app commerciale, prendre le plan Pro (20 $/mois) ou utiliser Netlify.
Déployer avec Vercel
# Installer Vercel CLI
npm install -g vercel
# Dans ton projet
cd mon-projet
# Premier déploiement (suit les instructions interactives)
vercel
# Déployer en production
vercel --prod
Via GitHub (recommandé)
- Aller sur vercel.com → New Project
- Connecter GitHub
- Sélectionner ton repo
- Vercel détecte automatiquement le framework (Next.js, React, Vue...)
- Clique Deploy
Chaque git push sur main = déploiement automatique en production.
Chaque Pull Request = URL de preview unique.
Variables d'environnement
# Via CLI
vercel env add NEXT_PUBLIC_API_URL
# Ou dans le dashboard : Settings → Environment Variables
Netlify
Ce que tu obtiens gratuitement
| Ressource | Détail |
|---|---|
| Bande passante | 100 Go / mois |
| Build minutes | 300 / mois |
| Déploiements | Illimités |
| Fonctions serverless | 125 000 invocations / mois |
| Edge Functions | 1 million req / mois |
| Formulaires | 100 soumissions / mois |
| Usage commercial | ✅ Autorisé |
✅ Avantage Netlify vs Vercel : le plan gratuit autorise l'usage commercial.
Déployer avec Netlify
# Installer Netlify CLI
npm install -g netlify-cli
# Connexion
netlify login
# Dans ton projet
cd mon-projet
# Initialiser et déployer
netlify init
netlify deploy
# Déployer en production
netlify deploy --prod
Via GitHub (recommandé)
- netlify.com → Add new site → Import an existing project
- Connecter GitHub
- Sélectionner le repo
- Configurer :
- Build command :
npm run build - Publish directory :
distououtou.next
- Build command :
- Clique Deploy site
Fichier de configuration netlify.toml
[build]
command = "npm run build"
publish = "dist"
[build.environment]
NODE_VERSION = "18"
[[redirects]]
from = "/api/*"
to = "https://ton-api.oracle.com/api/:splat"
status = 200
[[headers]]
for = "/*"
[headers.values]
X-Frame-Options = "DENY"
X-XSS-Protection = "1; mode=block"
Vercel vs Netlify — Quand utiliser quoi ?
| Critère | Vercel | Netlify |
|---|---|---|
| Framework principal | Next.js | Tous frameworks |
| Usage commercial | ❌ (free) | ✅ |
| Edge Functions | ✅ | ✅ |
| Fonctions planifiées | ❌ | ✅ |
| Formulaires intégrés | ❌ | ✅ |
| Best for | Next.js / React | JAMstack / tout le reste |
5. Stack complète recommandée
Architecture
Internet
│
▼
Cloudflare (CDN + DDoS + DNS)
│
├──► Vercel / Netlify (Frontend statique / SSR)
│
└──► Oracle Cloud ARM (Backend / API / Bot / VPN)
│
└──► Google Cloud e2-micro (Monitoring / Backup)
Coût total
| Service | Coût habituel | Avec cette stack |
|---|---|---|
| Serveur VPS (2 Go RAM) | ~10 €/mois | 0 € |
| CDN | ~5-20 €/mois | 0 € |
| Déploiement CI/CD | ~7-15 €/mois | 0 € |
| DNS | ~2 €/mois | 0 € |
| Total | ~50 €/mois = 600 €/an | 0 € |
Setup complet en 1 heure
# ── Étape 1 : Oracle (20 min) ──────────────────────────
# 1. Créer compte sur oracle.com/cloud/free
# 2. Lancer VM ARM 4 cœurs / 24 Go
# 3. SSH dans la VM et installer Docker
ssh ubuntu@TON_IP_ORACLE
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker ubuntu
# ── Étape 2 : Cloudflare (10 min) ──────────────────────
# 1. Créer compte cloudflare.com
# 2. Ajouter ton domaine
# 3. Changer les NS chez ton registrar
# 4. DNS A → TON_IP_ORACLE (proxy orange activé)
# ── Étape 3 : Vercel ou Netlify (5 min) ────────────────
# 1. Connecter GitHub
# 2. Importer le repo
# 3. Deploy automatique
# ── Étape 4 : Configurer Nginx (10 min) ────────────────
# Sur Oracle :
docker run -d \
--name nginx \
-p 80:80 \
-p 443:443 \
-v /etc/nginx/conf.d:/etc/nginx/conf.d \
nginx
# ── Étape 5 : SSL avec Certbot (5 min) ─────────────────
sudo apt install certbot -y
sudo certbot certonly --standalone -d mondomaine.com
Exemple docker-compose.yml complet
version: '3.8'
services:
# Reverse proxy
nginx:
image: nginx:alpine
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- /etc/letsencrypt:/etc/letsencrypt
restart: unless-stopped
# Ton API / Backend
api:
image: node:18-alpine
working_dir: /app
volumes:
- ./api:/app
command: node server.js
environment:
- NODE_ENV=production
- DATABASE_URL=postgresql://user:pass@postgres:5432/db
restart: unless-stopped
# Base de données
postgres:
image: postgres:15-alpine
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: monmotdepasse
POSTGRES_DB: db
volumes:
- postgres_data:/var/lib/postgresql/data
restart: unless-stopped
# Cache Redis
redis:
image: redis:7-alpine
restart: unless-stopped
volumes:
postgres_data:
Ressources
| Outil | Lien officiel | Documentation |
|---|---|---|
| Oracle Free Tier | oracle.com/cloud/free | docs.oracle.com |
| Google Cloud Free | cloud.google.com/free | docs.cloud.google.com/free |
| Cloudflare | cloudflare.com | developers.cloudflare.com |
| Vercel | vercel.com | vercel.com/docs |
| Netlify | netlify.com | docs.netlify.com |
Guide rédigé pour la vidéo "600€ : L'infrastructure gratuite" — Mis à jour avril 2026