- Corriger Ubuntu 24 → Ubuntu 22.04 - Marquer phases 1.1, 1.3, 1.4 comme faites (WordOps installé) - Ajouter 4 cas de dépannage pour l'erreur SSH "Permission denied" - Simplifier Phase 2 avec les commandes WordOps (2 lignes au lieu de 4 étapes manuelles) https://claude.ai/code/session_01PzA98VhLMmsHpzs7gnLHGs
250 lines
7.0 KiB
Markdown
250 lines
7.0 KiB
Markdown
# Plan de déploiement HookLab — Sites Artisans
|
|
|
|
---
|
|
|
|
## PHASE 1 — Serveur OVH `(toi + moi)`
|
|
|
|
### 1.1 — VPS ✅ FAIT
|
|
- [x] VPS OVH commandé — IP : `51.83.162.147` / host : `vps-9993ccd0.vps.ovh.net`
|
|
- [x] Ubuntu **22.04** LTS
|
|
- [x] WordOps installé et accessible sur `https://51.83.162.147:22222`
|
|
|
|
### 1.2 — Accès SSH
|
|
|
|
> **Problème connu :** `Permission denied (publickey,password)`
|
|
>
|
|
> **Solutions selon le cas :**
|
|
|
|
**Cas A — Tu as une clé SSH (créée à la commande du VPS)**
|
|
```bash
|
|
ssh -i ~/.ssh/ta_cle_privee root@51.83.162.147
|
|
```
|
|
|
|
**Cas B — Mot de passe root OVH (reçu par email à la création)**
|
|
```bash
|
|
# Vérifier que l'auth par mot de passe est autorisée :
|
|
# → Espace client OVH > VPS > Console KVM
|
|
# → puis dans le terminal KVM :
|
|
nano /etc/ssh/sshd_config
|
|
# Vérifier/changer : PasswordAuthentication yes
|
|
systemctl restart ssh
|
|
```
|
|
|
|
**Cas C — Réinitialiser le mot de passe root depuis OVH**
|
|
```
|
|
Espace client OVH → VPS → "Réinitialiser le mot de passe"
|
|
(reçu par email dans les 2 minutes)
|
|
```
|
|
|
|
**Cas D — Root déjà désactivé (si étape 1.2 déjà faite)**
|
|
```bash
|
|
# Essayer avec l'utilisateur hooklab
|
|
ssh hooklab@51.83.162.147
|
|
```
|
|
|
|
### 1.3 — Stack LEMP ✅ FAIT (via WordOps)
|
|
> WordOps gère Nginx, PHP 8.2, MariaDB, Redis automatiquement.
|
|
> Pas besoin d'installer manuellement.
|
|
|
|
### 1.4 — Certbot ✅ FAIT (via WordOps)
|
|
> WordOps intègre Let's Encrypt nativement.
|
|
|
|
### 1.5 — Pare-feu
|
|
```bash
|
|
# À vérifier une fois connecté en SSH :
|
|
sudo ufw status
|
|
# Si inactif :
|
|
sudo ufw allow OpenSSH
|
|
sudo ufw allow 80
|
|
sudo ufw allow 443
|
|
sudo ufw allow 22222 # WordOps backend
|
|
sudo ufw enable
|
|
```
|
|
|
|
---
|
|
|
|
## PHASE 2 — WordPress Multisite `(toi + moi)`
|
|
|
|
> **Objectif :** Un seul WordPress qui héberge tous les sites clients.
|
|
> Chaque client = un sous-site isolé avec son propre accès.
|
|
>
|
|
> **Avec WordOps, les étapes 2.1 à 2.4 se font en 2 commandes.**
|
|
|
|
### 2.1 à 2.4 — Installation WordPress Multisite via WordOps
|
|
|
|
```bash
|
|
# Se connecter en SSH d'abord (voir Phase 1.2)
|
|
ssh root@51.83.162.147
|
|
|
|
# Créer le site WordPress Multisite (sous-répertoires)
|
|
# WordOps gère : BDD, Nginx, PHP, permissions automatiquement
|
|
wo site create hooklab.fr --wpsubdir --php82
|
|
|
|
# Activer HTTPS (Let's Encrypt)
|
|
wo site update hooklab.fr --letsencrypt
|
|
|
|
# Voir les identifiants générés (BDD, WP admin...)
|
|
wo site info hooklab.fr
|
|
```
|
|
|
|
> **Si le DNS hooklab.fr ne pointe pas encore vers le serveur**, utiliser l'IP :
|
|
> ```bash
|
|
> wo site create 51.83.162.147 --wpsubdir --php82
|
|
> # Puis migrer vers hooklab.fr une fois le DNS configuré (Phase 6)
|
|
> ```
|
|
|
|
### 2.5 — Installer les plugins essentiels (réseau)
|
|
- [ ] **Kadence Blocks** — page builder
|
|
- [ ] **Kadence Theme** — thème de base
|
|
- [ ] **WP Rocket** ou **LiteSpeed Cache** — performances
|
|
- [ ] **Wordfence** — sécurité
|
|
- [ ] **UpdraftPlus** — sauvegardes automatiques
|
|
- [ ] **Yoast SEO** ou **Rank Math** — SEO
|
|
|
|
### 2.6 — Structure des sous-sites
|
|
```
|
|
hooklab.fr/ ← Site principal (vitrine HookLab)
|
|
hooklab.fr/cyprien/ ← Site de Cyprien (maçon)
|
|
hooklab.fr/dupont/ ← Site de M. Dupont (plombier)
|
|
hooklab.fr/martin/ ← Site de M. Martin (paysagiste)
|
|
```
|
|
|
|
> Ou avec sous-domaines si préféré :
|
|
> `cyprien.hooklab.fr`, `dupont.hooklab.fr`
|
|
|
|
### 2.7 — Permissions client
|
|
- Chaque client reçoit un accès **Éditeur** (ou **Administrateur de sous-site**)
|
|
- Il peut modifier ses textes, images, pages
|
|
- Il **ne peut pas** modifier les autres sites
|
|
- Il **ne peut pas** installer des plugins ou thèmes
|
|
|
|
---
|
|
|
|
## PHASE 3 — Design Kadence `(surtout toi)`
|
|
|
|
> Reproduire le design actuel des pages `/macon`, `/plombier`, `/paysagiste`
|
|
> avec Kadence Blocks.
|
|
|
|
### Checklist design
|
|
- [ ] Importer la palette de couleurs HookLab dans Kadence
|
|
- [ ] Configurer la typographie (polices actuelles)
|
|
- [ ] Recréer le header / navbar
|
|
- [ ] Recréer la section Hero (titre + CTA)
|
|
- [ ] Section "Nos services" (3 colonnes)
|
|
- [ ] Section témoignages / avis Google
|
|
- [ ] Formulaire de contact / devis
|
|
- [ ] Footer avec coordonnées + mentions légales
|
|
- [ ] Responsive mobile vérifié
|
|
|
|
### Astuce Kadence
|
|
```
|
|
Kadence → Design Library → "Save as Template"
|
|
→ Réutiliser ce template pour chaque nouveau client
|
|
```
|
|
|
|
---
|
|
|
|
## PHASE 4 — Blog + SEO `(toi)`
|
|
|
|
### Structure recommandée
|
|
```
|
|
hooklab.fr/blog/ ← Blog principal HookLab
|
|
hooklab.fr/cyprien/blog/ ← Articles SEO locaux de Cyprien
|
|
```
|
|
|
|
### Checklist SEO par site client
|
|
- [ ] Yoast / Rank Math configuré
|
|
- [ ] Sitemap XML généré
|
|
- [ ] Google Search Console connecté
|
|
- [ ] Meta title + description sur chaque page
|
|
- [ ] Balises H1/H2 structurées
|
|
- [ ] Images optimisées (WebP + alt text)
|
|
- [ ] Page "Mentions légales" + "Politique confidentialité"
|
|
- [ ] Schema.org LocalBusiness (nom, adresse, téléphone)
|
|
|
|
### Mots-clés cibles (exemple Maçon)
|
|
```
|
|
maçon [ville]
|
|
entreprise maçonnerie [ville]
|
|
devis maçon [ville]
|
|
rénovation façade [ville]
|
|
```
|
|
|
|
---
|
|
|
|
## PHASE 5 — Template client `(toi)`
|
|
|
|
> Créer **1 template Kadence réutilisable** pour tous les artisans.
|
|
> Nouveau client = dupliquer le template + changer textes/photos.
|
|
|
|
### Contenu du template
|
|
- [ ] Page d'accueil complète (Hero, Services, Avis, Contact)
|
|
- [ ] Page "À propos"
|
|
- [ ] Page "Réalisations" (galerie photos)
|
|
- [ ] Page "Contact" avec formulaire
|
|
- [ ] Page "Devis gratuit"
|
|
- [ ] Articles de blog pré-remplis (à adapter par ville)
|
|
|
|
### Livraison client
|
|
```
|
|
1. Dupliquer le sous-site template
|
|
2. Remplacer logo, couleurs, textes, photos
|
|
3. Configurer le nom de domaine client
|
|
4. Créer son accès Éditeur
|
|
5. Former le client (15 min en visio)
|
|
```
|
|
|
|
---
|
|
|
|
## PHASE 6 — Migration DNS `(toi + moi)`
|
|
|
|
> Faire pointer les domaines clients vers le serveur OVH.
|
|
|
|
### 6.1 — Domaine principal hooklab.fr
|
|
```
|
|
Type A hooklab.fr → TON_IP_OVH
|
|
Type A *.hooklab.fr → TON_IP_OVH (wildcard pour sous-domaines)
|
|
```
|
|
|
|
### 6.2 — Domaine custom par client (optionnel)
|
|
```
|
|
# Si le client a son propre domaine (ex: cyprien-macon.fr)
|
|
Type A cyprien-macon.fr → TON_IP_OVH
|
|
Type A www → TON_IP_OVH
|
|
```
|
|
|
|
### 6.3 — HTTPS automatique
|
|
```bash
|
|
# Générer les certificats SSL
|
|
sudo certbot --nginx -d hooklab.fr -d www.hooklab.fr
|
|
sudo certbot --nginx -d cyprien-macon.fr -d www.cyprien-macon.fr
|
|
|
|
# Renouvellement automatique (déjà inclus avec Certbot)
|
|
sudo systemctl enable certbot.timer
|
|
```
|
|
|
|
### 6.4 — Vérifications post-migration
|
|
- [ ] https:// fonctionne sur tous les domaines
|
|
- [ ] Pas de contenu mixte HTTP/HTTPS
|
|
- [ ] Redirections www → non-www (ou inverse)
|
|
- [ ] Formulaires de contact fonctionnels
|
|
- [ ] Emails de notification reçus
|
|
- [ ] Google Search Console mise à jour
|
|
|
|
---
|
|
|
|
## Récapitulatif
|
|
|
|
| Phase | Responsable | Durée estimée |
|
|
|-------|------------|---------------|
|
|
| 1 — Serveur OVH | toi + moi | 1h |
|
|
| 2 — WordPress Multisite | toi + moi | 1-2h |
|
|
| 3 — Design Kadence | toi | 3-5h par template |
|
|
| 4 — Blog + SEO | toi | ongoing |
|
|
| 5 — Template client | toi | 1h par client |
|
|
| 6 — Migration DNS | toi + moi | 30min |
|
|
|
|
---
|
|
|
|
*Dernière mise à jour : 2026-02-24*
|