Guides

Héberger Fatplant soi-même : guide complet

2026-03-05T00:00:00.000Z · Claire Maublanc

L’une des raisons d’être de Fatplant est la souveraineté des données. Pas d’abonnement mensuel à une plateforme SaaS, pas de dépendance à un hébergeur qui peut fermer son service ou augmenter ses tarifs du jour au lendemain. Vos données, votre serveur, vos règles.

Ce guide vous accompagne pas à pas pour héberger Fatplant sur votre propre infrastructure.

Choisir son serveur

Pour une instance Fatplant légère (moins de 10 utilisateurs, quelques milliers d’articles), un VPS 4 Go de RAM et 2 vCPU est largement suffisant. Les hébergeurs comme Hetzner, OVHcloud, Scaleway ou DigitalOcean proposent ce type de configuration pour 5 à 15 €/mois.

Pour une rédaction plus active ou un trafic public important, visez 8 Go de RAM et un SSD d’au moins 50 Go. La base de données PostgreSQL et les fichiers uploadés sont les principales sources de consommation d’espace disque.

Système d’exploitation recommandé : Debian 12 ou Ubuntu 24.04 LTS. Ces distributions sont bien documentées, bénéficient de mises à jour de sécurité longue durée, et Docker s’y installe sans friction.

Préparer le serveur

Installer Docker

# Mettre à jour le système
sudo apt update && sudo apt upgrade -y

# Installer les dépendances
sudo apt install -y ca-certificates curl gnupg

# Ajouter le dépôt Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Installer Docker Engine et Docker Compose
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

# Ajouter votre utilisateur au groupe docker
sudo usermod -aG docker $USER
newgrp docker

Configurer le pare-feu

sudo ufw allow 22/tcp     # SSH
sudo ufw allow 80/tcp     # HTTP
sudo ufw allow 443/tcp    # HTTPS
sudo ufw enable

Ne jamais exposer les ports des conteneurs directement (5432, 6379, 8000…) — laissez Nginx faire le reverse-proxy.

Déployer Fatplant

# Cloner le dépôt
sudo git clone https://github.com/fatplant/fatplant.git /opt/fatplant
cd /opt/fatplant

# Configurer l'environnement
sudo cp .env.example .env
sudo nano .env

Les variables minimales à personnaliser :

  • APP_URL, ADMIN_URL, FRONTEND_URL — vos domaines
  • DATABASE_URL — connexion PostgreSQL (le conteneur db est défini dans docker-compose)
  • APP_SECRET — générez une valeur aléatoire avec openssl rand -hex 32

Générez ensuite les clés JWT :

sudo mkdir -p /opt/fatplant/config/jwt
sudo openssl genrsa -out /opt/fatplant/config/jwt/private.pem 4096
sudo openssl rsa -pubout -in /opt/fatplant/config/jwt/private.pem 
    -out /opt/fatplant/config/jwt/public.pem

Démarrez les services :

cd /opt/fatplant
docker compose up -d

Obtenir un certificat TLS avec Let’s Encrypt

sudo apt install -y certbot python3-certbot-nginx

sudo certbot --nginx -d monmedia.fr -d admin.monmedia.fr -d api.monmedia.fr -d yjs.monmedia.fr

Certbot configure automatiquement Nginx pour le HTTPS et planifie le renouvellement automatique.

Bonnes pratiques de maintenance

Sauvegardes automatiques

Ne négligez jamais les sauvegardes. Créez un script simple :

#!/bin/bash
# /opt/scripts/backup.sh
DATE=$(date +%Y%m%d_%H%M%S)

# Sauvegarde PostgreSQL
docker compose -C /opt/fatplant exec -T db 
    pg_dump -U fatplant fatplant | gzip > /opt/backups/db_$DATE.sql.gz

# Sauvegarde des uploads
tar czf /opt/backups/uploads_$DATE.tar.gz /opt/fatplant/data/uploads/

# Nettoyage des sauvegardes de plus de 30 jours
find /opt/backups -mtime +30 -delete

Planifiez-le toutes les nuits à 3h :

echo "0 3 * * * root /opt/scripts/backup.sh" | sudo tee /etc/cron.d/fatplant-backup

Mises à jour

Mettez à jour régulièrement, surtout pour les correctifs de sécurité :

cd /opt/fatplant
git pull origin main
docker compose pull
docker compose up -d
docker compose exec backend php bin/console doctrine:migrations:migrate --no-interaction

Supervision

Installez Uptime Kuma (ou un service équivalent) pour être alerté si votre instance est indisponible. Configurez des sondes HTTP sur /api/health et /health.

Ce que le self-hosting vous apporte

  • Contrôle total sur vos données et votre infrastructure
  • Pas de limite arbitraire sur le nombre d’articles, d’utilisateurs ou de médias
  • Personnalisation complète du comportement, des thèmes et des plugins
  • Conformité RGPD facilitée : vous savez exactement où sont vos données

Le self-hosting demande un peu d’investissement initial, mais il se révèle économique sur le long terme et vous donne une tranquillité d’esprit que peu de solutions SaaS peuvent offrir.

Restez a la pointe de l'edition

Recevez les dernieres nouveautes, tutoriels et bonnes pratiques dans votre boite mail.

F
Fatplant

Le CMS open-source des redactions de presse en ligne. Du chemin de fer a la publication et au paywall : journaux, magazines et plateformes editoriales, self-hosted et sans vendor lock-in.

Open Source RGPD MIT License
Pourquoi « Fatplant » ?

« Fatplant », c'est « Flat Plan » qui a un peu bougé. Le flat plan — le chemin de fer en jargon de presse — c'est le plan page à page d'un journal avant impression : le squelette de l'édition, la pré-maquette en fil de fer. C'est exactement ce que dessine notre page builder. Un CMS qui part du chemin de fer ne pouvait pas s'appeler autrement. 🌱

© 2026 Fatplant SAS. Tous droits reserves.