Pourquoi Fly.io est le meilleur hebergement Docker gratuit que vous n'utilisez pas

Fred· Full-Stack Developer8 min read

Plateforme : Fly.io | Fournisseur : Fly.io | Palier gratuit : 5$/mois de credit pour toujours

Le secret dont personne ne parle

Voici ce qui rend Fly.io special : ils vous donnent 5$ de credit gratuit chaque mois, pour toujours. Pas un essai, pas une offre a duree limitee - un hebergement permanent gratuit pour vos conteneurs Docker. Si votre utilisation reste sous 5$ (spoiler : ce sera le cas pour la plupart des projets), vous ne payez rien.

Encore mieux ? Contrairement a toutes les autres plateformes qui pretendent etre "gratuites", Fly.io execute vos conteneurs Docker comme de vraies VMs. Ce n'est pas du serverless ou votre app s'endort apres 5 minutes. Vos conteneurs restent en marche 24/7, repondant instantanement aux requetes.

J'ai trois APIs de production qui tournent sur Fly.io depuis plus d'un an. Cout total ? Zero dollars. Voici exactement comment faire.

Ce que vous obtenez gratuitement

Ce credit mensuel de 5$ se traduit par une infrastructure serieuse :

Vous obtenez trois VMs avec 256Mo de RAM chacune, qui tournent n'importe ou dans le monde. Ajoutez une base de donnees PostgreSQL avec 1Go de stockage. Ajoutez 160Go de bande passante sortante. Tout ca tient confortablement dans votre allocation gratuite, avec de la marge.

Le calcul est simple : une seule VM de 256Mo coute environ 1.94$/mois. Trois d'entre elles plus une petite base de donnees vous amene juste autour de 5$. Tant que vous restez dans ces limites, le credit mensuel de Fly.io couvre tout.

Demarrer prend 5 minutes

D'abord, installez le CLI Fly. Sur Mac, c'est une seule commande brew. Sur Linux, curl leur script d'installation. Les utilisateurs Windows ont PowerShell. Le tout prend 30 secondes.

# macOS
brew install flyctl

# Linux
curl -L https://fly.io/install.sh | sh

# Windows
pwsh -Command "iwr https://fly.io/install.ps1 -useb | iex"

Inscrivez-vous avec juste un email - ils demanderont une carte eventuellement, mais vous pouvez deployer vos premieres apps sans :

flyctl auth signup

Votre premier deploiement (c'est ridiculement facile)

C'est la ou Fly.io brille. Vous avez un Dockerfile ? Super, ca fonctionnera. Vous n'en avez pas ? Fly.io va le comprendre. Je suis serieux - il detecte votre framework et genere tout automatiquement.

Laissez-moi vous montrer un exemple reel. Voici une API Node.js que j'ai deployee la semaine derniere :

// index.js
const express = require('express');
const app = express();
const port = process.env.PORT || 3000;

app.get('/', (req, res) => {
  res.json({
    message: 'Cette API tourne 24/7 gratuitement',
    timestamp: new Date().toISOString()
  });
});

app.get('/health', (req, res) => {
  res.json({ status: 'healthy' });
});

app.listen(port, '0.0.0.0', () => {
  console.log(`Running on port ${port}`);
});

Pour deployer ca, j'ai litteralement juste execute :

flyctl launch

C'est tout. Fly a detecte Node.js, cree un Dockerfile, construit l'image et l'a deployee globalement. Le processus entier a pris environ 2 minutes. Mon API etait en ligne sur une URL *.fly.dev, avec HTTPS automatique, repondant aux requetes depuis le centre de donnees le plus proche.

L'avantage Docker que personne ne mentionne

Voici ce qui distingue Fly.io de Vercel, Netlify et les autres : vous deployez de vrais conteneurs Docker. Ca signifie que vous pouvez executer litteralement n'importe quoi - scripts Python, binaires Go, serveurs Rust, applications PHP, Ruby on Rails, ce que vous voulez.

J'ai une API Flask Python qui traite des webhooks, un bot Node.js qui execute des taches planifiees et un service Go qui gere le redimensionnement d'images. Tous tournent sur le palier gratuit. Essayez de faire ca sur le plan hobby de Vercel.

Vos conteneurs tournent comme des microVMs Firecracker, la meme technologie qu'Amazon utilise pour Lambda. Ils demarrent en millisecondes mais se comportent comme de vrais serveurs. Pas de cold starts, pas de timeouts de 10 secondes, pas de limitations serverless. Juste votre code qui tourne exactement comme vous l'attendez.

Faire fonctionner 256Mo (c'est plus facile qu'on ne le pense)

Le palier gratuit vous donne 256Mo de RAM par VM. Je sais ce que vous pensez - c'est rien ! Mais vous seriez surpris. Une API Express.js legere utilise environ 50Mo. Une app Flask avec quelques endpoints se situe autour de 80Mo. Meme une petite app Rails peut tenir dans 200Mo si vous faites attention.

Voici ce qui tourne bien sur 256Mo :

  • Backends API (REST ou GraphQL)
  • Processeurs de webhooks
  • Executeurs de jobs planifies
  • Sites statiques avec des fonctionnalites dynamiques
  • Bots Discord/Slack
  • Petites bases de donnees avec SQLite

Et voici ce qui ne tourne pas :

  • Next.js (a besoin d'au moins 512Mo)
  • Grandes applications Django
  • Apps Java Spring Boot
  • Tout ce qui charge de gros datasets en memoire

PostgreSQL qui juste fonctionne

Ajouter une base de donnees est stupidement simple :

flyctl postgres create

Choisissez la configuration "Development" quand on vous demande. Ca vous donne une instance PostgreSQL avec 256Mo de RAM et 1Go de stockage, parfait pour les petites apps. La base de donnees tourne dans la meme region que votre app pour une latence minimale.

Connectez-la a votre app :

flyctl postgres attach <nom-base-de-donnees>

Cela definit automatiquement une variable d'environnement DATABASE_URL. Votre app peut se connecter immediatement :

const { Pool } = require('pg');
const pool = new Pool({
  connectionString: process.env.DATABASE_URL
});

// C'est tout. Vous avez une base de donnees.

Je fais tourner un blog avec 500+ articles, un systeme utilisateur avec 1000+ comptes et un tableau de bord analytique suivant 50k evenements - tout sur la base de donnees du palier gratuit. A moins que vous construisiez le prochain Twitter, 1Go c'est largement suffisant.

Devenir global sans essayer

Deployez dans plusieurs regions avec une seule commande :

flyctl regions add lhr  # Londres
flyctl regions add nrt  # Tokyo
flyctl regions add syd  # Sydney

Fly.io route automatiquement les utilisateurs vers l'instance la plus proche. Vos utilisateurs europeens arrivent a Londres, les utilisateurs asiatiques arrivent a Tokyo, et tout fonctionne simplement. Pas de configuration, pas de setup CDN, rien.

Avec trois VMs gratuites, vous pouvez en mettre une dans chaque region pour une couverture vraiment globale. Ou gardez les trois dans une region pour la redondance - si une crashe, les autres continuent de servir les requetes.

Les pieges (il n'y en a pas beaucoup)

Soyons realistes sur les limitations. Le credit de 5$ ne se reporte pas d'un mois a l'autre. Utilisez-le ou perdez-le. Mais honnetement, faire tourner trois petites VMs 24/7 utilise le credit complet de toute facon.

Vous devrez eventuellement ajouter une carte de credit pour debloquer certaines fonctionnalites comme les domaines personnalises et pour prevenir l'interruption de service si vous depassez la limite. Mais voici le truc - Fly.io vous envoie un email avant de facturer quoi que ce soit. Pas de factures surprise de 500$ parce que vous avez oublie d'eteindre un serveur de test.

La limite de RAM de 256Mo est reelle. Vous ne pouvez pas juste y balancer du code inefficace et attendre des miracles. Mais cette contrainte vous force a ecrire du meilleur code, et ce n'est pas une mauvaise chose.

Quand utiliser Fly.io vs tout le reste

Utilisez Fly.io quand vous voulez de vrais serveurs qui ne dorment jamais. Parfait pour les APIs, webhooks, bots et tout ce qui doit repondre instantanement. Le support Docker signifie que vous pouvez executer n'importe quel langage ou framework.

Utilisez Vercel quand vous construisez des sites Next.js et voulez cette experience developpeur parfaite. Leurs preview deployments sont inegalees.

Utilisez Cloudflare Workers pour les fonctions edge qui doivent tourner dans 50+ emplacements avec zero cold starts.

Utilisez Railway quand vous voulez une UI plus jolie et ne voyez pas d'inconvenient a payer des le premier jour.

Mais pour mettre une vraie app en ligne, gratuitement, qui reste en marche ? Fly.io gagne a chaque fois.

A votre tour de deployer

Arretez de lire et essayez. Serieusement, ca prend 5 minutes :

  1. Installez le CLI
  2. Creez une app simple (ou utilisez-en une que vous avez deja)
  3. Executez flyctl launch
  4. Regardez votre app passer en ligne

C'est tout. Pas de configuration complexe, pas d'enfer yaml, pas de surprises de facturation. Juste votre code qui tourne sur une vraie infrastructure.

Construire quelque chose a deployer

Pret a deployer votre premiere app sur Fly.io ? Commencez par construire un vrai projet avec ces tutoriels pratiques :

Chaque tutoriel inclut la configuration Docker et les etapes de deploiement, facilitant le passage de votre projet du developpement a la production sur le palier gratuit de Fly.io.

Vous avez deja une app Flask ? Suivez notre tutoriel complet de deploiement Docker et Fly.io pour des instructions etape par etape sur la containerisation de votre application Flask avec PostgreSQL et le deploiement sur Fly.io avec des migrations sans temps d'arret.


Details techniques

Plateforme : Fly.io Credit mensuel : 5$ (couvre 3 VMs + base de donnees) Deploiement : Conteneurs Docker comme microVMs Regions : 30+ dans le monde RAM par VM : 256Mo (extensible) Base de donnees : PostgreSQL avec 1Go de stockage Bande passante : 160Go/mois inclus

Note : Vous aurez besoin d'une carte de credit enregistree apres les tests initiaux, mais vous ne serez pas facture si vous restez sous 5$/mois d'utilisation.

Fred

Fred

AUTHOR

Full-stack developer with 10+ years building production applications. I've deployed applications to every major cloud platform and lived to tell the tale.

Need a developer who gets it?

POC builds, vibe-coded fixes, and real engineering. Let's talk.

Hire Me →