From 0d4c12bad9fc2e8580cc9ef6b48d510ba68f4823 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 24 Feb 2026 18:53:55 +0000 Subject: [PATCH] Add deployment plan: OVH server + WordPress Multisite for artisan clients 6-phase roadmap covering server setup, WP Multisite isolation, Kadence design, SEO, client templates, and DNS migration. https://claude.ai/code/session_01PzA98VhLMmsHpzs7gnLHGs --- PLAN.md | 274 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 274 insertions(+) create mode 100644 PLAN.md diff --git a/PLAN.md b/PLAN.md new file mode 100644 index 0000000..22f37fd --- /dev/null +++ b/PLAN.md @@ -0,0 +1,274 @@ +# Plan de déploiement HookLab — Sites Artisans + +--- + +## PHASE 1 — Serveur OVH `(toi + moi)` + +### 1.1 — Créer le VPS +- [ ] Commander VPS OVH (région Roubaix ou Gravelines) +- [ ] Choisir Ubuntu 24.04 LTS +- [ ] Noter l'IP publique + +### 1.2 — Sécuriser l'accès SSH +```bash +# Connexion initiale +ssh root@TON_IP + +# Créer un utilisateur admin +adduser hooklab +usermod -aG sudo hooklab + +# Désactiver le login root SSH +nano /etc/ssh/sshd_config +# → PermitRootLogin no +systemctl restart ssh +``` + +### 1.3 — Installer la stack LEMP +```bash +sudo apt update && sudo apt upgrade -y + +# Nginx +sudo apt install nginx -y + +# MariaDB (base de données) +sudo apt install mariadb-server -y +sudo mysql_secure_installation + +# PHP 8.2 + extensions WordPress +sudo apt install php8.2 php8.2-fpm php8.2-mysql php8.2-curl \ + php8.2-gd php8.2-mbstring php8.2-xml php8.2-zip php8.2-intl -y +``` + +### 1.4 — Installer Certbot (HTTPS gratuit) +```bash +sudo apt install certbot python3-certbot-nginx -y +``` + +### 1.5 — Configurer le pare-feu +```bash +sudo ufw allow OpenSSH +sudo ufw allow 'Nginx Full' +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. + +### 2.1 — Créer la base de données +```bash +sudo mysql -u root -p + +CREATE DATABASE hooklab_wp; +CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'MOT_DE_PASSE_FORT'; +GRANT ALL PRIVILEGES ON hooklab_wp.* TO 'wp_user'@'localhost'; +FLUSH PRIVILEGES; +EXIT; +``` + +### 2.2 — Télécharger WordPress +```bash +cd /var/www/ +sudo wget https://wordpress.org/latest.tar.gz +sudo tar -xzf latest.tar.gz +sudo mv wordpress hooklab +sudo chown -R www-data:www-data /var/www/hooklab +``` + +### 2.3 — Configurer Nginx pour le Multisite +```nginx +# /etc/nginx/sites-available/hooklab +server { + listen 80; + server_name hooklab.fr *.hooklab.fr; + root /var/www/hooklab; + index index.php; + + location / { + try_files $uri $uri/ /index.php?$args; + } + + location ~ \.php$ { + include snippets/fastcgi-php.conf; + fastcgi_pass unix:/var/run/php/php8.2-fpm.sock; + } + + # Multisite — sous-répertoires + if (!-e $request_filename) { + rewrite /wp-admin$ $scheme://$host$uri/ permanent; + rewrite ^(/[^/]+)?(/wp-.*) $2 last; + rewrite ^(/[^/]+)?(/.*\.php) $2 last; + } +} +``` + +### 2.4 — Activer le Multisite dans wp-config.php +```php +/* Multisite */ +define('WP_ALLOW_MULTISITE', true); +define('MULTISITE', true); +define('SUBDOMAIN_INSTALL', false); // sous-répertoires +define('DOMAIN_CURRENT_SITE', 'hooklab.fr'); +define('PATH_CURRENT_SITE', '/'); +define('SITE_ID_CURRENT_SITE', 1); +define('BLOG_ID_CURRENT_SITE', 1); +``` + +### 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*