Aller au contenu

Prérequis

Badlen est en développement actif : ce que vous installez en suivant ces pages est construit à partir des sources du moment et évolue avec elles.

Il vous faut Docker avec Docker Compose, et quelques minutes pour la première compilation. Vous n’avez aucun environnement d’exécution à installer, aucune base de données à préparer à la main ni aucun serveur web à configurer. La section ci-dessous précise quelle machine convient.

N’importe quel hôte Linux 64 bits capable de faire tourner Docker. Les deux images sur lesquelles repose la pile, les images officielles de Node et de PostgreSQL, sont publiées pour amd64 et pour arm64 : un serveur x86 ordinaire convient donc, tout comme une carte ARM 64 bits (un Raspberry Pi sous un système 64 bits, un NAS ARM). Un système ARM 32 bits ne convient pas, faute de version de l’image de base de l’application pour lui.

C’est la compilation qui consomme de la mémoire, bien plus que l’application une fois lancée. Sur une machine à deux cœurs, la compilation de l’interface a culminé vers 800 Mo dans un seul processus, et celle de l’API vers 660 Mo ; ensuite, l’application occupe environ 225 Mo et PostgreSQL au repos environ 50 Mo. Ces chiffres viennent d’une seule machine et ne constituent pas un minimum garanti, mais ils donnent l’ordre de grandeur : quelques centaines de mégaoctets pour tourner, près d’un gigaoctet pour compiler.

La pile se compose de deux conteneurs. Le premier est PostgreSQL 18. Le second est l’application, qui sert l’interface compilée et son API depuis la même origine. Il n’y a donc qu’une image, un processus et une adresse à placer derrière un reverse proxy, et rien à régler côté CORS, puisque le cookie de session ne change jamais d’origine.

L’application applique elle-même ses migrations en attente avant d’accepter la moindre requête. Vous n’avez rien d’autre à lancer sur la base de données, ni au premier démarrage ni aux suivants.

Le premier docker compose up -d --build construit l’image à partir des sources. Sur une petite machine domestique, cela prend des minutes et non des secondes, surtout pour compiler l’interface. Les démarrages suivants prennent une quinzaine de secondes.

L’image construite pèse près de 800 Mo, et chaque mise à jour en construit une nouvelle à côté. Mettre à jour explique ce que devient l’ancienne.

Aucune image n’est publiée : la pile se construit à partir d’un clone du dépôt. Le clonage est la première étape de Configuration, suivi des commandes à lancer ensuite. C’est cette page qui décrit la procédure ; ici, vous n’avez rien à exécuter.

Une archive des sources téléchargée sans l’historique git fonctionne aussi : la version qu’affiche l’instance vient du fichier VERSION commité dans le dépôt et embarqué dans l’image, pas d’une étiquette git.

Étape suivante : Configuration, les commandes qui lancent la pile et le fichier qu’elles lisent.