Tu veux faire tourner WordPress sur ton domaine (ou simplement sur l’IP de ton serveur), avec HTTPS, derrière un vrai reverse proxy, dans Docker pour qu’il ne se mélange à rien d’autre. La recette Installer WordPress de Server Manager fait tout ça en environ 2 à 3 minutes. Tu réponds à une seule question (quel domaine), puis tu approuves chaque commande au fil de son exécution dans le chat.
Ce que tu obtiendras
- Un site WordPress 6 exécuté dans un conteneur Docker, connecté à un conteneur MariaDB 11 sur un réseau privé.
- Caddy (déjà lancé sur l’hôte) qui fait office de reverse proxy entre ton domaine et le conteneur, avec HTTPS Let's Encrypt généré automatiquement.
- Les secrets du site (mot de passe de base de données, les 8 sels WordPress) générés automatiquement et stockés dans
/opt/wordpress/.env, en mode600, avec root comme propriétaire. Rien n’est stocké en clair ailleurs. - Une carte de charge de travail sur ton écran d’accueil avec le logo WordPress. Clique sur
manage →pour ouvrir les onglets propres à la recette : WP-Admin · Extensions · Thèmes · Maintenance · État · Journaux · Contrôles · Sauvegarde.
Prérequis — un domaine (facultatif, mais recommandé)
WordPress fonctionne très bien sur une IP brute pour faire des tests, mais pour un vrai site, mieux vaut utiliser un domaine avec HTTPS. Si ce n’est pas déjà fait, lance d’abord Connecter un domaine : fais pointer mysite.com vers l’IP de ce serveur et confirme que le DNS s’est propagé. L’assistant d’installation fonctionne dans les deux cas, mais le chemin le plus fluide est de configurer le DNS avant l’installation : Caddy peut émettre un certificat TLS immédiatement si le domaine pointe déjà ici.
Si tu n’as qu’une IP pour l’instant, pas de souci : tu pourras ajouter un domaine plus tard sans réinstaller. Barre du haut → → Faire pointer un domaine ici. (Ou utilise le bouton Connecter un domaine qui apparaît dans la barre d’action du bas quand tu cliques sur une carte qui n’a pas encore de domaine : c’est le même assistant, simplement déjà ciblé sur cette charge de travail.)
Le déroulé
Appuie sur / n’importe où dans le chat pour ouvrir la palette, OU clique sur Parcourir toutes les actions sous le chat, OU clique sur Actions dans la barre du haut et choisis WordPress.
WordPress apparaît dans la palette comme une tuile mise en avant Commencer ici en haut, et aussi plus bas dans la catégorie Apps web. Les deux entrées lancent le même flux d’installation.
Remarque pour les serveurs sans Caddy. Si ton serveur utilise déjà nginx, Apache ou Traefik au lieu de Caddy, la recette WordPress est « restreinte » : la tuile affiche un badge 💬 via le chat. Tu peux quand même cliquer dessus ; Faro configurera WordPress de façon native pour ton moteur au lieu d’installer Caddy. Consulte Pourquoi Caddy ? et Migrer vers Caddy pour plus de contexte.
Après ton clic sur la tuile, le chat prend le relais. Le premier message de Faro effectue une vérification rapide (« y a-t-il déjà du wordpress ici ? », « les ports 80/443 sont-ils libres ? », etc.) puis pose une courte question :
Saisis le domaine (par exemple mysite.com) — ou skip si tu veux d’abord tester sur l’IP brute. Puis envoie.
Faro te demande ton accord avant chaque commande qui modifie l’état du serveur. Le premier lot ressemble généralement à ceci :
- (seulement si absent)
apt install docker.io docker-compose-plugin— installe Docker. mkdir -p /opt/wordpress— répertoire d’installation.openssl rand -base64 32(mot de passe de la DB) etopenssl rand -base64 48× 8 (les sels WordPress).- Écriture de
/opt/wordpress/docker-compose.yml(wordpress:6+mariadb:11épinglés, volumes nommés, réseau interne, port publié sur127.0.0.1:<random>— jamais0.0.0.0). - Écriture de
/opt/wordpress/.envavec tous les secrets,chmod 600. docker compose up -d— démarre les conteneurs.- Bloc Caddyfile pour ton domaine →
https://mysite.com { reverse_proxy 127.0.0.1:<port> }→caddy reload.
Le texte exact de chaque commande est visible avant que tu l’approuves. Tu peux Approuver, Ignorer (rarement utile — cela casse généralement l’installation), ou Annuler (rien ne restera en cours d’exécution, et rien ne sera laissé sur le disque que nous ne puissions nettoyer).
Pourquoi autant d’approbations ? Server Manager n’exécute rien de destructeur sans ton accord explicite. Même pour une installation courante. C’est une friction volontaire. Après la première installation, tu sauras à quoi t’attendre ; les installations suivantes paraîtront plus rapides, car le rythme des approbations sera familier.
Temps total d’installation, approbations comprises : généralement 2 à 3 minutes. L’essentiel de ce temps correspond au téléchargement Docker (~500 Mo d’images WordPress + MariaDB lors de la première installation).
Quand les conteneurs sont lancés et que Caddy a été rechargé, Faro te donne l’URL :
Il pose aussi une question proactive : « Tu veux que je configure des sauvegardes nocturnes de la base de données ? » Choisis oui ou non : tu pourras toujours les configurer plus tard (voir Sauvegardes).
Clique sur l’URL. L’assistant d’installation propre à WordPress s’ouvre : la configuration côté Server Manager est terminée ; à partir d’ici, tu échanges directement avec WordPress.
Définis le titre du site, choisis un identifiant admin (pas « admin » : prends quelque chose de moins facile à deviner), définis un mot de passe admin robuste (ou laisse WP en générer un et enregistre-le dans ton gestionnaire de mots de passe), puis saisis l’e-mail admin. Clique sur Installer WordPress.
Les identifiants admin WordPress ne sont PAS les mêmes que tes identifiants Server Manager. Ils se trouvent dans la base de données WordPress, séparément de Server Manager. Choisis un mot de passe robuste et enregistre-le dans un gestionnaire de mots de passe : côté Server Manager, il n’existe aucun moyen de récupérer un mot de passe admin WP oublié sans intervention dans la base de données (le chat peut le faire ; voir « Questions fréquentes » plus bas).
C’est terminé. Connecte-toi à /wp-admin/, écris ton premier article, installe un thème, ajoute des extensions : comme sur n’importe quel site WordPress.
Une carte de charge de travail apparaît maintenant sur ton écran d’accueil avec le pictogramme WordPress et le titre de ton site :
Clique sur manage → pour ouvrir le avec les onglets propres à la recette :
- WP-Admin — un lien en un clic vers
https://your-domain/wp-admin/. - Extensions — liste des extensions installées, avec activation / désactivation / mise à jour / suppression en un clic. (L’ajout de nouvelles extensions se fait toujours via WP-Admin : c’est là que se trouve l’index de recherche des extensions.)
- Thèmes — comme Extensions, mais pour les thèmes.
- Maintenance — trois fonctions dans un même onglet : Vider le cache WordPress (forcer la reconstruction à la prochaine visite), Rechercher et remplacer dans la base de données (généralement pour modifier l’URL du site — compatible wp-cli afin de ne pas corrompre les données PHP sérialisées ; par défaut, un aperçu sécurisé en simulation est lancé), et Mettre à jour le cœur de WordPress (avec un rappel Sauvegarde / Clone avant toute modification).
- État / Journaux / Contrôles / Sauvegarde — les onglets universels (tous les types de charges de travail les ont).
Ce qui a été installé exactement
Pour référence (tu n’as besoin de toucher à rien de tout ça : le panneau de service s’en charge) :
| Où | Quoi |
|---|---|
/opt/wordpress/docker-compose.yml | Définitions des conteneurs (WordPress 6 + MariaDB 11) |
/opt/wordpress/.env | Secrets (mot de passe DB + 8 sels WP) — chmod 600, appartenant à root |
Volume nommé Docker wp_data | wp-content WordPress (uploads, extensions, thèmes) |
Volume nommé Docker db_data | Fichiers de données MariaDB |
Réseau Docker wordpress_default | Réseau interne permettant aux deux conteneurs de communiquer |
/etc/caddy/Caddyfile | Bloc reverse proxy pour ton domaine (activé après un caddy reload) |
| Répertoire de données Caddy | Certificat Let's Encrypt généré automatiquement pour ton domaine |
Le conteneur WordPress publie son port sur 127.0.0.1:<random in 38000–39999> — uniquement sur localhost. Caddy l’atteint via ce port local ; l’internet public ne voit que Caddy sur 80/443. Donc même si WordPress présentait une vulnérabilité, le conteneur lui-même ne serait pas exposé directement.
Questions fréquentes
Où trouver des extensions ? Dans WordPress, via la recherche WP-Admin → Extensions → Ajouter comme sur n’importe quel site WP classique. Une fois installées, l’onglet Extensions du panneau de service Server Manager les affiche avec activation/désactivation/mise à jour/suppression en un clic.
**Puis-je modifier wp-config.php ?** Il est dans le conteneur et régénéré lors de docker compose up. Les modifications personnalisées vont dans /opt/wordpress/.env (les secrets + les éléments que WordPress lit via les variables d’environnement) ou dans /opt/wordpress/docker-compose.yml (la définition du conteneur elle-même). Pour ajouter une variable d’environnement personnalisée, demande à Faro : « add WP_DEBUG=true to the wordpress container » — puis approuve le changement.
J’ai perdu le mot de passe admin. N’utilise pas le lien « Mot de passe oublié ? » de WordPress sauf si tu as configuré Envoyer des e-mails depuis ton domaine (sinon, l’e-mail n’arrivera nulle part). Demande plutôt à Faro : « reset the WordPress admin password. » Il exécute une procédure sûre de rotation dans la DB (aucun mot de passe en clair n’est jamais affiché) et te communique le nouveau mot de passe une fois l’opération terminée.
J’ai aussi perdu l’identifiant admin. Demande à Faro : « who's the WordPress admin? » — il liste les comptes ayant le rôle admin depuis la base de données.
Puis-je faire tourner plusieurs sites WordPress sur le même serveur ? Oui. Relance simplement la recette Installer WordPress avec un autre domaine : Faro détectera l’installation existante dans /opt/wordpress/ (son précontrôle cherche wordpress dans docker ps) et proposera un répertoire d’installation sans conflit (généralement /opt/wordpress-<short-name>/) afin que les nouveaux conteneurs, volumes et blocs Caddy n’entrent pas en collision avec l’original. Caddy multiplexe par domaine. Consulte Plusieurs sites sur le même serveur pour la version détaillée.
WordPress est lent / manque de mémoire. Chaque installation nécessite environ 256 à 512 Mo de RAM au repos (WordPress + MariaDB combinés). Sur un serveur de 1 Go, tu peux en faire tourner une confortablement ; sur 2 Go, deux ; etc. La carte de charge de travail sur l’écran d’accueil affiche l’utilisation actuelle de RAM : si tu la vois monter vers le total du serveur, il est temps d’augmenter la taille du serveur ou de déplacer les sites lourds vers des instances plus grandes. Si WP-Admin signale spécifiquement « Allowed memory size exhausted » au milieu d’une action, demande à Faro dans le chat d’augmenter le memory_limit PHP : il modifiera le bon fichier de configuration dans le conteneur et redémarrera le service.
Puis-je migrer un site WordPress existant ici ? Oui : c’est l’assistant Migrer un site existant ici. Il copie les fichiers et la DB de ton site depuis ton ancien hébergeur, puis l’installe ici avec la même recette.
Puis-je avoir HTTPS sans domaine ? Pas avec Let's Encrypt (ils exigent un vrai domaine). Le site sera servi en HTTP simple sur http://<your-ip> jusqu’à ce que tu fasses pointer un domaine vers le serveur ; HTTPS sera ensuite généré automatiquement en environ 30 secondes.
Ce qui n’entre PAS dans le périmètre ici
- WordPress multisite (réseau) — la recette installe un WP monossite. Le multisite s’active dans WordPress lui-même après l’installation, via des modifications de
wp-config.php. Demande à Faro de l’activer ; le changement se fait dans le fichier d’environnement et via un indicateur dans la base de données WP. - Thèmes/extensions WordPress personnalisés livrés avec ton code — la recette installe un WP standard. Si tu as un thème personnalisé + des extensions sous forme de code, déploie-les via Migrer un site existant ici (depuis ton environnement de développement) ou comme bundle de sauvegarde via Restaurer depuis une sauvegarde.
- Durcissement / configuration de sécurité WordPress — la recette applique des valeurs par défaut raisonnables (secrets aléatoires, port non exposé publiquement, secrets en variables d’environnement). Pour des éléments comme la 2FA, Wordfence ou les analyses de malware, installe-les comme extensions dans WordPress.
- Envoi d’e-mails DEPUIS WordPress — les extensions WP-Mail ou de formulaires de contact ont besoin d’un point de terminaison SMTP/API. Lance Envoyer des e-mails depuis ton domaine (Resend), puis renseigne ces identifiants dans une extension SMTP WordPress.
Référence
Chemins d’installation par défaut :
- Répertoire d’installation :
/opt/wordpress/(ou/opt/wordpress-<suffix>/s’il y en a plusieurs) - Fichier Compose :
/opt/wordpress/docker-compose.yml - Env / secrets :
/opt/wordpress/.env - Bloc Caddy :
/etc/caddy/Caddyfile— cherche la lignereverse_proxyde ton domaine
Les noms de conteneurs suivent le modèle par défaut de Compose, <project>-<service>-<n> : généralement wordpress-wordpress-1 (web) et wordpress-db-1 (base de données) avec Compose v2 moderne ; l’ancien v1 utilise des séparateurs _ (wordpress_wordpress_1). Exécute docker ps pour confirmer exactement ce qui tourne sur ton serveur.
Plage de ports interne : 38000–39999 — la recette en choisit un libre au hasard et le publie sur 127.0.0.1. Seul Caddy sur l’hôte peut l’atteindre ; l’internet public ne le peut pas.
Versions WordPress + MariaDB : épinglées sur les tags majeurs wordpress:6 et mariadb:11. Les mises à jour correctives se récupèrent avec docker compose pull. Les montées de version majeures (WP 6 → 7, MariaDB 11 → 12) doivent être demandées séparément dans le chat : elles nécessitent parfois des migrations de DB.
Pour désinstaller : le panneau manage → de la carte d’accueil propose une action Supprimer dans Contrôles. Elle arrête les conteneurs, efface éventuellement les volumes nommés (tu perds alors tes données) ou les conserve (pour pouvoir réinstaller plus tard), et supprime le bloc Caddy. Il existe aussi une action en un clic dans la barre d’action du bas (clique sur la carte → Supprimer).