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
This commit is contained in:
274
PLAN.md
Normal file
274
PLAN.md
Normal file
@@ -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*
|
||||
Reference in New Issue
Block a user