Fait avec Chinaski

Publier depuis un ordinateur portable

Chinaski peut tourner sur un ordinateur portable Linux de réserve ou offert : l'admin, la base de données et le build vivent tous sur le portable, tandis que le site public lui-même est servi depuis le stockage d'objets Cloudflare R2. Les éditeurs ouvrent l'admin dans le navigateur du portable pour écrire et publier ; les visiteurs ne touchent jamais au portable, de sorte que le site public reste en ligne même quand le portable est fermé, éteint ou hors ligne.

C'est une bonne option pour quiconque veut un vrai site web sans facture d'hébergement : un groupe communautaire, une paroisse, un étudiant, quiconque n'a pas de carte à mettre sur un compte d'hébergement. Beaucoup d'ordinateurs portables finissent en déchets électroniques seulement à cause de la licence Windows, pas parce que le matériel est mauvais : n'importe quel Linux de la famille Debian ou Ubuntu (Ubuntu, Linux Mint, Debian et similaires) fonctionne.

C'est une configuration à faire une seule fois, idéalement par la personne à l'aise avec quelques commandes de terminal. Après la configuration, la publication au quotidien ne demande rien de tout cela, juste l'admin dans un navigateur.

Si un téléphone est le seul appareil disponible, consultez plutôt Publier depuis un téléphone.

1. Installer Chinaski

Ouvrez un terminal sur le portable et exécutez :

curl -fsSL https://www.chinaski.net/dist/laptop-quickstart.sh | bash

Exécutez ceci avec votre utilisateur normal, pas avec sudo. Le script demande votre mot de passe une fois, seulement pour installer des paquets système. Tout le reste s'installe dans votre dossier personnel (~/chinaski) et tourne sous votre compte.

Cette seule commande installe les paquets dont Chinaski a besoin, télécharge et vérifie par somme de contrôle le bundle hors ligne, compile les dépendances Perl de Chinaski (quelques minutes), met en place la base de données et démarre Chinaski comme service en arrière-plan.

Quand c'est terminé, ouvrez http://127.0.0.1:8080/admin dans le navigateur du portable. L'admin n'écoute que sur le portable lui-même, il n'est donc jamais joignable de l'extérieur.

Étapes manuelles (identiques à la commande ci-dessus ; utile si quelque chose échoue)
sudo apt-get update
sudo apt-get install -y perl make gcc sqlite3 openssl libjpeg-dev libpng-dev libgif-dev libwebp-dev rclone rsync curl tar gzip
cd "$HOME"
curl -fSLO https://www.chinaski.net/dist/chinaski-latest.tar.gz
curl -fSLO https://www.chinaski.net/dist/chinaski-latest.tar.gz.sha256
sha256sum -c chinaski-latest.tar.gz.sha256
mkdir extracted
tar -xzf chinaski-latest.tar.gz -C extracted
cd extracted/chinaski-*
bash install.sh --laptop --prefix "$HOME/chinaski"
systemctl --user daemon-reload
systemctl --user enable --now chinaski
loginctl enable-linger "$(whoami)"

2. Le faire tourner en continu

L'installation configure Chinaski comme un service pour votre compte utilisateur. Il démarre automatiquement quand vous ouvrez une session, et se relance tout seul s'il s'arrête.

L'installation essaie aussi de laisser Chinaski démarrer quand le portable s'allume, avant que quiconque ouvre une session. Sur quelques versions de Linux, cela demande une permission une seule fois ; si l'installation affiche un message à ce sujet, exécutez :

sudo loginctl enable-linger "$(whoami)"

Pour vérifier Chinaski ou le relancer :

systemctl --user status chinaski
systemctl --user restart chinaski
journalctl --user -u chinaski -f

3. Le pointer vers Cloudflare R2

C'est là que vit réellement le site public.

Dans Cloudflare :

  1. Créez un bucket R2 avec le stockage Standard. Utilisez ce bucket pour ce site uniquement : chaque publication fait correspondre le bucket exactement au site et supprime tout le reste qu'il contient.
  2. Sous R2 → Manage API tokens, créez un token d'API avec la permission Object Read & Write, limité à ce bucket. Copiez l'Access Key ID et la Secret Access Key (le secret n'est affiché qu'une seule fois). Notez votre Account ID sur la page de vue d'ensemble de R2.
  3. Dans les Settings du bucket, connectez un domaine personnalisé (par exemple www.example.com). Cloudflare crée l'enregistrement DNS et rend le bucket public à cette adresse ; il n'y a rien d'autre à activer. L'adresse r2.dev de R2 sert uniquement aux tests.
  4. R2 ne sert un fichier que sous son nom exact, tandis que Chinaski enregistre les pages sous .../index.html. Sur votre domaine (sous Rules, pas dans R2), ajoutez une URL Rewrite Rule :
    • Filtre (expression personnalisée) : (http.host eq "www.example.com" and ends_with(http.request.uri.path, "/")) (avec votre propre adresse)
    • Path : réécrire vers Dynamic concat(http.request.uri.path, "index.html")

Dans Chinaski : réglez Settings → General → Site URL sur votre adresse publique (par exemple https://www.example.com), puis dans Settings → Deploy :

Field Value
Deploy automatically after a successful build On
Enable S3 deploy On
Bucket Le nom de votre bucket R2
Endpoint https://<ACCOUNT_ID>.r2.cloudflarestorage.com (rien après le .com)
Region auto
Access Key / Secret Key Les identifiants d'API de R2

Ne mettez pas le nom du bucket à la fin de l'Endpoint. Cloudflare affiche parfois l'adresse comme https://<ACCOUNT_ID>.r2.cloudflarestorage.com/<bucket>. Copiée ainsi, le site est téléversé dans un dossier à l'intérieur du bucket et chaque page affiche le message de R2 "Error 404: Is this your bucket?", même si Test S3 Connection passe.

Enregistrez, puis utilisez Test S3 Connection pour confirmer que les identifiants fonctionnent. Publiez quelque chose, puis ouvrez votre adresse et une page à l'intérieur du site pour confirmer que tout se charge.

Publier une modification

Modifiez et enregistrez une page ou un post comme d'habitude, et le build et le téléversement tournent tout seuls. Surveillez le bandeau d'état de l'admin pour voir "Publishing your update…" jusqu'à "Your update is live.".

Si un build réussit mais que le téléversement échoue (le Wi-Fi a coupé, par exemple), le site publié la dernière fois sur R2 reste exactement comme il était. Les visiteurs ne voient jamais une publication à moitié finie. Publiez à nouveau une fois de retour en ligne.

Mettre à jour Chinaski

Pour installer la dernière version de Chinaski, exécutez ceci dans un terminal avec le même utilisateur (pas avec sudo) :

curl -fsSL https://www.chinaski.net/dist/chinaski-update.sh | bash

Il vérifie si une nouvelle version est disponible, l'installe et relance Chinaski. Votre base de données, vos réglages, vos téléversements et vos médias sont conservés. Les installations faites avant que rsync fasse partie de la liste des paquets en ont besoin une fois : sudo apt-get install rsync.

Bon à savoir

  • Formulaires et téléchargements de documents : le site public est servi par R2, et le portable n'est pas joignable depuis Internet, donc les formulaires de contact et les téléchargements de documents du site public ne fonctionnent pas dans cette configuration.
  • Coûts : le niveau gratuit de Cloudflare R2 couvre plusieurs fois un petit site typique, et le trafic vers les visiteurs n'est pas facturé. Vous payez toujours votre nom de domaine.
Lisez ce site en