Installation

difuzio s'installe par paquet Debian, sur Debian 13 ou Ubuntu 24.04. Cette page donne le chemin le plus court jusqu'à un service qui tourne. Le manuel d'exploitation reprend chaque étape en détail, y compris l'installation manuelle sans paquet.

Choisir son backend

Le moteur se compile avec l'un ou l'autre backend, et le choix se fait une fois pour toutes : une base n'est pas convertible de l'un vers l'autre.

Les deux paquets serveur posent le même exécutable et s'excluent donc mutuellement.

Prérequis

Obtenir les paquets

Le plus court est le dépôt de paquets signé : les mises à jour suivent alors apt upgrade. La page Téléchargement donne les quelques lignes qui déclarent le dépôt et sa clé.

Les paquets se construisent aussi depuis le dépôt public. La construction demande un accès réseau et une chaîne Go 1.23 ou plus récente.

git clone https://inligit.fr/cap-rel/difuzio.git
cd difuzio
make deb

Trois paquets sont produits dans dist/ : difuzio-mariadb, difuzio-sqlite et difuzio-webui, la console d'administration.

Installer

Avec SQLite, une seule commande met le service en route :

apt install difuzio-sqlite difuzio-webui

Depuis des fichiers construits localement, ce sont les mêmes paquets :

apt install ./difuzio-sqlite_<version>_amd64.deb
apt install ./difuzio-webui_<version>_all.deb

L'installation crée le compte système, les répertoires, les clés de signature générées une fois et jamais régénérées, la base et son schéma, puis démarre les services.

Avec MariaDB, créez d'abord la base et ses deux comptes - un compte applicatif sans droit de modification du schéma, un compte de migration - renseignez la chaîne de connexion dans /etc/difuzio/config.yaml, puis :

apt install ./difuzio-mariadb_<version>_amd64.deb
apt install ./difuzio-webui_<version>_all.deb
systemctl enable --now difuzio-web.service difuzio-lmtp.service \
    difuzio-worker@1.service difuzio.target

Premier administrateur, premier domaine

Aucun paquet ne crée d'administrateur : c'est une décision d'exploitant.

export CREDENTIALS_DIRECTORY=/etc/difuzio/secrets

difuzio bootstrap-admin --config /etc/difuzio/config.yaml \
    --email vous@example.org --password-stdin

difuzio add-domain --config /etc/difuzio/config.yaml \
    --name listes.example.org --base-url https://listes.example.org

difuzio create-list --config /etc/difuzio/config.yaml \
    --domain listes.example.org --name annonces \
    --owner vous@example.org --type newsletter

Le mot de passe est lu sur l'entrée standard : il n'apparaît donc pas dans l'historique du shell. Tant qu'aucun administrateur n'existe, la page /setup de la console permet aussi d'en créer un ; dès qu'il y en a un, cette page disparaît.

Raccorder le serveur de messagerie

difuzio mta-config --domain listes.example.org

La commande imprime les lignes à reporter dans la configuration de Postfix. Le domaine entier - messages, adresses de rebond, plaintes - est routé vers la socket LMTP. Vérifiez ensuite la zone DNS :

difuzio check-dns --domain listes.example.org

Vérifier

difuzio doctor --config /etc/difuzio/config.yaml

doctor affiche la version installée, le backend lié, l'accès à la base et l'état du schéma. La console signale de son côté un déploiement dépareillé, quand le serveur et l'interface n'ont pas la même révision.

Ensuite