Guide : L'Infrastructure Gratuite à Vie

avril 2026 · 15 min de lecture

Objectif : Héberger serveurs, CDN, déploiements — zéro euro. Pour toujours.


Sommaire

  1. Oracle Cloud Free Tier — Serveur ARM 4 cœurs / 24 Go RAM
  2. Google Cloud Free Tier — VM e2-micro permanente
  3. Cloudflare Free Plan — CDN + DDoS + DNS illimités
  4. Vercel & Netlify — Déploiement front en 30 secondes
  5. Stack complète recommandée

1. Oracle Cloud Free Tier

🔗 oracle.com/cloud/free

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

  1. Aller sur oracle.com/cloud/free
  2. Cliquer Start for free
  3. Remplir : email, nom, pays
  4. Entrer un numéro de téléphone (vérification SMS)
  5. Entrer une carte bancaire (vérification d'identité uniquement — 0 débit)
  6. Choisir une Home Region (important : ne peut pas être changée après)

💡 Conseil région : Choisis Frankfurt (Europe) ou Paris pour 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

  1. Menu → Compute → Instances → Create Instance
  2. Nom : mon-serveur
  3. Image : Ubuntu 22.04 (ou Oracle Linux)
  4. Shape : clique Change Shape
    • Sélectionne Ampere (ARM)
    • Shape : VM.Standard.A1.Flex
    • OCPUs : 4
    • RAM : 24 GB
  5. Réseau : laisse par défaut (VCN auto-créé)
  6. SSH Key : télécharge ou colle ta clé publique
  7. 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)

  1. Menu → Networking → Virtual Cloud Networks
  2. Clique sur ton VCN → Security Lists → Default Security List
  3. 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

🔗 cloud.google.com/free

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

  1. Aller sur cloud.google.com/free
  2. Cliquer Commencer gratuitement
  3. Compte Google requis
  4. Carte bancaire (vérification — tu reçois aussi 300 $ de crédits pour 90 jours)
  5. Après les 90 jours : le free tier permanent reste actif

Créer la VM e2-micro gratuite

Via la console web

  1. Menu → Compute Engine → Instances de VM → Créer une instance
  2. Nom : mon-serveur-gcp
  3. Région : us-central1 (ou us-east1 / us-west1)
  4. Zone : us-central1-a
  5. Type de machine : e2-micro (dans "Usage général")
  6. Disque de démarrage :
    • OS : Ubuntu 22.04 LTS
    • Type : Disque persistant standard (pas SSD !)
    • Taille : 30 Go max
  7. Pare-feu : cocher Autoriser le trafic HTTP et HTTPS
  8. Réseau avancé → Network Service Tier : Standard (pas Premium)
  9. 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

🔗 cloudflare.com

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

  1. Aller sur cloudflare.com
  2. Sign Up → email + mot de passe
  3. Plan : sélectionner Free

Étape 2 : Ajouter ton domaine

  1. Dashboard → Add a Site
  2. Entrer ton domaine (ex: monprojet.com)
  3. Sélectionner Free plan
  4. 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

🔗 vercel.com

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é)

  1. Aller sur vercel.com → New Project
  2. Connecter GitHub
  3. Sélectionner ton repo
  4. Vercel détecte automatiquement le framework (Next.js, React, Vue...)
  5. 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

🔗 netlify.com

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é)

  1. netlify.com → Add new site → Import an existing project
  2. Connecter GitHub
  3. Sélectionner le repo
  4. Configurer :
    • Build command : npm run build
    • Publish directory : dist ou out ou .next
  5. 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

Ce guide vient de Build With Nath

La communauté est gratuite. J’y publie ces guides au fil de l’eau et on y répond aux questions.

Autres guides · Guides

Vous dirigez une entreprise et vous voulez savoir lequel de vos process mérite ce genre de traitement ? Le diagnostic vous le dit en trois minutes, ou on en parle trente minutes.