159 lines
4.9 KiB
Markdown
159 lines
4.9 KiB
Markdown
---
|
|
title: Mox
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, email, go, smtp, imap, jmap, auto-hebergement]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=Email, https://github.com/mjl-/mox]
|
|
---
|
|
|
|
# 📧 Mox
|
|
|
|
> **Serveur mail moderne écrit en Go** par l'auteur de la lib `mjl-` (auteur du MTA `chasquid`). Mono-binaire, configuré en JSON, IMAP4/SMTP/JMAP, simple à auditer.
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Champ | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [mox.example](https://www.xmox.nl/) (site perso) |
|
|
| **GitHub** | [mjl-/mox](https://github.com/mjl-/mox) |
|
|
| **License** | MIT |
|
|
| **Langage** | Go |
|
|
| **Étoiles GitHub** | 5 706 ⭐ |
|
|
| **Catégorie** | [[cat-email\|Email]] |
|
|
| **Mainteneur** | Mechiel Lukkien (mjl-) |
|
|
|
|
## 📝 Description
|
|
|
|
**Mox** est un serveur mail **complet** écrit en Go par **Mechiel Lukkien** (déjà auteur de `chasquid`, MTA simple en Go). Le projet vise à fournir une stack mail **fiable, auditable et facile à comprendre** — un seul binaire Go, configuration en JSON, peu de dépendances.
|
|
|
|
**Composants intégrés** (dans le même binaire) :
|
|
- **SMTP** (réception + relais) avec support de STARTTLS, SIZE, DSN
|
|
- **IMAP4rev1** (avec support IMAP IDLE pour le push)
|
|
- **JMAP** (core + mail) pour les clients modernes
|
|
- **Submission** port 587 avec auth
|
|
- **ACME** : auto-certificats Let's Encrypt
|
|
- **DKIM signing + verification**
|
|
- **DMARC evaluation**
|
|
- **SpamAssassin** embarqué (compilé)
|
|
- **Web admin** simple intégrée
|
|
- **Stockage maildir** ou **S3-compatible**
|
|
- **Backup/restore** natif
|
|
|
|
**Forces** :
|
|
- **Mono-binaire** : un seul exécutable à déployer, pas de Docker obligatoire
|
|
- **Code Go** : facile à auditer, mémoire safe, performance excellente
|
|
- **Configuration JSON** claire et versionnable
|
|
- **Pas de dépendance externe** : pas de Postgres, pas de Redis obligatoire
|
|
- **Bonne documentation** et auteur très actif
|
|
- **Comparable à Stalwart** (Rust) — concurrents directs
|
|
|
|
**Faiblesses** :
|
|
- **Pas de webmail** intégré (à combiner avec Stalwart Webmail, Roundcube, etc.)
|
|
- **Communauté** plus petite que mailcow/mailu
|
|
- **Pas d'UI aussi riche** que mailcow (admin web basique)
|
|
- **Moins de documentation française** que les concurrents
|
|
- **Pas de support CalDAV/CardDAV** (que mail)
|
|
|
|
## 🚀 Installation
|
|
|
|
### Binaire natif (recommandé)
|
|
|
|
```bash
|
|
# Téléchargement
|
|
wget https://github.com/mjl-/mox/releases/latest/download/mox-linux-amd64.tar.gz
|
|
tar xzf mox-linux-amd64.tar.gz
|
|
sudo install -m 755 mox /usr/local/bin/mox
|
|
|
|
# Création utilisateur système
|
|
sudo useradd -r -s /sbin/nologin -d /var/mox mox
|
|
|
|
# Initialisation (interactif)
|
|
sudo -u mox mox quickstart mail.example.com
|
|
```
|
|
|
|
### Docker
|
|
|
|
```yaml
|
|
# docker-compose.yml
|
|
version: '3.8'
|
|
services:
|
|
mox:
|
|
image: mjl-/mox:latest
|
|
container_name: mox
|
|
restart: unless-stopped
|
|
ports:
|
|
- "25:25" # SMTP
|
|
- "465:465" # SMTPS
|
|
- "587:587" # Submission
|
|
- "993:993" # IMAPS
|
|
- "443:443" # Admin web
|
|
volumes:
|
|
- ./config:/mox
|
|
- ./data:/data
|
|
- ./mail:/mail
|
|
```
|
|
|
|
### Service systemd
|
|
|
|
```ini
|
|
# /etc/systemd/system/mox.service
|
|
[Unit]
|
|
Description=Mox mail server
|
|
After=network.target
|
|
|
|
[Service]
|
|
User=mox
|
|
ExecStart=/usr/local/bin/mox serve
|
|
Restart=always
|
|
RestartSec=5
|
|
WorkingDirectory=/var/mox
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
```
|
|
|
|
## ⚙️ Configuration
|
|
|
|
1. **DNS** : A, MX, SPF, DKIM (auto-générés via `mox dkim`), DMARC, `_mox-*.example.com` pour DSN
|
|
2. **ACME** : `mox acme accept` puis renouvellement auto
|
|
3. **Reverse DNS** : indispensable
|
|
4. **Comptes** : `mox adduser user@example.com`
|
|
5. **Quotas** : paramétrables par domaine
|
|
6. **Backups** : `mox backup` → tar.gz ou S3
|
|
|
|
## 🔗 Alternatives
|
|
|
|
- **[app-stalwart](app-stalwart)** — Concurrent direct, en Rust
|
|
- **[app-mailcow](app-mailcow)** — Plus complet, Dockerisé, plus accessible
|
|
- **[app-mailu](app-mailu)** — Plus simple à mettre en œuvre
|
|
- **Postfix + Dovecot** — La stack classique, plus modulaire
|
|
|
|
## 🔒 Sécurité
|
|
|
|
- **Mémoire safe** (Go) → peu de CVE mémoire
|
|
- **TLS强制** sur tous les services
|
|
- **SPF / DKIM / DMARC** natifs, vérification des signatures entrantes
|
|
- **Rate limiting** sur SMTP
|
|
- **Submission** avec **SCRAM-SHA-1** ou **PLAIN over TLS**
|
|
- **ACME** pour renouvellement auto des certificats
|
|
- **Logs structurés** exportables
|
|
- **Code simple à auditer** (~30k LOC)
|
|
|
|
## 📚 Ressources
|
|
|
|
- [Site officiel / docs](https://www.xmox.nl/)
|
|
- [Manuel](https://www.xmox.nl/docs)
|
|
- [GitHub mjl-/mox](https://github.com/mjl-/mox)
|
|
- [Annonce / blog](https://github.com/mjl-/mox/blob/master/doc/CHANGELOG.md)
|
|
|
|
## Pages Liées
|
|
- [[cat-email]] — Toutes les apps Email du catalogue
|
|
- [[app-stalwart]] — Concurrent direct en Rust
|
|
- [[app-mailcow]] — Plus accessible aux débutants
|
|
- [[app-mailu]] — Alternative plus simple
|
|
- [[securisation-home-lab]] — Sécuriser un serveur mail
|
|
- [[recettes-docker-compose]] — Templates Docker
|