Pourquoi auto-héberger Directus sur un VPS
Directus se branche sur votre base de données existante (PostgreSQL, MySQL, SQLite, MariaDB) sans imposer son propre schéma : il introspecte vos tables et génère API et interface d'admin par-dessus. En l'auto-hébergeant sur un VPS, vous évitez les tarifs au siège de l'offre Cloud officielle et vous gardez vos contenus, vos médias et votre base SQL sur votre propre infrastructure. C'est un choix structurant pour les agences qui livrent plusieurs sites : un seul Directus peut servir d'arrière-boutique à plusieurs front-ends (Nuxt, Next, mobile). Le contrôle de la base, des extensions et des webhooks vous permet d'intégrer Directus dans n'importe quel pipeline de données sans dépendre d'un fournisseur tiers, sans qu'aucun service tiers ne s'intercale entre vos front-ends et vos données.
Les bénéfices concrets du self-hosting de Directus
- API REST et GraphQL générées automatiquement à partir de votre schéma SQL, sans écrire de code.
- Interface d'admin no-code pour modéliser le contenu, gérer les rôles et les permissions granulaires.
- Compatible avec une base SQL existante : vous pouvez l'exposer sans la migrer ni la dénaturer.
- Gestion des médias, transformations d'images à la volée et stockage local ou S3 au choix.
- Flows et webhooks intégrés pour automatiser des traitements (notifications, synchronisations).
- Mutualisation : un seul VPS Directus peut alimenter plusieurs sites et applications front-end.
Prérequis matériels et logiciels
Directus est une application Node.js qui s'appuie sur une base de données externe. Comptez au minimum 2 Go de RAM pour faire tourner confortablement Directus et PostgreSQL sur le même VPS ; 4 Go sont recommandés en production avec des transformations d'images et plusieurs administrateurs simultanés. Un à deux vCPU suffisent pour démarrer. Prévoyez un cache Redis (optionnel mais conseillé pour les sessions et le rate limiting) et un volume de 30 à 60 Go SSD selon votre bibliothèque de médias. Vous aurez besoin de Docker et Docker Compose, d'un domaine pointant vers le VPS, et d'une clé secrète robuste pour SECRET et le hash des tokens. Postgres reste la base recommandée pour les fonctionnalités avancées.
Déployer Directus étape par étape
Provisionner le VPS et Docker
Après connexion SSH, installez Docker et Docker Compose. Créez un enregistrement DNS A pour
cms.mondomaine.comvers l'IP du VPS. Ouvrez uniquement les ports 80 et 443 dans le pare-feu (ufw allow 80,443/tcp).Définir la stack dans docker-compose.yml
Déclarez trois services :
database(imagepostgres:16avec un volume persistant),cache(redis), etdirectus(directus/directus). Reliez Directus à Postgres via les variablesDB_CLIENT=pg,DB_HOST=database,DB_DATABASE,DB_USER,DB_PASSWORD.Configurer les variables d'environnement
Renseignez
KEYetSECRETavec des chaînes aléatoires (openssl rand -hex 32), définissezADMIN_EMAILetADMIN_PASSWORDpour le premier compte, etPUBLIC_URL=https://cms.mondomaine.compour que les liens et les uploads soient corrects.Démarrer et initialiser la base
Lancez
docker compose up -d. Au premier démarrage, Directus crée automatiquement les tables système et le compte admin. Suivez l'initialisation avecdocker compose logs -f directus.Brancher le reverse proxy et le TLS
Placez Caddy ou Traefik devant Directus pour gérer Let's Encrypt. Avec Traefik, ajoutez les labels de routage sur le service
directuset le certresolver ACME. Vérifiez quePUBLIC_URLcorrespond exactement au domaine HTTPS pour éviter les soucis de CORS et d'uploads.Sécuriser et sauvegarder
Restreignez les origines CORS aux domaines de vos front-ends, désactivez l'inscription publique si inutile, puis planifiez un
pg_dumpquotidien plus une copie du dossieruploadsvers un stockage distant.
Pour servir les images de manière performante, activez le stockage des médias sur un bucket S3 compatible plutôt que sur le disque local, et mettez en cache les transformations d'images (ASSETS_CACHE_TTL). Couplé à un CDN devant Directus, cela décharge le VPS des requêtes de médias et accélère le rendu des front-ends. Pensez aussi à limiter la taille des transformations autorisées via ASSETS_TRANSFORM_MAX_OPERATIONS pour éviter les abus de génération d'images à la volée.
Déployer Directus en un clic sur ServOrbit
Directus est disponible directement depuis le marketplace ServOrbit. Sélectionnez l'application lors de la commande de votre VPS : Docker est préinstallé, le conteneur Directus démarre automatiquement, et vos identifiants administrateur ([email protected] + mot de passe généré) sont affichés dans votre espace client. Vous accédez à l'interface d'administration via un tunnel SSH ou en rattachant un domaine depuis votre tableau de bord — sans installer Docker ni éditer de fichier Compose à la main.