Skip to main content
OxiMail est un binaire Rust unique. L’installer consiste à déposer un seul exécutable sur un serveur, à placer un fichier de configuration à côté, puis à le lancer comme service. Il n’y a ni Postfix, ni Dovecot, ni serveur web à installer en complément. Cette page explique comment poser OxiMail sur un hôte. Une fois le serveur lancé, l’assistant de premier démarrage vous guide pour le DNS, le DKIM, le TLS et la création de votre premier compte.

Prérequis

OxiMail est compilé et testé sur Debian 13. L’installeur refuse de s’exécuter sur d’autres distributions ou d’autres versions de Debian, car les dépendances de compilation et les versions de bibliothèques sont fixées pour cette cible. L’assistant de configuration mesure de nouveau la machine à sa première étape (distribution, systemd, mémoire, espace libre sur le volume de /var/lib/oximail, architecture) et en présente le résultat comme des recommandations : moins de 2 Gio de mémoire, moins de 10 Gio libres, ou une distribution hors de celles sur lesquelles il est testé (Debian 12 et 13, Ubuntu 24.04) donnent un avertissement, jamais un refus.
OxiMail se compile pour Debian 13 uniquement. L’installateur refuse toute autre cible, et le chemin de publication vérifie que le binaire ne dépend d’aucune bibliothèque système de cryptographie, de TLS ou de SQLite. Compilez sur une machine Debian 13 (un VPS, un conteneur LXC ou une VM).

Dépendances système

La compilation a besoin d’une chaîne d’outils C et d’un compilateur C pour le SQLite embarqué ; depuis ADR-148, ni OpenSSL ni SQLCipher ne sont dans le graphe de dépendances :
Il vous faut aussi une chaîne d’outils Rust stable. Si rustc n’est pas déjà présent, installez-le avec rustup :

Ports

OxiMail écoute sur les ports standards du courrier et du web. Ouvrez-les dans votre pare-feu (et dans le groupe de sécurité de votre hébergeur) avant de démarrer le serveur. L’assistant de configuration les vérifie et vous avertit si l’un d’eux est bloqué. Les ports 25, 443 et 587 sont le minimum pour un serveur de courrier fonctionnel. Les ports IMAP (143 et 993) ne servent que si vous activez l’option legacy pour les clients IMAP. Le CalDAV et le CardDAV sont servis sur le même port HTTPS (443) que JMAP, ils n’ont donc besoin d’aucun port supplémentaire.

Obtenir le binaire

Il n’existe pas aujourd’hui de binaire précompilé à télécharger : vous compilez OxiMail depuis les sources. La compilation produit un seul exécutable autonome (environ 70 Mo) que vous copiez sur le serveur.
Un dépôt de sources public et un installeur en une ligne font partie de la feuille de route du projet, mais ne sont pas encore disponibles. Compilez depuis les sources comme décrit ci-dessous. Si vous voyez une commande en une ligne mentionnée ailleurs, considérez-la comme non encore active et vérifiez-la avant d’en dépendre.

Compiler depuis les sources

Depuis un clone de l’arborescence des sources, sur un hôte Debian 13 :
Les deux options de fonctionnalité sont : Compilez avec --features passkey,legacy si vous voulez que les clients de messagerie classiques (IMAP) et les clients DAV puissent se connecter. La compilation en mode release prend de 5 à 15 minutes selon la machine, et le binaire apparaît dans target/release/oximail. Un clone fournit aussi un fichier install.sh à la racine du dépôt, qui exécute toute la séquence (paquets système, Rust, compilation, installation, puis lancement de l’assistant) d’un seul coup. C’est pratique sur un VPS neuf, mais les étapes manuelles ci-dessous vous donnent le contrôle de chaque phase.

Placer et lancer le binaire

Installer le binaire et ses répertoires

Copiez le binaire compilé à sa place et créez les répertoires d’exécution. Un utilisateur système dédié évite de faire tourner le service en tant que root :
OxiMail se lie à des ports privilégiés (25, 443, 587) tout en tournant sous un utilisateur non root. Accordez donc au binaire la capacité de se lier aux ports bas, plutôt que de le lancer en tant que root :
Si setcap est absent, installez d’abord le paquet libcap2-bin.

Fichier de configuration

OxiMail lit un seul fichier de configuration TOML. L’emplacement habituel est /etc/oximail/oximail.toml. L’arborescence des sources fournit un exemple entièrement commenté dans config/oximail.example.toml, que vous pouvez copier comme point de départ :
Une configuration de production minimale définit le nom d’hôte, les adresses d’écoute, les chemins de stockage et ACME pour le TLS :
La référence complète, avec chaque clé et le modèle de surcharge TOML plus base de données, se trouve dans Configuration. Dans la plupart des cas, vous laissez l’assistant de configuration générer le fichier plutôt que de l’écrire à la main. Pour une installation sans surveillance, l’arborescence des sources fournit aussi config/setup.example.toml, la référence de chaque clé que le fichier de setup de l’assistant accepte (oximail setup --config-file), où le mot de passe administrateur, le jeton Cloudflare et les identifiants du relais se donnent par référence (un fichier ou une variable d’environnement), jamais en clair.

Lancer comme service systemd

Installez une unité systemd pour qu’OxiMail démarre au boot et redémarre en cas d’échec. Les journaux vont dans le journal système (lancez journalctl -u oximail), il n’y a donc pas de fichier de log à faire tourner. Créez /etc/systemd/system/oximail.service :
Puis activez-le et démarrez-le :
Le résolveur validant local. Le serveur pose toutes ses questions DNS à unbound sur 127.0.0.1, et ne croit une réponse DNSSEC qu’une fois que sa propre sonde a prouvé ce résolveur. L’assistant l’installe et le configure (contrôles de la machine). Pour une installation à la main, installez unbound avec son ancre de confiance racine, ordonnez oximail.service après unbound.service, puis lancez oximail resolver check : c’est la même sonde, serveur arrêté ou non (sortie 0 fiable, 1 non mesuré, 2 non fiable ou muet). Un résolveur non prouvé n’empêche pas le serveur de démarrer, mais celui-ci ne croit alors aucune réponse DNSSEC et retient le courrier vers les domaines DANE jusqu’à ce que la sonde passe. Pour la configuration interactive la première fois, vous pouvez lancer directement oximail setup au lieu de démarrer le service. L’assistant crée le fichier de configuration, votre compte administrateur et vos clés DKIM, puis passe la main au service. Sur un terminal capable, il prend tout l’écran, et tout ce qu’il imprime est aussi gardé dans /var/log/oximail-setup.log ; c’est le journal de l’installation, le serveur lui-même continue de journaliser dans le journal système seulement.

Et ensuite