Aller au contenu principal

Installation

Prérequis

Docker. Rien d'autre pour installer ; Node ≥ 22 et pnpm en plus si vous développez sur le code.

Installation guidée

git clone https://git.cythin.eu/cythin/kastell.git
cd kastell
sh outils/installer.sh

Le script pose les questions dont la réponse ne se devine pas — port, adresse publique, environnement, visioconférence, analyse antivirale, relais de notification — écrit .env en tirant au sort tous les secrets, puis lève la composition et attend que l'instance réponde.

Un .env existant n'est jamais écrasé sans votre accord : le script propose de le garder tel quel, ou de le sauvegarder à côté avant d'en écrire un neuf. Ce fichier porte peut-être les secrets d'une instance en service.

Pourquoi il n'appelle ni pnpm ni node

L'artefact est construit dans l'image, et les migrations sont jouées par l'application à son démarrage. Exiger une chaîne Node sur l'hôte pour lever six conteneurs ajouterait un prérequis que l'exploitant n'utiliserait jamais ensuite.

La clé Apple ne se saisit pas à une invite

Le script ne demande jamais la clé .p8 du relais de notification : saisie à une invite, elle resterait dans l'historique du shell et dans le tampon du terminal. Elle se colle dans .env, à la main.

En trois commandes, avec pnpm

git clone https://git.cythin.eu/cythin/kastell.git
cd kastell
pnpm install
pnpm demarrer

pnpm demarrer lève PostgreSQL, Redis, MinIO, LiveKit, egress et ClamAV, construit l'artefact et l'inscrit avec sa révision git. Il prépare aussi .env : il le crée s'il manque, y ajoute les clés apparues depuis, et tire au sort les secrets — sans jamais toucher à une valeur déjà renseignée.

L'interface et l'API sont servies par le même artefact, sur le même port : http://localhost:8080.

Un seul port, une seule origine

Le cookie de session n'a donc jamais de frontière à franchir, et l'auto-hébergeur n'a pas de reverse proxy à composer pour que l'application fonctionne.

Créer le premier compte

  1. Sur http://localhost:8080, « Créer un espace ». Votre adresse, votre mot de passe — personne d'autre ne les voit.
  2. Puis, en ligne de commande :
pnpm amorcer-root votre@adresse.fr "Amorçage de l'instance."

La console root apparaît alors dans le rail.

Ce geste demande la chaîne Node

amorcer-root ne voyage pas dans l'image. Si vous avez installé par outils/installer.sh sans Node sur l'hôte, il faut Node ≥ 22 et pnpm pour cette seule commande.

L'ordre n'est pas arbitraire

amorcer-root ne crée pas de compte : il accorde un droit à un compte existant. Un script qui créerait le compte devrait choisir un mot de passe, donc l'écrire quelque part. Le droit root passe par un compte né du parcours normal.

Ce script ne fonctionne que sur une instance vierge. Dès qu'un root existe, l'octroi passe par la console et laisse une trace nominative.

Les courriels ne partent pas

En développement, le transport est console : liens de vérification, de connexion, d'invitation et de mobilisation s'écrivent en clair dans les traces.

pnpm logs

Vérifier que tout fonctionne

pnpm verif

Plus de six cents garanties, jouées contre une base dédiée (…_verif, créée au besoin) qui n'est jamais celle de développement. Voir Vérifier.

Sans Docker

Si vous disposez déjà de PostgreSQL, Redis et d'un stockage S3 :

cp .env.example .env # renseigner les valeurs
pnpm migrate
pnpm dev # API sur 8080, interface sur 5173 avec rechargement