<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="https://desktop.cecil.app/fr/xsl/atom.xsl" media="all"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
  <id>https://desktop.cecil.app/fr/docs/publishing/</id>
  <title>Cecil Desktop - Publication</title>
  <subtitle><![CDATA[Gérez, buildez, prévisualisez et publiez vos sites statiques Cecil depuis une application desktop native, sans terminal.]]></subtitle>
  <link href="https://desktop.cecil.app/fr/docs/publishing/atom.xml" rel="self" type="application/atom+xml" />
  <link href="https://desktop.cecil.app/fr/docs/publishing/" rel="alternate" type="text/html" />
  <updated>2026-11-09T10:54:07+00:00</updated>
  <author>
    <name>Cecil</name>
    <uri>https://cecil.app</uri>
  </author>
  <entry xml:lang="fr">
    <id>https://desktop.cecil.app/fr/docs/publishing/netlify/</id>
    <title>Netlify</title>
    <published>2026-11-09T10:53:41+00:00</published>
    <link href="https://desktop.cecil.app/fr/docs/publishing/netlify/" rel="alternate" type="text/html" />
    <content type="html">
      <![CDATA[<h1>Netlify</h1>
<h2 id="jeton">Jeton<a class="heading-anchor" href="#jeton" aria-hidden="true" tabindex="-1"></a></h2>
<p>Netlify utilise un <strong>personal access token</strong> : dans Netlify, ouvrez <strong>User settings › Applications › Personal access tokens</strong> (le lien <strong>Créer un jeton</strong> du formulaire ouvre cette page), et créez un nouveau jeton.</p>
<p>Le compte est affiché avec l'e-mail de votre utilisateur Netlify.</p>
<h2 id="reglages-de-la-cible">Réglages de la cible<a class="heading-anchor" href="#reglages-de-la-cible" aria-hidden="true" tabindex="-1"></a></h2>
<table>
<thead>
<tr>
<th>Champ</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Site</strong></td>
<td>Le nom ou l'ID d'un site de votre compte.</td>
</tr>
</tbody>
</table>
<p>Si aucun site de votre compte ne porte ce nom, un nouveau site est créé avec ce nom à la première publication, à l'adresse <code translate="no">https://&lt;nom&gt;.netlify.app/</code>. Le nom doit être unique sur tout Netlify : s'il est déjà pris, choisissez-en un autre.</p>
<h2 id="publication">Publication<a class="heading-anchor" href="#publication" aria-hidden="true" tabindex="-1"></a></h2>
<p>Netlify indique les fichiers qu'il n'a pas encore : seuls ceux-là sont envoyés. Cecil Desktop attend ensuite que Netlify traite le déploiement (jusqu'à 5 minutes), et affiche l'URL du déploiement.</p>
<aside class="note note-tip"><p>Un site créé par Cecil Desktop est un site Netlify normal : vous pouvez régler son domaine personnalisé, ses redirections ou ses formulaires dans Netlify.</p></aside>]]>
    </content>
  </entry>
  <entry xml:lang="fr">
    <id>https://desktop.cecil.app/fr/docs/publishing/vercel/</id>
    <title>Vercel</title>
    <published>2026-11-09T10:53:41+00:00</published>
    <link href="https://desktop.cecil.app/fr/docs/publishing/vercel/" rel="alternate" type="text/html" />
    <content type="html">
      <![CDATA[<h1>Vercel</h1>
<h2 id="jeton">Jeton<a class="heading-anchor" href="#jeton" aria-hidden="true" tabindex="-1"></a></h2>
<p>Dans Vercel, ouvrez <strong>Account settings › Tokens</strong> (le lien <strong>Créer un jeton</strong> du formulaire ouvre cette page), et créez un jeton avec accès à l'équipe du projet.</p>
<p>Le compte est affiché avec l'e-mail de votre utilisateur Vercel.</p>
<h2 id="reglages-de-la-cible">Réglages de la cible<a class="heading-anchor" href="#reglages-de-la-cible" aria-hidden="true" tabindex="-1"></a></h2>
<table>
<thead>
<tr>
<th>Champ</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Projet</strong></td>
<td>Le nom du projet Vercel.</td>
</tr>
<tr>
<td><strong>Équipe</strong></td>
<td>Facultatif : l'ID (<code translate="no">team_…</code>) ou le slug de l'équipe, pour un projet d'équipe.</td>
</tr>
</tbody>
</table>
<p>À l'enregistrement de la cible, seul l'accès au compte (ou à l'équipe) est vérifié : le projet est créé à la première publication s'il n'existe pas.</p>
<h2 id="publication">Publication<a class="heading-anchor" href="#publication" aria-hidden="true" tabindex="-1"></a></h2>
<p>Le site est déployé en production, comme un site statique : Vercel ne lance aucune commande de build ou d'installation, les fichiers buildés par Cecil sont publiés tels quels. Seuls les fichiers que Vercel n'a pas encore sont envoyés, puis Cecil Desktop attend le déploiement (jusqu'à 5 minutes) et affiche l'URL du projet.</p>]]>
    </content>
  </entry>
  <entry xml:lang="fr">
    <id>https://desktop.cecil.app/fr/docs/publishing/github-pages/</id>
    <title>GitHub Pages</title>
    <published>2026-11-09T10:53:41+00:00</published>
    <link href="https://desktop.cecil.app/fr/docs/publishing/github-pages/" rel="alternate" type="text/html" />
    <content type="html">
      <![CDATA[<h1>GitHub Pages</h1>
<h2 id="jeton">Jeton<a class="heading-anchor" href="#jeton" aria-hidden="true" tabindex="-1"></a></h2>
<p>GitHub Pages utilise un <strong>fine-grained token</strong> : dans GitHub, ouvrez <strong>Settings › Developer settings › Personal access tokens › Fine-grained tokens</strong> (le lien <strong>Créer un jeton</strong> du formulaire ouvre cette page), puis :</p>
<ol>
<li>sous <strong>Repository access</strong>, choisissez <strong>Only select repositories</strong> et sélectionnez le dépôt du site ;</li>
<li>sous <strong>Permissions</strong>, donnez l'accès <strong>Read and write</strong> à <strong>Contents</strong> et <strong>Pages</strong>.</li>
</ol>
<p>Le compte est affiché avec votre identifiant GitHub.</p>
<h2 id="reglages-de-la-cible">Réglages de la cible<a class="heading-anchor" href="#reglages-de-la-cible" aria-hidden="true" tabindex="-1"></a></h2>
<table>
<thead>
<tr>
<th>Champ</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Dépôt</strong></td>
<td>Le dépôt, sous la forme <code translate="no">propriétaire/dépôt</code>.</td>
</tr>
<tr>
<td><strong>Branche</strong></td>
<td>La branche publiée : <code translate="no">gh-pages</code> par défaut.</td>
</tr>
<tr>
<td><strong>Domaine personnalisé</strong></td>
<td>Facultatif : par ex. <code translate="no">www.example.com</code>.</td>
</tr>
</tbody>
</table>
<p>À l'enregistrement de la cible, Cecil Desktop vérifie que le jeton peut écrire dans le dépôt.</p>
<h2 id="publication">Publication<a class="heading-anchor" href="#publication" aria-hidden="true" tabindex="-1"></a></h2>
<p>Chaque publication remplace le contenu de la branche par le site buildé, en un seul commit (<em>Publish with Cecil Desktop</em>) :</p>
<ul>
<li>la branche est créée si elle n'existe pas ;</li>
<li>un fichier <code translate="no">.nojekyll</code> est ajouté, pour que GitHub ne traite pas le site avec Jekyll ;</li>
<li>un fichier <code translate="no">CNAME</code> est ajouté si vous indiquez un domaine personnalisé ;</li>
<li>GitHub Pages est activé sur la branche si besoin, ou basculé sur elle s'il publiait une autre branche.</li>
</ul>
<p>Seuls les fichiers que GitHub n'a pas encore sont envoyés, et les fichiers retirés du site sont retirés de la branche. Si rien n'a changé, aucun commit n'est fait.</p>
<aside class="note note-warning"><p>La branche publiée est écrasée à chaque publication : n'utilisez pas la branche de vos sources (par ex. <code translate="no">main</code>), gardez une branche dédiée comme <code translate="no">gh-pages</code>.</p></aside>
<aside class="note note-tip"><p>À la création d'un site, Cecil Desktop peut aussi ajouter un workflow GitHub Actions qui le builde et le déploie sur GitHub Pages à chaque push : une alternative à la publication depuis l'application, si votre site est dans un dépôt GitHub.</p></aside>]]>
    </content>
  </entry>
  <entry xml:lang="fr">
    <id>https://desktop.cecil.app/fr/docs/publishing/aws-s3/</id>
    <title>AWS S3 / CloudFront</title>
    <published>2026-11-09T10:53:41+00:00</published>
    <link href="https://desktop.cecil.app/fr/docs/publishing/aws-s3/" rel="alternate" type="text/html" />
    <content type="html">
      <![CDATA[<h1>AWS S3 / CloudFront</h1>
<h2 id="cles">Clés<a class="heading-anchor" href="#cles" aria-hidden="true" tabindex="-1"></a></h2>
<p>AWS utilise les clés (<strong>Access key ID</strong> et <strong>Secret access key</strong>) d'un utilisateur IAM. Créez un utilisateur dédié à la publication, avec ces droits sur le bucket :</p>
<ul>
<li><code translate="no">s3:ListBucket</code></li>
<li><code translate="no">s3:PutObject</code></li>
<li><code translate="no">s3:DeleteObject</code></li>
<li><code translate="no">cloudfront:CreateInvalidation</code>, si vous utilisez CloudFront</li>
</ul>
<p>Un utilisateur limité à son bucket, qui ne peut pas lister les autres buckets, est accepté. Le compte est affiché sous la forme <em>AWS (ABCD…WXYZ)</em>, avec le début et la fin de la clé d'accès.</p>
<h2 id="reglages-de-la-cible">Réglages de la cible<a class="heading-anchor" href="#reglages-de-la-cible" aria-hidden="true" tabindex="-1"></a></h2>
<table>
<thead>
<tr>
<th>Champ</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Bucket</strong></td>
<td>Le nom du bucket.</td>
</tr>
<tr>
<td><strong>Région</strong></td>
<td>La région du bucket, par ex. <code translate="no">eu-west-3</code>.</td>
</tr>
<tr>
<td><strong>Préfixe</strong></td>
<td>Facultatif : un dossier du bucket, par ex. <code translate="no">docs/</code>.</td>
</tr>
<tr>
<td><strong>Distribution CloudFront</strong></td>
<td>Facultatif : l'ID de la distribution, pour invalider son cache après chaque publication.</td>
</tr>
<tr>
<td><strong>URL du site</strong></td>
<td>Facultatif : l'URL publique du site, affichée après chaque publication.</td>
</tr>
</tbody>
</table>
<aside class="note note-warning"><p>Le bucket doit exister : Cecil Desktop ne le crée pas, et ne règle ni son accès public ni son hébergement de site statique. Configurez-les d'abord dans AWS.</p></aside>
<h2 id="publication">Publication<a class="heading-anchor" href="#publication" aria-hidden="true" tabindex="-1"></a></h2>
<p>Les fichiers sont comparés aux objets du bucket (sous le préfixe) :</p>
<ul>
<li>seuls les fichiers nouveaux et modifiés sont envoyés, avec leur type de contenu ;</li>
<li>les objets qui ne sont plus dans le site sont <strong>supprimés</strong> ;</li>
<li>les pages HTML sont envoyées avec des en-têtes de cache qui font vérifier aux navigateurs s'il existe une nouvelle version, les autres fichiers sont mis en cache 1 jour ;</li>
<li>si une distribution CloudFront est indiquée et que quelque chose a changé, son cache est invalidé.</li>
</ul>
<aside class="note note-caution"><p>Les objets sous le préfixe qui ne sont pas dans le site sont supprimés : ne publiez pas dans un bucket (ou un préfixe) qui contient d'autres fichiers.</p></aside>
<p>Après la publication, la cible affiche l'<strong>URL du site</strong>, ou l'URL du fichier <code translate="no">index.html</code> dans le bucket.</p>]]>
    </content>
  </entry>
</feed>
