Fait avec Chinaski

Quickstart

Un site tout neuf sur n'importe quel serveur Debian/Ubuntu, sans prérequis, en une commande :

curl -fsSL https://chinaski.net/install | sudo bash -s -- 1 --repo https://github.com/bigjohncobb/chinaski

Remplacez 1 par un nom d'instance : n'importe quoi d'alphanumérique (2, prod, staging, le nom d'un client). Chaque instance est son propre site isolé avec sa propre base de données ; en exécuter plusieurs à la fois est normal. Le script n'exige aucune configuration préalable et se termine en moins de cinq minutes.

Ce que fait le script

Il gère tout lui-même :

  • installe les paquets système requis et les dépendances Perl (depuis des paquets Debian pré-construits, pas de compilation C)
  • crée un utilisateur système dédié chinaski
  • clone le code, initialise la base de données, écrit le fichier env
  • démarre le service systemd

Une fois terminé, pointez un navigateur vers l'administration et continuez via /setup : changez le mot de passe administrateur (au moins 12 caractères, majuscules et minuscules plus un chiffre), réglez l'URL du site et choisissez vos langues. Votre premier site est prêt à être édité ; le build arrive quand vous le cliquez.

Liste de contrôle du premier jour

Vérifiez ceci avant d'envoyer du trafic réel :

  • L'administration est liée au loopback. Un contrôle de socket en écoute doit montrer 127.0.0.1:300<N>, jamais 0.0.0.0, les visiteurs ne doivent pas atteindre le CMS directement depuis l'extérieur.
  • Certificat TLS émis. Le Caddyfile d'exemple installé par instance lit votre DNS et renouvelle les certificats Let's Encrypt ; vérifiez curl -I https://<host> une fois que le DNS et les ports 80/443 se résolvent et répondent.
  • Les sauvegardes sont programmées. Un instantané quotidien automatique de la base de données plus les médias s'exécute à 03:17 ; vérifiez que le temporisateur systemd est activé, et que le répertoire de sauvegarde est en mode 700 et appartient à l'utilisateur du service. Si vous éditez le planning d'horloge à la main, confirmez que systemctl list-timers montre une prochaine exécution ; une coquille fait que le temporisateur saute silencieusement.
  • Signalez /health à votre superviseur. Le point de terminaison de santé du CMS renvoie un rapport JSON agrégé ({"status":"ok|warning|critical", timestamp, total_checks, checks[]}) avec HTTP 503 seulement quand un contrôle critique échoue. (Le Chinaski Manager séparé a son propre /health renvoyant status/uptime/db/workers/pid sur le port du plan de contrôle.)
  • Fuseau horaire : réglez-le depuis les réglages /admin. Les plannings utilisent le fuseau du site ; les noms de fuseaux mal orthographés retombent sur UTC à l'enregistrement ; vérifiez-le, puis gardez toutes vos entrées programmées correctes.

Deux variables d'environnement comptent dans /etc/chinaski<N>/env (mode 0600) : CHINASKI_SECRET (la clé aléatoire de signature de session de 32 octets ou plus) et LISTEN_URL, qui doit pointer vers le loopback en production. Les chemins de base de données et de sortie sont dérivés du nom d'instance par l'unité ; vous n'avez généralement pas besoin de les surcharger.

Autres voies pour faire tourner Chinaski

  • Premier lancement entièrement hors ligne : un script d'installation peut être utilisé sur une machine sans Internet en préparant d'abord un bundle : exécutez bash install/make-bundle.sh sur une machine connectée, ce qui produit une archive contenant le code source de l'application, toutes les archives des modules Perl, un cpanm fourni, et le script d'installation plus un fichier de somme de contrôle. Après avoir copié vers la machine cible et désarchivé, exécutez sudo bash install.sh : tout s'installe sans accès Internet. Sur les cartes ARM ( Raspberry Pi), installez explicitement les bibliothèques d'images (libjpeg, libpng, libgif), sinon l'outillage d'images échoue à compiler.
  • Exécution sans systemd : désarchivez et exécutez sudo bash install.sh --no-service (optionnellement --prefix /srv/chinaski), puis démarrez via le hypnotoad fourni ; l'administration répond à http://<host-ip>:8080/admin. Le fichier env contient déjà le secret et le mode air-gap.
  • HTTP simple, pour toujours : là où aucun DNS et aucune autorité de certificat n'existeront jamais, hypnotoad peut servir directement en HTTP : aucun certificat à acquérir, renouveler ou faire expirer.

Que se passe-t-il ensuite

La première visite de l'administration redirige vers /setup ; une fois le mot de passe de remplacement remplacé, cette page disparaît (elle renvoie 404). De là, la boucle quotidienne éditer → builder → servir (voir *How It Works*) prend le relais, et si vous perdez un jour le mot de passe administrateur, perl bin/reset-admin.pl vous remet dans ce même état de configuration.

Lisez ce site en