Vous créez votre site avec un assistant de programmation comme Claude Code ou Codex, ce que l'on appelle souvent le « vibe coding » : vous décrivez ce que vous voulez, l'intelligence artificielle écrit le code. Cet article explique comment la mettre en ligne sur votre hébergement SwissCenter, sans que vous ayez à taper vous-même la moindre commande : vous préparez deux ou trois réglages dans la console Apanel, vous donnez à votre IA une fiche de consignes toute prête, et c'est elle qui publie le site.
En bref : dans la console Apanel, choisissez la version de PHP, créez au besoin une base de données et copiez la Commande de connexion SSH. Demandez ensuite à votre IA d'enregistrer la fiche de consignes ci-dessous dans votre projet, collez dans Apanel la clé SSH qu'elle vous donne, puis demandez-lui de publier le site.
Prérequis
- Un hébergement web SwissCenter et l'accès à votre console Apanel.
- Claude Code ou Codex installé sur votre ordinateur : voir la documentation de Claude Code ou de Codex.
- Un dossier de projet sur votre ordinateur, ouvert dans votre IA : vide si vous partez de zéro, ou celui d'un site déjà commencé.
Ce qu'il faut savoir avant de commencer
- Nous recommandons PHP et MySQL. Une page PHP ne tourne que pendant qu'un visiteur la consulte ; une application Node.js ou Python reste en mémoire en permanence. Sur un hébergement mutualisé, PHP est plus simple à maintenir et consomme bien moins de ressources. La fiche de consignes oriente votre IA dans ce sens.
- Tout ce qui est publié dans le dossier de votre site peut être lu sur Internet. La fiche dit à votre IA quoi ne jamais envoyer (ses propres consignes, vos notes, vos archives) et où ranger les fichiers qui ne doivent pas être lus.
- Notre support couvre l'hébergement, pas le code écrit par l'IA. Voir Ce que comprend votre hébergement, et ce qui reste à votre charge.
Étape 1 : préparer la console Apanel (une seule fois)
Choisir la version de PHP
- Connectez-vous à votre console Apanel.
- Depuis le tableau de bord, cliquez sur le nom de votre domaine pour ouvrir la Gestion de l'hébergement.
- Dans la carte Technologies web, cliquez sur Configuration PHP.
- Dans Version de PHP, choisissez la dernière version, PHP 8.5 actuellement, puis cliquez sur Sauvegarder.

Le détail de cet écran : Modifier la version et la configuration PHP de votre site.
Créer une base de données (si votre site en a besoin)
Un site qui enregistre des données (comptes, messages, commandes) a besoin d'une base de données MySQL. Une simple vitrine peut s'en passer.
- Dans la Gestion de l'hébergement, carte Bases de données, cliquez sur MySQL, puis sur Ajouter.
- Saisissez un nom, puis, sous Utilisateur par défaut, un Mot de passe, et cliquez sur Sauvegarder.
- Notez le nom complet de la base (préfixe compris) et le mot de passe.

Le détail : Créer une base de données MySQL et son utilisateur.
Copier la commande de connexion SSH
Votre IA publie le site par une connexion sécurisée, SSH.
- Dans la Gestion de l'hébergement, carte Site web, cliquez sur Accès SSH.
- Copiez la Commande de connexion du bloc Service SSH, de la forme
ssh votresite@web24.swisscenter.com.

Étape 2 : donner les consignes à votre IA
-
Copiez la fiche ci-dessous en entier.
-
Dans votre IA, écrivez la phrase suivante en remplaçant les trois valeurs, puis collez la fiche à la suite :
« Enregistre la fiche ci-dessous dans un fichier CLAUDE.md dans ce dossier, et remplis la partie Valeurs de ce projet : connexion ssh votresite@web24.swisscenter.com, domaine votresite.ch, base de données votresite_demo (ou : aucune base). »
Avec Codex, écrivez AGENTS.md au lieu de CLAUDE.md : c'est le nom de fichier que Codex lit.
# Hébergement SwissCenter (Apanel) : consignes pour publier ce site
## Valeurs de ce projet (à remplir)
- Connexion SSH : <COMMANDE DE CONNEXION, par exemple ssh votresite@web24.swisscenter.com>
- Domaine (sans www) : <exemple.ch>
- Base MySQL : <nom_de_la_base>, utilisateur <nom_utilisateur>, hôte localhost, port 3306
- Dans la suite, DOMAINE désigne le domaine ci-dessus (le site est le dossier ~/DOMAINE/ du serveur) et CONNEXION ce qui suit « ssh » dans la connexion SSH.
- Le mot de passe MySQL est dans le fichier .env de ce projet (DB_PASSWORD). Ne me le demande pas, ne le recopie nulle part ailleurs, et lis-le tel quel : il peut contenir # ou $.
## Technologies
- Hébergement mutualisé : PHP et MySQL, en PHP simple. Aucune application qui tourne en permanence (ni serveur Node.js, ni Python) : une page PHP ne s'exécute que lorsqu'on la consulte. Ne choisis pas un framework qui exige un dossier public/ (Laravel, Symfony) sans me le proposer d'abord.
- La version de PHP est celle choisie dans Apanel pour ce domaine. En SSH, `php` et `composer` prennent la version du dossier courant : lance-les toujours depuis ~/DOMAINE/ (`cd ~/DOMAINE && php -v`). Si ce n'est pas la dernière version (PHP 8.5 actuellement), propose-moi d'abord de la changer dans Apanel (Gestion de l'hébergement, Configuration PHP) au lieu d'adapter le code ou les outils à une vieille version.
- Un front compilé (React, Vue, Astro, Vite) se construit sur ce poste (`npm run build`) et on publie le CONTENU du dossier produit (dist/ ou build/), pas le projet. S'il exige un serveur Node pour fonctionner (Next.js, rendu côté serveur), traite-le comme un projet Node.js.
- Projet Node.js ou Python existant : propose-moi de le réécrire en PHP. Si je refuse, renvoie-moi à https://support.swisscenter.com/faq/deployer-une-application-nodejs-sur-swisscenter-apanel-cloudlinux et ne lance rien sur le serveur.
- MySQL n'est pas joignable depuis ce poste : utilise le client `mysql` en SSH sur le serveur, ou un tunnel (`ssh -N -L 3307:127.0.0.1:3306 …`).
## Clé SSH
- Si la connexion SSH est refusée : crée une clé réservée à ce projet (`ssh-keygen -t ed25519 -N "" -f ~/.ssh/swisscenter_DOMAINE`), montre-moi uniquement la clé PUBLIQUE (le fichier .pub) et dis-moi de la coller dans Apanel : Gestion de l'hébergement, Accès SSH, Ajouter. Ensuite, utilise toujours cette clé (`-i`) et ajoute `-o StrictHostKeyChecking=accept-new` à la première connexion.
- L'hébergeur enregistre les commandes SSH : pas de commande lourde ou en boucle sur le serveur.
## Publier
- Destination : le contenu du site directement dans ~/DOMAINE/, pas dans un sous-dossier.
- Avant le premier envoi : liste ce que contient déjà ~/DOMAINE/ et montre-le-moi. Ne supprime et ne remplace aucun fichier qui ne vient pas de ce projet sans mon accord (y compris .htaccess). S'il y a swisscenter.php (la page d'attente SwissCenter), propose-moi de le supprimer : sinon elle reste affichée. Ne touche jamais à .well-known/, cgi-bin/ ni .ftpquota.
- Ne jamais envoyer (fichier .publish-exclude, une entrée par ligne, sans barre finale) : .publish-exclude, CLAUDE.md, AGENTS.md, *.md, .git, .env, node_modules, package*.json, *.zip, *.tar*, *.gz, *.tgz, *.7z, *.rar, *.sql, *.sqlite, *.db, *.log, *.bak.
- Envoi avec rsync, sans --delete :
`rsync -rlvz --exclude-from=.publish-exclude ./ CONNEXION:DOMAINE/`
(front compilé : `./dist/` à la place de `./`).
- Si rsync n'existe pas sur ce poste (Windows) : fais une archive datée hors du projet, envoie-la, décompresse-la, efface-la :
`tar -czf ../site-AAAAMMJJHHMM.tar.gz --exclude-from=.publish-exclude .` (front compilé : depuis dist/)
`scp ../site-AAAAMMJJHHMM.tar.gz CONNEXION:`
`ssh CONNEXION "tar -xzf site-AAAAMMJJHHMM.tar.gz -C ~/DOMAINE && rm site-AAAAMMJJHHMM.tar.gz"`
- Fichier .env : envoie-le à part, et seulement quand il change (`scp .env CONNEXION:DOMAINE/.env`). Le serveur refuse de le servir sur le web.
- Tout ce qui est dans ~/DOMAINE/ peut être lu sur le web. Les fichiers que le site écrit ou qui ne doivent pas être lus (données, compteurs, journaux, caches, base SQLite) vont dans ~/DOMAINE-donnees/, hors du site ; PHP peut y écrire.
- Composer : envoie composer.json et composer.lock, puis `cd ~/DOMAINE && composer install --no-dev` sur le serveur. Crée ensuite ~/DOMAINE/vendor/.htaccess contenant `Require all denied`.
- Après chaque envoi, vérifie : https://DOMAINE/ répond 200, https://DOMAINE/CLAUDE.md et /AGENTS.md répondent 404.
- Si le domaine ne pointe pas encore chez SwissCenter, demande-moi le nom de domaine temporaire affiché dans Apanel et teste avec lui.
Si vous avez créé une base de données, votre mot de passe MySQL ne va ni dans cette fiche ni dans la conversation. Demandez à votre IA : « Crée le fichier .env avec une ligne DB_PASSWORD vide et ouvre-le dans l'éditeur de texte. » Collez votre mot de passe juste après le signe = et enregistrez. Votre IA peut lire ce fichier sur votre ordinateur ; il est envoyé sur le serveur, qui refuse de l'afficher sur le web.
Étape 3 : autoriser votre IA à se connecter (clé SSH)
SSH fonctionne avec une clé plutôt qu'un mot de passe. Votre IA la crée, vous l'enregistrez dans Apanel.
- Demandez à votre IA : « Crée la clé SSH décrite dans la fiche et montre-moi la clé publique. » Elle vous affiche une longue ligne qui commence par
ssh-ed25519.
- Sur la page Accès SSH d'Apanel, cliquez sur Ajouter, collez cette ligne, cochez la case d'acceptation et cliquez sur Sauvegarder.

Ne collez jamais dans la console, ni ailleurs, la clé privée : seule la clé publique quitte votre ordinateur. Le détail : Se connecter à votre hébergement en SSH.
Étape 4 : demander à votre IA de publier
Selon votre situation, écrivez simplement :
- Vous partez de zéro : « Crée-moi un site pour … (décrivez votre activité), puis publie-le. »
- Votre site est fait avec React, Vue, Astro ou Vite : « Fabrique la version finale du site et publie-la. » En général, ces sites n'ont plus besoin de Node.js une fois en ligne ; si c'est le cas du vôtre, votre IA vous le dira.
- Votre site est une application Node.js ou Python : « Réécris ce site en PHP, puis publie-le. » Si vous préférez garder Node.js, voir Déployer une application Node.js et choisir sa version.
Avant le premier envoi, votre IA vous montre ce que contient déjà le dossier de votre site et vous demande votre accord avant de remplacer ou de supprimer quoi que ce soit, y compris la page d'attente SwissCenter. Lisez sa réponse : c'est à ce moment que vous évitez d'écraser un site existant.
Étape 5 : vérifier votre site
Ouvrez votre adresse dans le navigateur. Si votre nom de domaine ne pointe pas encore chez SwissCenter, utilisez le nom de domaine temporaire et donnez-le à votre IA : voir Consulter votre site avant de faire pointer les DNS.
Pour chaque modification, il suffit ensuite de dire à votre IA ce que vous voulez changer, puis « publie ».
Bon à savoir
- Gardez vos propres sauvegardes avant une grosse modification : voir Créer une archive téléchargeable de votre site.
- Les commandes passées en SSH sont enregistrées sur nos serveurs, comme pour toute connexion SSH chez SwissCenter.
- La clé SSH de votre IA se retire à tout moment dans Accès SSH, par exemple quand le projet est terminé.
En cas de problème
| Ce qui se passe |
Que faire |
| L'IA signale que la version de PHP est ancienne |
Changez-la dans Configuration PHP (étape 1), puis dites à votre IA « c'est fait ». |
| L'IA indique « Permission denied (publickey) » |
La clé publique n'est pas encore enregistrée dans Accès SSH, ou vient de l'être : vérifiez-la, patientez un instant et demandez à l'IA de réessayer. |
| L'IA vous demande votre mot de passe MySQL |
Ne le donnez pas dans la conversation : remplissez le fichier .env (étape 2) et dites-lui qu'il est prêt. |
| Le navigateur affiche toujours la page d'attente SwissCenter |
Demandez à votre IA de supprimer swisscenter.php du dossier du site, ou voir Remplacer la page d'attente SwissCenter par votre site. |
| Votre IA veut lancer un serveur Node.js |
Rappelez-lui la fiche de consignes, ou voir l'article Node.js cité à l'étape 4. |
Pour aller plus loin