{"id":7026,"date":"2026-01-11T08:00:00","date_gmt":"2026-01-11T07:00:00","guid":{"rendered":"https:\/\/olivier.hoarau.org\/?p=7026"},"modified":"2026-01-18T16:53:38","modified_gmt":"2026-01-18T15:53:38","slug":"synchroniser-son-site-web-avec-git-avec-infomaniak","status":"publish","type":"post","link":"https:\/\/olivier.hoarau.org\/?p=7026","title":{"rendered":"Synchroniser son site web avec Git avec Infomaniak"},"content":{"rendered":"\n<p>Dans un <a href=\"https:\/\/olivier.hoarau.org\/?p=6965\">post pr\u00e9c\u00e9dent<\/a> j&rsquo;avais montr\u00e9 comment synchroniser son site web avec <strong>Git<\/strong> et <strong>cPanel<\/strong> avec <a href=\"https:\/\/www.scaleway.com\/fr\/\">Scaleway<\/a>, maintenant je vais montrer l&rsquo;\u00e9quivalent avec <a href=\"https:\/\/www.infomaniak.com\/fr\">Infomaniak<\/a>.<\/p>\n\n\n\n<p><strong>Infomaniak<\/strong> ne dispose pas de <a href=\"https:\/\/www.cpanel.net\/\">cPanel<\/a>, mais on peut y arriver quand m\u00eame via l&rsquo;interface maison. La premi\u00e8re chose \u00e0 faire est de cr\u00e9er sur le PC local une cl\u00e9 <strong>Ed25519<\/strong> avec la commande <strong>ssh-keygen -t ed25519<\/strong>. Sur la console <strong>Infomaniak<\/strong> on veillera \u00e0 ce que <strong>SSH<\/strong> soit bien activ\u00e9 \u00e0 partir du m\u00eame login que pour la connexion <strong>FTP<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/git-infomaniak-ssh1-1.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"474\" height=\"222\" src=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/git-infomaniak-ssh1-1.jpg?resize=474%2C222&#038;ssl=1\" alt=\"\" class=\"wp-image-7028\" srcset=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/git-infomaniak-ssh1-1.jpg?resize=1024%2C479&amp;ssl=1 1024w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/git-infomaniak-ssh1-1.jpg?resize=300%2C140&amp;ssl=1 300w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/git-infomaniak-ssh1-1.jpg?resize=768%2C359&amp;ssl=1 768w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/git-infomaniak-ssh1-1.jpg?resize=1536%2C718&amp;ssl=1 1536w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/git-infomaniak-ssh1-1.jpg?w=1853&amp;ssl=1 1853w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/git-infomaniak-ssh1-1.jpg?w=948&amp;ssl=1 948w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/git-infomaniak-ssh1-1.jpg?w=1422&amp;ssl=1 1422w\" sizes=\"auto, (max-width: 474px) 100vw, 474px\" \/><\/a><\/figure>\n\n\n\n<p> On pourra se connecter avec l&rsquo;onglet <strong>Console SSH<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/git-infomaniak-ssh2.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"474\" height=\"221\" src=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/git-infomaniak-ssh2.jpg?resize=474%2C221&#038;ssl=1\" alt=\"\" class=\"wp-image-7029\" srcset=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/git-infomaniak-ssh2.jpg?resize=1024%2C477&amp;ssl=1 1024w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/git-infomaniak-ssh2.jpg?resize=300%2C140&amp;ssl=1 300w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/git-infomaniak-ssh2.jpg?resize=768%2C358&amp;ssl=1 768w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/git-infomaniak-ssh2.jpg?resize=1536%2C716&amp;ssl=1 1536w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/git-infomaniak-ssh2.jpg?w=1855&amp;ssl=1 1855w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/git-infomaniak-ssh2.jpg?w=948&amp;ssl=1 948w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/git-infomaniak-ssh2.jpg?w=1422&amp;ssl=1 1422w\" sizes=\"auto, (max-width: 474px) 100vw, 474px\" \/><\/a><\/figure>\n\n\n\n<p> On pourra \u00e9galement se connecter \u00e0 distance en ligne de commande (avec les indications donn\u00e9es dans le premier \u00e9cran ci-dessus) :<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">ssh login@XXXXX.ftp.infomaniak.com<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<!--more-->\n\n\n\n<ul class=\"wp-block-list\">\n<li><\/li>\n<\/ul>\n\n\n\n<p>Dans le r\u00e9pertoire distant <strong>.ssh<\/strong>, on cr\u00e9era un fichier a<strong>uthorized_keys<\/strong> contenant la cl\u00e9 publique <strong>Ed25519<\/strong> cr\u00e9\u00e9 pr\u00e9c\u00e9demment localement. On doit les droits 600 \u00e0 ce fichier avec <strong>chmod<\/strong>. Toujours dans le shell distant, on va cr\u00e9er le d\u00e9p\u00f4t <strong>Git<\/strong> avec les commandes suivantes :<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">uidXXXXXX@YYYYYYYY:~$ cd<br\/>uidXXXXXX@YYYYYYYY:~$ ls -l<br\/>total 20<br\/>drwxr-sr-x 2 root      gidXXXXXX    10 Oct 25 19:20 backups<br\/>drwxr-sr-x 2 vector    vector     4096 Jan  2 00:00 ik-logs<br\/>drwxrwsr-x 4 uidXXXXXX gidXXXXXX    62 Oct 30 19:51 sites<br\/>drwxrwsrwt 2 uidXXXXXX gidXXXXXX 12288 Jan  2 16:21 tmp<br\/>uidXXXXXX@YYYYYYYY:~$ mkdir git_depot<br\/>uidXXXXXX@YYYYYYYY:~$ cd git_depot\/<br\/>uidXXXXXX@YYYYYYYY:~\/git_depot$ git init --bare hoarau.org.git<br\/>hint: Using &#039;master&#039; as the name for the initial branch. This default branch name<br\/>hint: is subject to change. To configure the initial branch name to use in all<br\/>hint: of your new repositories, which will suppress this warning, call:<br\/>hint: <br\/>hint:   git config --global init.defaultBranch &lt;name&gt;<br\/>hint: <br\/>hint: Names commonly chosen instead of &#039;master&#039; are &#039;main&#039;, &#039;trunk&#039; and<br\/>hint: &#039;development&#039;. The just-created branch can be renamed via this command:<br\/>hint: <br\/>hint:   git branch -m &lt;name&gt;<br\/>Initialized empty Git repository in \/home\/clients\/XXXXXX\/git_depot\/hoarau.org.git\/<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p><br>Localement on va cr\u00e9er le d\u00e9p\u00f4t <strong>Git<\/strong> de r\u00e9f\u00e9rence au niveau du r\u00e9pertoire contenant les fichiers du site :<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">$ cd \/ultra\/data\/homepage\/www.hoarau.org\/<br\/>$ git init<br\/>D\u00e9p\u00f4t Git vide initialis\u00e9 dans \/ultra\/data\/homepage\/www.hoarau.org\/.git\/<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>On va maintenant le lier au d\u00e9p\u00f4t distant :<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">git remote add origin ssh:\/\/login@XXXXXX.ftp.infomaniak.com:\/home\/clients\/XXXXXXXX\/git_depot\/hoarau.org.git<br\/>git add .<br\/>git commit -a -m &quot;Commit initial&quot;<br\/><br\/>git branch -M master<br\/>git push --set-upstream origin master<br\/>Enter passphrase for key &#039;\/home\/olivier\/.ssh\/id_ed25519&#039;: <br\/>X11 forwarding request failed on channel 0<br\/>\u00c9num\u00e9ration des objets: 3159, fait.<br\/>D\u00e9compte des objets: 100% (3159\/3159), fait.<br\/>Compression par delta en utilisant jusqu&#039;\u00e0 4 fils d&#039;ex\u00e9cution<br\/>Compression des objets: 100% (3152\/3152), fait.<br\/>\u00c9criture des objets: 100% (3159\/3159), 581.67 Mio | 13.38 Mio\/s, fait.<br\/>Total 3159 (delta 95), r\u00e9utilis\u00e9s 0 (delta 0), r\u00e9utilis\u00e9s du paquet 0 (depuis 0)<br\/>remote: Resolving deltas: 100% (95\/95), done.<br\/>To ssh:\/\/XXXXXX.ftp.infomaniak.com:\/home\/clients\/XXXXXX\/git_depot\/hoarau.org.git<br\/> * [new branch]      master -&gt; master<br\/>la branche &#039;master&#039; est param\u00e9tr\u00e9e pour suivre &#039;origin\/master&#039;.<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>On donnera le mot de passe de la cl\u00e9 <strong>Ed25519<\/strong> locale. Pour le clonage initial du site on tapera dans le shell distant :<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">cd<br\/>cd sites<br\/>rm -Rf hoarau.org<br\/>git clone \/home\/clients\/XXXXXX\/git_depot\/hoarau.org.git hoarau.org\/<br\/>Cloning into &#039;hoarau.org&#039;...<br\/>done.<br\/>Updating files: 100% (3072\/3072), done.<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>Maintenant pour une mise \u00e0 jour du site, on travaillera sur les fichiers h\u00e9berg\u00e9s localement. Le travail termin\u00e9, on tapera localement (avec un exemple avec 3 fichiers modifi\u00e9s) :<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">git add .<br\/>git commit -m &quot;Rajout carnet de session windsurf 2026&quot;<br\/>[master 8e2756c] Rajout carnet de session windsurf 2026<br\/> 3 files changed, 353 insertions( ), 204 deletions(-)<br\/> create mode 100644 funboard\/carnet-session26.htm<br\/><br\/>git push<br\/>Enter passphrase for key &#039;\/home\/olivier\/.ssh\/id_ed25519&#039;: <br\/>X11 forwarding request failed on channel 0<br\/>\u00c9num\u00e9ration des objets: 10, fait.<br\/>D\u00e9compte des objets: 100% (10\/10), fait.<br\/>Compression par delta en utilisant jusqu&#039;\u00e0 4 fils d&#039;ex\u00e9cution<br\/>Compression des objets: 100% (6\/6), fait.<br\/>\u00c9criture des objets: 100% (6\/6), 3.95 Kio | 505.00 Kio\/s, fait.<br\/>Total 6 (delta 4), r\u00e9utilis\u00e9s 0 (delta 0), r\u00e9utilis\u00e9s du paquet 0 (depuis 0)<br\/>To ssh:\/\/XXXXXX.ftp.infomaniak.com:\/home\/clients\/XXXXXXX\/git_depot\/hoarau.org.git<br\/>   d6e7c30..8e2756c  master -&gt; master<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>C&rsquo;est toujours le mot de passe de la cl\u00e9 <strong>Ed25519<\/strong> qu&rsquo;il faut donner. Ce n&rsquo;est pas fini, maintenant il faut synchroniser avec les pages visibles sur internet, on tapera :<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">cd<br\/>mkdir deploy_tmp<br\/>cd deploy_tmp<br\/>git clone \/home\/clients\/XXXXXX\/git_depot\/hoarau.org.git .<br\/>rsync -a --delete .\/ ..\/sites\/hoarau.org<br\/>cd<br\/>rm -rf deploy_tmp<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>L&rsquo;avantage de passer par un r\u00e9pertoire interm\u00e9diaire est que \u00e7a ne provoque pas d&rsquo;interruption de service et la commande <strong>rsync<\/strong> ne copiera que les fichiers mis \u00e0 jour, l&rsquo;option <strong>&#8211;delete <\/strong>permet de supprimer les fichiers du site qui ont disparu du d\u00e9p\u00f4t <strong>Git<\/strong>. Avantage d&rsquo;<strong>Infomaniak<\/strong> par rapport \u00e0 <strong>Scaleway<\/strong>, on dispose de la commande <strong>rsync<\/strong> qui simplifie grandement la synchronisation.<\/p>\n\n\n\n<p>Maintenant on pourra cr\u00e9er un script bash <strong>deploy<\/strong> sur le r\u00e9pertoire distant en cr\u00e9ant pr\u00e9alablement le r\u00e9pertoire <strong>bin<\/strong> \u00e0 la racine. Le fichier contiendra :<br><\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">#\/bin\/bash<br\/>cd<br\/># 1. Nettoyer et cr\u00e9er le dossier temporaire<br\/>rm -rf deploy_tmp<br\/>mkdir -p deploy_tmp<br\/># 2. Clonage vers le dossier temporaire<br\/>cd deploy_tmp<br\/>git clone \/home\/clients\/XXXXXXXX\/git_depot\/hoarau.org.git .<br\/># 3. Synchroniser avec le dossier sites<br\/>rsync -a --delete .\/ ..\/sites\/hoarau.org<br\/># 5. Nettoyage final du temporaire<br\/>cd<br\/>rm -rf deploy_tmp<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>On le rend ensuite ex\u00e9cutable avec un <strong>chmod<\/strong> et on l&rsquo;appellera en se connectant en tapant <strong>bin\/deploy<\/strong> au shell.<\/p>\n\n\n\n<p>Quelques pages qui ont pu m&rsquo;\u00eatre utiles pour mettre en place cette synchronisation via <strong>Git<\/strong> :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Se connecter une cl\u00e9 <strong>SSH<\/strong> <a href=\"https:\/\/www.infomaniak.com\/fr\/support\/faq\/2054\/se-connecter-avec-cle-ssh\">https:\/\/www.infomaniak.com\/fr\/support\/faq\/2054\/se-connecter-avec-cle-ssh<\/a><\/li>\n\n\n\n<li>Se connecter en <strong>SSH<\/strong> et utiliser des commandes en ligne <a href=\"https:\/\/www.infomaniak.com\/fr\/support\/faq\/1941\/se-connecter-en-ssh-et-utiliser-des-commandes-en-ligne\">https:\/\/www.infomaniak.com\/fr\/support\/faq\/1941\/se-connecter-en-ssh-et-utiliser-des-commandes-en-ligne<\/a><\/li>\n\n\n\n<li>Utiliser <strong>Git<\/strong> et <strong>Github<\/strong> avec un h\u00e9bergement web h<a href=\"ttps:\/\/www.infomaniak.com\/fr\/support\/faq\/2463\/utiliser-git-et-github-avec-un-hebergement-web\">ttps:\/\/www.infomaniak.com\/fr\/support\/faq\/2463\/utiliser-git-et-github-avec-un-hebergement-web<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Dans un post pr\u00e9c\u00e9dent j&rsquo;avais montr\u00e9 comment synchroniser son site web avec Git et cPanel avec Scaleway, maintenant je vais montrer l&rsquo;\u00e9quivalent avec Infomaniak. Infomaniak ne dispose pas de cPanel, mais on peut y arriver quand m\u00eame via l&rsquo;interface maison. La premi\u00e8re chose \u00e0 faire est de cr\u00e9er sur le PC local une cl\u00e9 Ed25519 &hellip; <a href=\"https:\/\/olivier.hoarau.org\/?p=7026\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Synchroniser son site web avec Git avec Infomaniak<\/span>  <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_share_on_mastodon":"0"},"categories":[5,13],"tags":[111],"class_list":["post-7026","post","type-post","status-publish","format-standard","hentry","category-logiciels-libres","category-vie-de-ma-page-perso","tag-infomaniak"],"share_on_mastodon":{"url":"https:\/\/mastodon.social\/@funix\/115875173643731151","error":""},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/peOjJ-1Pk","jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/posts\/7026","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7026"}],"version-history":[{"count":6,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/posts\/7026\/revisions"}],"predecessor-version":[{"id":7048,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/posts\/7026\/revisions\/7048"}],"wp:attachment":[{"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7026"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7026"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7026"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}