Aller au contenu
VIGNEDEV

Tutoriel · Sauvegarde

Sauvegarder le code de son site sur GitHub, sans y laisser de secret

Par Bruno Vigné, fondateur de VIGNEDEV · Publié le

Pour sauvegarder le code d’un site sur GitHub, créez un dépôt en choisissant « Private », déclarez dans le fichier .gitignore tout ce qui contient un mot de passe ou une clé, puis envoyez le code. Si une clé part malgré tout, changez-la d’abord : effacer sa trace ne suffit pas.

Cette page fait partie du guide Création de site internet pour artisan.

GitHub garde chaque version du code de votre site : si votre ordinateur tombe en panne, ou si une modification casse tout, vous repartez d’une version qui marchait. Ce tutoriel concerne un site dont vous avez le code, ce qui n’est pas le cas d’un site fait sur une plateforme fermée.

Créer le dépôt, en privé

  1. En haut à droite de GitHub, cliquez sur le signe plus, puis « New repository ».
  2. Dans « Repository name », donnez un nom court : lettres, chiffres, tirets.
  3. À « Choose visibility », choisissez « Private » : c’est « Public » qui est proposé d’office.
  4. Cliquez sur « Create repository ». GitHub affiche ensuite les commandes pour y envoyer votre code.
L’écran « Create a new repository » de GitHub, avec le menu « Choose visibility » ouvert sur les choix Public et Private.
L’écran de création : « Public » est coché d’office, il faut choisir « Private » soi-même.

Écarter ce qui ne doit jamais partir

Un site a des clés : l’accès à sa base de données, à son service d’e-mails, à ses photos. Elles vivent en général dans un fichier nommé .env. Ce fichier ne doit jamais partir sur GitHub, même sur un dépôt privé : une clé dans un dépôt finit toujours par se recopier.

Le fichier .gitignore, à la racine du projet, dresse la liste de ce que Git doit ignorer. Écrivez-y .env avant le premier envoi.

Un extrait du fichier .gitignore de vigne.dev : les lignes .env et .env*.local, puis .vercel.
Le fichier .gitignore de vigne.dev : les fichiers de clés sont écartés dès le départ.

Le piège : un fichier déjà envoyé

Ajouter une ligne à .gitignore ne retire pas un fichier que Git suit déjà. GitHub le dit clairement : il faut d’abord cesser de le suivre, avec la commande git rm --cached suivie du nom du fichier, puis l’écrire dans .gitignore.

Et cela ne l’efface pas des versions précédentes. Si ce fichier contenait une clé, passez à la section suivante.

Si une clé est partie par erreur

  1. Changez la clé chez le service concerné. C’est la première chose à faire selon GitHub : une clé révoquée ne sert plus à personne.
  2. Mettez la nouvelle clé dans votre fichier .env et là où votre site la lit en ligne.
  3. Ensuite seulement, demandez-vous s’il faut nettoyer l’historique. C’est une opération lourde (l’outil git-filter-repo, puis un envoi forcé) qui change l’identifiant de chaque version, et les copies déjà faites ne sont pas nettoyées pour autant.

Deux filets de sécurité

GitHub propose une protection à l’envoi (« push protection ») : quand elle reconnaît une clé dans ce que vous envoyez, elle bloque l’envoi. Elle offre aussi de passer outre (« It’s a false positive », « I’ll fix it later ») : ne le faites que si vous êtes certain que ce n’est pas une vraie clé.

Chez nous, un second contrôle tourne sur le Mac avant même l’enregistrement : un outil nommé Gitleaks refuse tout enregistrement qui contient un secret. Un refus se lit et se corrige ; il ne se contourne que pour une fausse alerte vérifiée.

Le réflexe avant chaque envoi

Relisez ce qui va partir. La commande git status donne la liste des fichiers modifiés, et git diff montre les lignes changées. Ajoutez vos fichiers un par un plutôt que tout d’un coup : c’est ainsi qu’un fichier de clés reste à sa place.

Attention : si votre hébergeur est relié à GitHub, un envoi peut aussi mettre le site en ligne : c’est le cas de vigne.dev. Sauvegarder et publier sont alors le même clic, et cela mérite une relecture.

Questions fréquentes

Des réponses courtes et franches. S’il manque la vôtre, écrivez-nous.

Un dépôt privé suffit-il à protéger mes clés ?

Non. Le dépôt est fermé au public, mais toute personne invitée y a accès, et les copies se multiplient. Les clés restent hors du dépôt, dans le fichier .env.

GitHub remplace-t-il une sauvegarde de mon site ?

Pour le code, oui. Pas pour le reste : les textes et les photos saisis dans une interface d’administration vivent ailleurs, dans la base de données et l’espace des photos, qui ont leur propre sauvegarde.

Faut-il un abonnement payant pour un dépôt privé ?

Les conditions évoluent : lisez la page des offres de GitHub avant de vous décider. Pour un site seul, regardez ce que comprend l’offre gratuite.

Puis-je retirer un dépôt créé par erreur ?

Oui, depuis les réglages du dépôt sur le site de GitHub, dans la zone « Danger Zone ». Chez nous, cette suppression se fait toujours à la main, jamais par une commande.

Parlons de votre activité

Décrivez-nous votre métier en quelques lignes. Premier échange gratuit et sans engagement, par téléphone ou en visio. Nous vous dirons franchement si un site vous servira.

Demander un devis

À lire ensuite

Sources