Server Manager/ Help
Open Server Manager →

Installer WordPress

Un clic + une question (le domaine), puis tu approuves les commandes d’installation. WordPress + MariaDB dans Docker, derrière Caddy avec HTTPS automatique, prêt en 2 à 3 minutes. L’assistant de première configuration de WordPress gère le titre du site et le compte admin.

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 mode 600, 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é

1Ouvre la palette de recettes

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.

Palette de recettes avec la tuile mise en avant « Installer WordPress » surlignée
Palette de recettes avec la tuile mise en avant « Installer WordPress » surlignée

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.
2Faro demande le domaine

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 :

Chat montrant la question de Faro : « Quel domaine doit servir ce site WordPress ? »
Chat montrant la question de Faro : « Quel domaine doit servir ce site WordPress ? »

Saisis le domaine (par exemple mysite.com) — ou skip si tu veux d’abord tester sur l’IP brute. Puis envoie.

3Approuve chaque commande pendant son exécution

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) et openssl 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é sur 127.0.0.1:<random> — jamais 0.0.0.0).
  • Écriture de /opt/wordpress/.env avec 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.
Chat montrant une commande « docker compose up -d » en attente d’approbation, de saut ou d’annulation
Chat montrant une commande « docker compose up -d » en attente d’approbation, de saut ou d’annulation

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).

4Faro te donne l’URL

Quand les conteneurs sont lancés et que Caddy a été rechargé, Faro te donne l’URL :

Chat montrant le message d’installation terminée avec l’URL WordPress surlignée
Chat montrant le message d’installation terminée avec l’URL WordPress surlignée

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).

5Termine l’assistant de première configuration de WordPress

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.

Écran d’installation en 5 minutes de WordPress — Titre du site, Identifiant, Mot de passe, Votre e-mail, puis Installer WordPress
Écran d’installation en 5 minutes de WordPress — Titre du site, Identifiant, Mot de passe, Votre e-mail, puis Installer 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.

6Retour dans Server Manager

Une carte de charge de travail apparaît maintenant sur ton écran d’accueil avec le pictogramme WordPress et le titre de ton site :

Carte de charge de travail sur l’écran d’accueil — site WordPress avec l’état « OK · RUNNING »
Carte de charge de travail sur l’écran d’accueil — site WordPress avec l’état « OK · RUNNING »

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).
Onglet WP-Admin du ServicePanel — URL de destination + bouton « Ouvrir l’admin WordPress → »
Onglet WP-Admin du ServicePanel — URL de destination + bouton « Ouvrir l’admin WordPress → »
Onglet Extensions du ServicePanel — liste des extensions avec boutons Activer/Désactiver
Onglet Extensions du ServicePanel — liste des extensions avec boutons Activer/Désactiver

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) :

Quoi
/opt/wordpress/docker-compose.ymlDéfinitions des conteneurs (WordPress 6 + MariaDB 11)
/opt/wordpress/.envSecrets (mot de passe DB + 8 sels WP) — chmod 600, appartenant à root
Volume nommé Docker wp_datawp-content WordPress (uploads, extensions, thèmes)
Volume nommé Docker db_dataFichiers de données MariaDB
Réseau Docker wordpress_defaultRéseau interne permettant aux deux conteneurs de communiquer
/etc/caddy/CaddyfileBloc reverse proxy pour ton domaine (activé après un caddy reload)
Répertoire de données CaddyCertificat 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 ligne reverse_proxy de 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).