<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.lololand.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=WikiSysop</id>
	<title>Loic Wiki - Contributions [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.lololand.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=WikiSysop"/>
	<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php/Sp%C3%A9cial:Contributions/WikiSysop"/>
	<updated>2026-05-25T20:45:07Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Trace_install_tas_-_Stalwart&amp;diff=179</id>
		<title>Trace install tas - Stalwart</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Trace_install_tas_-_Stalwart&amp;diff=179"/>
		<updated>2026-04-13T23:46:45Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop : Documentation Stalwart ajoutée: déploiement Podman rootless, vérifications locales, limites ports privilégiés et DNS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Trace install tas - Stalwart =&lt;br /&gt;
&lt;br /&gt;
== Vue d&#039;ensemble ==&lt;br /&gt;
* Service mail tout-en-un &#039;&#039;Stalwart&#039;&#039; déployé sur &#039;&#039;tas&#039;&#039; via Podman rootless et Quadlet systemd user.&lt;br /&gt;
* Objectif: héberger localement les boîtes mail et l&#039;administration, avec préparation pour les domaines &#039;&#039;lololand.org&#039;&#039; et &#039;&#039;pessonnier.fr&#039;&#039;.&lt;br /&gt;
* Image utilisée: &#039;&#039;docker.io/stalwartlabs/stalwart:latest&#039;&#039;.&lt;br /&gt;
* État actuel: service fonctionnel en local sur ports non privilégiés, mais pas encore en exposition SMTP standard 25/465/587/993 côté hôte rootless.&lt;br /&gt;
&lt;br /&gt;
== Source de vérité ==&lt;br /&gt;
* Quadlet: &#039;&#039;/home/loic/.config/containers/systemd/stalwart.container&#039;&#039;&lt;br /&gt;
* Données persistantes: &#039;&#039;/home/loic/stalwart-data&#039;&#039;&lt;br /&gt;
* Sauvegarde avant modification: &#039;&#039;/home/loic/backups/stalwart-2026-04-14T01:44:34+02:00&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Configuration Quadlet actuelle ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Stalwart Mail Server&lt;br /&gt;
After=network-online.target&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
&lt;br /&gt;
[Container]&lt;br /&gt;
Image=docker.io/stalwartlabs/stalwart:latest&lt;br /&gt;
ContainerName=stalwart&lt;br /&gt;
AutoUpdate=registry&lt;br /&gt;
Volume=/home/loic/stalwart-data:/opt/stalwart:Z&lt;br /&gt;
PublishPort=1465:465&lt;br /&gt;
PublishPort=1587:587&lt;br /&gt;
PublishPort=1143:143&lt;br /&gt;
PublishPort=1993:993&lt;br /&gt;
PublishPort=1110:110&lt;br /&gt;
PublishPort=1995:995&lt;br /&gt;
PublishPort=14190:4190&lt;br /&gt;
PublishPort=8088:8080&lt;br /&gt;
PublishPort=8443:443&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Restart=always&lt;br /&gt;
TimeoutStartSec=180&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déploiement ==&lt;br /&gt;
* Rechargement systemd user: &#039;&#039;systemctl --user daemon-reload&#039;&#039;&lt;br /&gt;
* Démarrage: &#039;&#039;systemctl --user start stalwart.service&#039;&#039;&lt;br /&gt;
* Statut: &#039;&#039;systemctl --user status stalwart.service&#039;&#039;&lt;br /&gt;
* Logs: &#039;&#039;journalctl --user -u stalwart.service -n 200 --no-pager&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Vérifications réalisées ==&lt;br /&gt;
* Le premier démarrage avec &#039;&#039;PublishPort=25:25&#039;&#039; a échoué en rootless.&lt;br /&gt;
* Erreur observée:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rootlessport cannot expose privileged port 25, you can add &#039;net.ipv4.ip_unprivileged_port_start=25&#039; to /etc/sysctl.conf (currently 1024), or choose a larger port number (&amp;gt;= 1024)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Adaptation prudente faite: publication temporaire sur ports non privilégiés pour valider le service sans modification système globale.&lt;br /&gt;
* Ports locaux vérifiés après correction:&lt;br /&gt;
** &#039;&#039;8088/tcp&#039;&#039; -&amp;gt; interface web HTTP Stalwart&lt;br /&gt;
** &#039;&#039;8443/tcp&#039;&#039; -&amp;gt; interface HTTPS Stalwart&lt;br /&gt;
** &#039;&#039;1587/tcp&#039;&#039; -&amp;gt; submission&lt;br /&gt;
** &#039;&#039;1465/tcp&#039;&#039; -&amp;gt; SMTPS&lt;br /&gt;
** &#039;&#039;1993/tcp&#039;&#039; -&amp;gt; IMAPS&lt;br /&gt;
** &#039;&#039;1143/tcp&#039;&#039;, &#039;&#039;1110/tcp&#039;&#039;, &#039;&#039;1995/tcp&#039;&#039;, &#039;&#039;14190/tcp&#039;&#039; disponibles aussi&lt;br /&gt;
* Test HTTP local validé:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -I http://127.0.0.1:8088/&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Initialisation Stalwart validée par les logs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
✅ Configuration file written to /opt/stalwart/etc/config.toml&lt;br /&gt;
🔑 Your administrator account is &#039;admin&#039; with password généré dans les logs du conteneur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Limitation actuelle ==&lt;br /&gt;
* En Podman rootless standard, &#039;&#039;tas&#039;&#039; ne peut pas exposer directement les ports privilégiés &#039;&#039;25/465/587/993/...&#039;&#039; tant que le système n&#039;est pas ajusté.&lt;br /&gt;
* Pour un passage en production mail réel, il faut choisir l&#039;une des voies suivantes:&lt;br /&gt;
** soit abaisser &#039;&#039;net.ipv4.ip_unprivileged_port_start&#039;&#039;&lt;br /&gt;
** soit faire une redirection hôte/firewall des ports standards vers les ports élevés utilisés par le conteneur&lt;br /&gt;
** soit exécuter la brique mail avec un mécanisme non rootless pour l&#039;exposition des ports standards&lt;br /&gt;
* Point bloquant déjà identifié avant installation: les tests SMTP sortants vers des MX publics sur le port 25 timeout, donc un &#039;&#039;relay SMTP&#039;&#039; restera probablement nécessaire pour l&#039;émission Internet fiable.&lt;br /&gt;
&lt;br /&gt;
== DNS cible recommandé ==&lt;br /&gt;
Pour chaque domaine, créer au minimum:&lt;br /&gt;
* &#039;&#039;mail.lololand.org&#039;&#039; -&amp;gt; A vers &#039;&#039;82.67.187.157&#039;&#039;&lt;br /&gt;
* &#039;&#039;mail.pessonnier.fr&#039;&#039; -&amp;gt; A vers &#039;&#039;82.67.187.157&#039;&#039;&lt;br /&gt;
* MX du domaine vers &#039;&#039;mail.&amp;lt;domaine&amp;gt;.&#039;&#039;&lt;br /&gt;
* SPF, DKIM, DMARC selon les valeurs générées par Stalwart&lt;br /&gt;
* Idéalement PTR/rDNS de l&#039;IP publique vers &#039;&#039;mail.lololand.org&#039;&#039; ou équivalent, si le fournisseur le permet&lt;br /&gt;
&lt;br /&gt;
== Notes d&#039;exploitation ==&lt;br /&gt;
* L&#039;interface d&#039;admin locale est joignable sur &#039;&#039;http://127.0.0.1:8088/&#039;&#039;.&lt;br /&gt;
* Les identifiants initiaux sont affichés au premier démarrage dans &#039;&#039;podman logs stalwart&#039;&#039;.&lt;br /&gt;
* La configuration définitive des domaines et des enregistrements DNS se fait ensuite dans l&#039;interface Stalwart, qui génère les enregistrements à publier.&lt;br /&gt;
&lt;br /&gt;
== Relance et diagnostic ==&lt;br /&gt;
* Redémarrer: &#039;&#039;systemctl --user restart stalwart.service&#039;&#039;&lt;br /&gt;
* Voir les logs du conteneur: &#039;&#039;podman logs --tail 200 stalwart&#039;&#039;&lt;br /&gt;
* Vérifier les ports: &#039;&#039;ss -ltn | egrep &#039;:(1110|1143|1465|1587|1993|1995|8088|8443|14190)\\s&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Décision retenue ==&lt;br /&gt;
* Déployer d&#039;abord un Stalwart fonctionnel localement, sans changement système global risqué, pour valider l&#039;image, le volume, l&#039;initialisation et la persistance.&lt;br /&gt;
* Reporter la bascule vers les ports mail standards et la mise en production Internet complète à une étape dédiée, car elle implique un changement système ou réseau plus sensible.&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
</feed>