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 → ComputeInstancesCreate 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 → NetworkingVirtual Cloud Networks
  2. Clique sur ton VCN → Security ListsDefault 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 EngineInstances de VMCré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.comNew 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.comAdd new siteImport 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.