Installer WP Registry chez Studio Champ Gauche
Le kit cPanel contient le portail WP Registry, le serveur PHP/MySQL, les interfaces de publication et de modération, et le modèle du plugin WordPress à configurer avec la clé publique créée sur votre serveur. Le catalogue sera importé sur votre hébergement. Aucune clé privée ni base de données de production n'est incluse.
Utiliser wp-registry-cpanel.zip et son guide d'installation cPanel. Il fournit les deux dossiers publics frères sous public_html, l'application et son stockage privé à l'extérieur. Le présent document complète ce guide. L'archive wp-registry-server.zip est une archive source de développement et ne remplace pas le kit complet. Les comptes éditeurs et la modération sont détaillés dans PUBLISHERS.fr.md.
Domaines
Créer wpregistry.studiochampgauche.com et area.wpregistry.studiochampgauche.com dans le même compte cPanel dédié. Leurs enregistrements DNS doivent pointer vers le serveur web et leurs certificats TLS doivent couvrir les deux noms exacts.
Le portail fourni sert le catalogue public, les fiches de plugins et thèmes, les versions WordPress disponibles et le téléchargement du plugin de connexion. Il partage la configuration et la base du registre et mène les éditeurs à leur espace de publication.
Les adresses du système :
| Adresse | Usage |
|---|---|
https://wpregistry.studiochampgauche.com/ | Portail WP Registry |
https://wpregistry.studiochampgauche.com/?view=catalogue | Catalogue public des plugins et thèmes |
https://wpregistry.studiochampgauche.com/ | Télécharger et installer le plugin de connexion |
https://area.wpregistry.studiochampgauche.com/v1/… | API du catalogue et des mises à jour |
https://area.wpregistry.studiochampgauche.com/packages/… | Archives vérifiées |
https://area.wpregistry.studiochampgauche.com/publish/ | Inscription et publication des éditeurs |
https://area.wpregistry.studiochampgauche.com/moderate/ | Contrôle et modération opérateur |
https://area.wpregistry.studiochampgauche.com/manage/ | Éditeurs configurés manuellement |
Installation du serveur
- Extraire
wp-registry-cpanel.zipdans/home/ACCOUNT/. RemplacerACCOUNTpar le compte cPanel réel dans tous les exemples. - Définir
/home/ACCOUNT/public_html/wpregistry.studiochampgauche.comcomme racine du portail et/home/ACCOUNT/public_html/area.wpregistry.studiochampgauche.comcomme racine du registre. Les deux dossiers sont frères. - Activer une version PHP maintenue avec
curl,pdo_mysql,sodium,zip,mbstring,jsonet Argon2id, pour PHP-FPM et pour la ligne de commande. - Vérifier les permissions
0700du dossier fourni/home/ACCOUNT/registry-private. Y copierconfig.example.phpsous le nomconfig.php, avec les permissions0600. - Créer une base MySQL dédiée et deux utilisateurs : un utilisateur de publication, et un utilisateur API en lecture avec accès limité à la table de limitation des requêtes. Le détail des privilèges figure dans README.md. Renseigner leurs accès directement dans le fichier privé.
- Activer HTTPS sur les deux domaines. Dans le dossier public du registre, protéger
manage/etmoderate/avec Directory Privacy de cPanel. La configuration est chargée automatiquement depuis le dossier frèreregistry-private/config.php.UR_CONFIGreste un remplacement facultatif défini uniquement par l'opérateur.
Puis, dans le terminal cPanel, avec le même PHP et ses extensions :
export UR_CONFIG=/home/ACCOUNT/registry-private/config.php
php /home/ACCOUNT/wp-registry-server/cli.php init
php /home/ACCOUNT/wp-registry-server/cli.php publishers-init
php /home/ACCOUNT/wp-registry-server/cli.php status
init crée les tables et la clé de signature. Conserver une sauvegarde privée de la base, des archives et de cette clé. La clé privée reste sur le serveur ; seule la clé publique sera incluse dans le plugin distribué.
Constituer le catalogue complet
php /home/ACCOUNT/wp-registry-server/cli.php import-catalog --type=plugin --pages=10
php /home/ACCOUNT/wp-registry-server/cli.php import-catalog --type=theme --pages=10
php /home/ACCOUNT/wp-registry-server/cli.php sync-packages --limit=10
php /home/ACCOUNT/wp-registry-server/cli.php status
Répéter les trois commandes d'import par tâches cron. Elles reprennent leur progression ; un verrou empêche les écritures simultanées. Le premier import exige du temps, de l'espace disque et du trafic réseau. Les compteurs distinguent les fiches découvertes des archives réellement disponibles. Attendre mirror_complete: true pour les deux catalogues avant d'annoncer un miroir complet. Une archive rejetée reste signalée et n'est pas comptée comme disponible.
Après une génération terminée, --restart=1 démarre un nouveau parcours. Ne pas mettre ce drapeau dans chaque exécution fréquente. Les détails de planification et de reprise figurent dans le guide technique.
Le miroir reprend les versions courantes des plugins et thèmes publics. Les avis, captures, classements, archives historiques et projets fermés ne sont pas importés. Les clients installent des archives déjà stockées sur votre serveur.
Publier les plugins et thèmes
Les éditeurs externes peuvent s'inscrire librement dans /publish/, vérifier leur courriel et publier leurs propres projets. La reprise d'un projet déjà importé nécessite une preuve de propriété contrôlée par l'opérateur. Le contrôle des versions publiées, les comparatifs et les correctifs opérateur se trouvent dans /moderate/. Voir le guide éditeurs pour ce parcours.
Pour conserver en parallèle le parcours historique réservé aux éditeurs configurés manuellement :
Dans le fichier privé, attribuer au nom d'utilisateur Directory Privacy les projets qu'il peut publier. Exemple d'autorisations, sans mot de passe :
'publishers' => [
'studio' => [
'packages' => ['plugin:universal-smtp', 'plugin:universal-legal-pages', 'plugin:wp-registry', 'theme:reactwp'],
],
],
Ajouter le slug exact pour chaque nouveau projet, puis ouvrir /manage/. L'interface permet de téléverser une archive ZIP, renseigner sa fiche, publier une nouvelle version, sélectionner une version déjà publiée ou retirer une version. Le plugin doit avoir sa propre racine dans le ZIP, un fichier principal et des en-têtes cohérents ; un thème doit contenir son style.css. L'interface vérifie ces informations avant publication.
Pour modifier du code déjà publié, augmenter sa version et publier une nouvelle archive. Une version publiée est immuable. Sélectionner une ancienne version ne force pas la rétrogradation des sites. Retirer une version empêche de nouvelles installations par WP Registry sans désinstaller le code déjà présent.
Un éditeur de /manage/ ne peut pas remplacer librement un projet importé de WordPress.org du même slug. Les identités d'éditeur et le chemin exact du plugin protègent les mises à jour des installations existantes. Le guide technique décrit l'adoption explicite des plugins locaux qui utilisent Update URI: false et le parcours de revendication contrôlé des comptes publics.
Pour retirer une version importée devenue indésirable, l'opérateur du serveur dispose d'une commande dédiée :
php /home/ACCOUNT/wp-registry-server/cli.php withdraw-imported --type=plugin --slug=sample --version=1.0.0
Ce retrait concerne cette version précise. Il ne transfère pas son namespace à un éditeur local et ne permet pas de remplacer son code. La même version reste refusée lors des imports suivants ; une nouvelle version amont peut être importée séparément. Les éditeurs de /manage/ conservent uniquement leurs droits sur leurs propres projets locaux. Les archives déjà téléchargées restent publiques, mais le client refuse une nouvelle installation après le retrait.
Connecter les sites WordPress
Créer le ZIP client depuis le serveur initialisé :
php /home/ACCOUNT/wp-registry-server/cli.php build-client --source=/home/ACCOUNT/wp-registry-server/client-template --output=/home/ACCOUNT/registry-private/wp-registry-0.3.0.zip
php /home/ACCOUNT/wp-registry-server/cli.php publish --metadata=/home/ACCOUNT/wp-registry-server/client-release.json --archive=/home/ACCOUNT/registry-private/wp-registry-0.3.0.zip
Ouvrir https://wpregistry.studiochampgauche.com/ pour télécharger cette archive, puis l'installer et l'activer dans WordPress. Elle contient déjà l'adresse du registre et sa clé publique. Le portail vérifie cette identité avant téléchargement et donne priorité à une version publiée disponible du client. En multisite, utiliser l'activation réseau. Le client nécessite WordPress 6.0+, PHP 7.4+, Sodium et ZIP.
Les écrans habituels de catalogue et de mises à jour des extensions et thèmes utilisent alors votre registre. En cas d'indisponibilité, le client affiche une erreur ; il ne revient pas silencieusement aux téléchargements WordPress.org. La désactivation restaure les services natifs. Les mises à jour des mu-plugins et les sources de développement ReactWP ne font pas partie de ce mécanisme.
Cœur WordPress
WP Registry laisse les mises à jour du cœur, ses traductions et ses sommes de contrôle à WordPress. Le changement de nom et d'adresse nécessite de remplacer le plugin sur les sites déjà connectés ; consulter le guide de migration.
Vérifications avant ouverture
Sur le compte réel, vérifier le certificat, le refus d'un accès anonyme à /manage/, la propagation de l'identité Directory Privacy, les droits des fichiers privés et l'exécution des cron. Tester ensuite un site de préproduction : installation du client, recherche, installation et mise à jour d'un plugin/thème, puis vérifier que WordPress recherche normalement ses propres mises à jour.
Les contrôles locaux couvrent la publication, les signatures, le catalogue et le téléchargement du client. Le déploiement cPanel et l'import complet restent à vérifier sur l'hébergement réel ; le guide de mise à jour décrit la transition des sites déjà connectés.