Compléter le README : messagerie, relais sortant, bases, sauvegardes (#2)
Quatre absences, toutes révélées en travaillant sur la messagerie le 27/09/2026. **messagerie.alpinux.org** n'y figurait pas, alors que le service tourne depuis le 22/09 — 256 abonnés, un worker chaque minute, trois boîtes relevées en IMAP. Elle rejoint le tableau des projets sortis, avec un avertissement : owni n'en est pas un clone, la mise à jour s'y fait par copie de fichiers, base d'abord. Quelqu'un qui appliquerait la méthode de `home` — un `git pull` sur le serveur — se tromperait. **Le relais sortant** n'était nulle part. Depuis les 25-26/09, tout le courrier de la machine passe par `mail.acemail.fr`, et l'IP qui parle aux destinataires n'est plus celle d'owni. Trois conséquences écrites : la réputation devient partagée, un plafond inconnu s'ajoute à celui de Postfix, et l'enveloppe VERP doit survivre au relais — vérifié, mais à revérifier après tout changement, la panne serait silencieuse. **Les bases** ne figuraient pas davantage : six applicatives, avec le service auquel chacune appartient. **Les sauvegardes** non plus. L'état y est écrit tel qu'il est, pas tel qu'on l'imagine : une base sur six, une seule copie, rien hors de la machine. C'est le genre d'information qu'on cherche le jour où l'on en a besoin, c'est-à-dire trop tard. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SFbwnJurBwTs7x7t93ecku
This commit is contained in:
parent
c6662fd496
commit
cf89adbe7d
1 changed files with 74 additions and 0 deletions
74
README.md
74
README.md
|
|
@ -29,9 +29,17 @@ Ces projets ont leur propre dossier, au même niveau que celui-ci — un dépôt
|
||||||
| `~/Projects/alpinux.dynamic` | dynamic.alpinux.org | [alpinux-dynamic](https://gitea.alpinux.org/alpinux.cedrica5l/alpinux-dynamic) |
|
| `~/Projects/alpinux.dynamic` | dynamic.alpinux.org | [alpinux-dynamic](https://gitea.alpinux.org/alpinux.cedrica5l/alpinux-dynamic) |
|
||||||
| `~/Projects/alpinux.static` | static.alpinux.org | [alpinux-static](https://gitea.alpinux.org/alpinux.cedrica5l/alpinux-static) |
|
| `~/Projects/alpinux.static` | static.alpinux.org | [alpinux-static](https://gitea.alpinux.org/alpinux.cedrica5l/alpinux-static) |
|
||||||
| `~/Projects/alpinux.gitea` | gitea.alpinux.org | [alpinux-gitea](https://gitea.alpinux.org/alpinux.cedrica5l/alpinux-gitea) |
|
| `~/Projects/alpinux.gitea` | gitea.alpinux.org | [alpinux-gitea](https://gitea.alpinux.org/alpinux.cedrica5l/alpinux-gitea) |
|
||||||
|
| `~/Projects/alpinux.messagerie` | messagerie.alpinux.org | [alpinux.messagerie](https://gitea.alpinux.org/alpinux.cedrica5l/alpinux.messagerie) |
|
||||||
|
|
||||||
Leurs procédures de déploiement sont décrites dans leur propre README.
|
Leurs procédures de déploiement sont décrites dans leur propre README.
|
||||||
|
|
||||||
|
> **La messagerie ne se déploie pas comme les autres.** owni n'en est pas un
|
||||||
|
> clone : la mise à jour s'y fait par **copie de fichiers, base d'abord, code
|
||||||
|
> ensuite**, et non par `git pull`. La procédure et les pièges qu'elle
|
||||||
|
> désamorce sont dans `docs/installation.md` de ce dépôt. En service depuis le
|
||||||
|
> 22/09/2026 — 256 abonnés, un worker appelé chaque minute, trois boîtes
|
||||||
|
> relevées en IMAP : ce qui casse casse pour de vrai.
|
||||||
|
|
||||||
Gitea : **https://gitea.alpinux.org/alpinux.cedrica5l**
|
Gitea : **https://gitea.alpinux.org/alpinux.cedrica5l**
|
||||||
ISPConfig : **https://owni.alpinux.org:8080**
|
ISPConfig : **https://owni.alpinux.org:8080**
|
||||||
AlpID (SSO) : **https://alpid.alpinux.org** — realm `master`
|
AlpID (SSO) : **https://alpid.alpinux.org** — realm `master`
|
||||||
|
|
@ -165,6 +173,72 @@ Cloud-init réseau désactivé : `/etc/cloud/cloud.cfg.d/99-disable-network-conf
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## Courrier sortant : tout passe par un relais
|
||||||
|
|
||||||
|
**Depuis les 25-26 septembre 2026**, Postfix ne remet plus directement aux
|
||||||
|
destinataires : `relayhost = [mail.acemail.fr]:587`, en soumission
|
||||||
|
authentifiée.
|
||||||
|
|
||||||
|
| | |
|
||||||
|
|---|---|
|
||||||
|
| **IP qui parle aux destinataires** | `176.9.125.188` (le relais), et non plus `51.91.79.148` |
|
||||||
|
| **SPF** | `v=spf1 a mx include:_spf.acemail.fr -all` |
|
||||||
|
| **DKIM** | signé par owni **avant** la remise au relais |
|
||||||
|
| **DMARC** | `p=quarantine`, `rua=mailto:postmaster@alpinux.org` |
|
||||||
|
|
||||||
|
Trois conséquences qu'il vaut mieux connaître avant de chercher ailleurs :
|
||||||
|
|
||||||
|
- **La réputation d'expéditeur n'est plus la nôtre seule.** Un rejet de plus
|
||||||
|
compte contre une IP partagée avec les autres clients de l'hébergeur.
|
||||||
|
- **Un plafond d'envoi s'ajoute à celui de Postfix**, celui du relais, et il
|
||||||
|
n'est pas connu à ce jour. Le franchir se verrait en `status=deferred` dans
|
||||||
|
`/var/log/mail.log`, avec un code `4.x.x` venu du relais.
|
||||||
|
- **L'enveloppe doit survivre au relais.** La messagerie utilise des adresses
|
||||||
|
de retour variables (`bounce+<référence>@alpinux.org`) pour identifier les
|
||||||
|
non-remises. Vérifié le 27/09 : le relais les préserve. À revérifier après
|
||||||
|
tout changement chez l'hébergeur — la panne serait silencieuse, les rebonds
|
||||||
|
cessant simplement d'arriver.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Bases de données
|
||||||
|
|
||||||
|
Six bases applicatives, déclarées dans ISPConfig, plus celles du système.
|
||||||
|
|
||||||
|
| Base | Service | Sauvegarde |
|
||||||
|
|---|---|---|
|
||||||
|
| `c1_messagerie_db` | messagerie.alpinux.org | quotidienne, **1 copie** |
|
||||||
|
| `c1dolibarr` | dolibarr.alpinux.org — fichier des adhérents | **aucune** |
|
||||||
|
| `c1gitea` | gitea.alpinux.org — tous les dépôts | **aucune** |
|
||||||
|
| `c1alpid` | alpid.alpinux.org — le SSO | **aucune** |
|
||||||
|
| `c1_installparty` | installparty.alpinux.org | **aucune** |
|
||||||
|
| `c1_evenements` | événements | **aucune** |
|
||||||
|
|
||||||
|
S'y ajoutent `dbispconfig`, `roundcube` et `phpmyadmin`.
|
||||||
|
|
||||||
|
`sudo mysql` passe par le socket unix, sans mot de passe.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Sauvegardes : ce qui est couvert, et ce qui ne l'est pas
|
||||||
|
|
||||||
|
État au 27/09/2026, à corriger — voir le ticket
|
||||||
|
[#1](https://gitea.alpinux.org/alpinux.cedrica5l/alpinux-owni/issues/1).
|
||||||
|
|
||||||
|
- **Une base sur six** est sauvegardée quotidiennement, la messagerie, dans
|
||||||
|
`/var/backup/web21/`. Les cinq autres ne le sont pas, Dolibarr et Gitea
|
||||||
|
compris.
|
||||||
|
- **Une seule copie conservée** (`backup_copies = 1`) : une corruption
|
||||||
|
remarquée deux jours plus tard n'est plus récupérable.
|
||||||
|
- **Les 14 sites sont à `backup_interval = none`** côté fichiers.
|
||||||
|
- **Tout reste sur owni.** Un disque perdu emporte les données et leurs
|
||||||
|
copies. Ce que contient `/var/backup/ispconfig/` ne concerne qu'ISPConfig
|
||||||
|
lui-même.
|
||||||
|
|
||||||
|
Une sauvegarde qu'on n'a jamais restaurée est une hypothèse, pas une garantie.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Infra
|
## Infra
|
||||||
|
|
||||||
`infra/` est un dépôt git indépendant ([alpinux-infra](https://gitea.alpinux.org/alpinux.cedrica5l/alpinux-infra)).
|
`infra/` est un dépôt git indépendant ([alpinux-infra](https://gitea.alpinux.org/alpinux.cedrica5l/alpinux-infra)).
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue