{"id":13,"date":"2026-09-11T14:03:31","date_gmt":"2026-09-11T14:03:31","guid":{"rendered":"https:\/\/noteback.chabod.eu\/?p=13"},"modified":"2026-09-11T14:03:31","modified_gmt":"2026-09-11T14:03:31","slug":"doc-08-resultat-paliers-7a-7b","status":"publish","type":"post","link":"https:\/\/noteback.chabod.eu\/?p=13","title":{"rendered":"R\u00e9sultat des paliers 7a et 7b \u2014 11 septembre 2026"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><em>Document g\u00e9n\u00e9r\u00e9 automatiquement depuis <code>\/home\/jerome\/pub\/docs\/08-resultat-paliers-7a-7b.md<\/code> sur kimsufi3, le 11 September 2026 \u00e0 14:03. Toute modification faite ici sera \u00e9cras\u00e9e \u00e0 la prochaine r\u00e9g\u00e9n\u00e9ration : \u00e9diter le fichier source.<\/em><\/p>\n\n\n<p>Pr\u00e9paration de bascule sur k3, sans toucher au DNS ni \u00e0 Home Assistant.<\/p>\n<h2 id=\"ce-qui-est-valid\u00e9\">Ce qui est valid\u00e9<\/h2>\n<h3 id=\"la-m\u00e9moire-nest-plus-une-inconnue\">La m\u00e9moire n&#8217;est plus une inconnue<\/h3>\n<p>C&#8217;\u00e9tait le risque le plus s\u00e9rieux du projet : faire tenir mailcow et Nextcloud dans 3,8 Go.<\/p>\n<table>\n<tbody>\n<tr>\n<td>RAM utilis\u00e9e<\/td>\n<td><strong>1845 Mo \/ 3881 Mo<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Disponible<\/td>\n<td><strong>1901 Mo<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Swap<\/td>\n<td>293 Mo<\/td>\n<\/tr>\n<tr>\n<td>Dur\u00e9e de la pr\u00e9paration<\/td>\n<td>14 min 47<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Nuance : <code>clamd<\/code> et <code>sogo<\/code> tournent malgr\u00e9 <code>SKIP_*<\/code>, mais <strong>en veille<\/strong> \u2014 151 Mo au lieu de 1023, et 187 au lieu de 329. mailcow ne supprime pas ces conteneurs, il les endort. L&#8217;\u00e9conomie est d&#8217;environ 1 Go, non 1,4. Avec Home Assistant frais (~600 Mo), on serait \u00e0 ~2450 Mo, soit 1,4 Go encore libre.<\/p>\n<h3 id=\"les-donn\u00e9es-sont-exploitables\">Les donn\u00e9es sont exploitables<\/h3>\n<table>\n<thead>\n<tr>\n<th>Contr\u00f4le<\/th>\n<th>k3<\/th>\n<th>k4<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Domaines mailcow<\/td>\n<td><strong>4<\/strong><\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>Bo\u00eetes<\/td>\n<td><strong>12<\/strong><\/td>\n<td>12<\/td>\n<\/tr>\n<tr>\n<td>Alias<\/td>\n<td><strong>22<\/strong><\/td>\n<td>22<\/td>\n<\/tr>\n<tr>\n<td>Bo\u00eetes vues par dovecot<\/td>\n<td><strong>13<\/strong><\/td>\n<td>\u2014<\/td>\n<\/tr>\n<tr>\n<td>Cl\u00e9s redis (dont DKIM)<\/td>\n<td><strong>2402<\/strong><\/td>\n<td>2403<\/td>\n<\/tr>\n<tr>\n<td><code>DKIM_SELECTORS<\/code>\/<code>PRIV<\/code>\/<code>PUB<\/code><\/td>\n<td>pr\u00e9sentes<\/td>\n<td>pr\u00e9sentes<\/td>\n<\/tr>\n<tr>\n<td>Noms dans le store ACME<\/td>\n<td><strong>19<\/strong><\/td>\n<td>19<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><code>postfix<\/code> r\u00e9pond <code>220 mail.chabod.eu ESMTP Postcow<\/code>. Le dump SQL restaur\u00e9 donne une base identique \u00e0 celle de k4 : <strong>c&#8217;est la preuve que le dump vaut quelque chose<\/strong>, ce qui n&#8217;avait jamais \u00e9t\u00e9 \u00e9tabli.<\/p>\n<h3 id=\"k3-sert-d\u00e9j\u00e0-les-noms-dns-inchang\u00e9-palier-7b\">k3 sert d\u00e9j\u00e0 les noms, DNS inchang\u00e9 (palier 7b)<\/h3>\n<table>\n<thead>\n<tr>\n<th>Nom<\/th>\n<th>Code<\/th>\n<th>TLS<\/th>\n<th>Lecture<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>mail.chabod.eu<\/code><\/td>\n<td>200<\/td>\n<td>valide<\/td>\n<td>correct<\/td>\n<\/tr>\n<tr>\n<td><code>webmail.chabod.eu<\/code><\/td>\n<td>302<\/td>\n<td>valide<\/td>\n<td>redirection SOGo<\/td>\n<\/tr>\n<tr>\n<td><code>cloud.chabod.eu<\/code><\/td>\n<td>503<\/td>\n<td>valide<\/td>\n<td>Nextcloud en <strong>mode maintenance<\/strong> \u2014 attendu<\/td>\n<\/tr>\n<tr>\n<td><code>chabod.eu<\/code><\/td>\n<td>404<\/td>\n<td>valide<\/td>\n<td><code>legacy-web<\/code> hors p\u00e9rim\u00e8tre, pas de backend<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Certificat servi : <code>CN = mail.chabod.eu<\/code>, valide jusqu&#8217;au 12\/11\/2026.<\/p>\n<h2 id=\"quatre-d\u00e9fauts-trouv\u00e9s-qui-auraient-tu\u00e9-une-vraie-bascule\">Quatre d\u00e9fauts trouv\u00e9s, qui auraient tu\u00e9 une vraie bascule<\/h2>\n<table>\n<thead>\n<tr>\n<th><\/th>\n<th>D\u00e9faut<\/th>\n<th>Sympt\u00f4me<\/th>\n<th>Correction<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>1<\/td>\n<td><code>sleep 20<\/code> fixe avant restauration des dumps<\/td>\n<td><code>gzip: stdout: Broken pipe<\/code> \u2014 trompeur, le tube se fermait parce que MariaDB n&#8217;\u00e9tait pas pr\u00eate<\/td>\n<td>attente active jusqu&#8217;\u00e0 90 s, en interrogeant la base<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>Sept r\u00e9seaux <code>external<\/code> cr\u00e9\u00e9s sur k4 par des stacks hors p\u00e9rim\u00e8tre<\/td>\n<td><code>network nextcloud_bridge declared as external, but could not be found<\/code> \u2014 Traefik refuse de d\u00e9marrer<\/td>\n<td>extraction par <code>docker compose config<\/code> et cr\u00e9ation des manquants<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td><strong>Ma correction du n\u00b02<\/strong> a vol\u00e9 la plage de mailcow : <code>t_edge_note<\/code> avait pris <code>172.22.0.0\/16<\/code>, qui englobe le <code>172.22.1.0\/24<\/code> r\u00e9serv\u00e9<\/td>\n<td><code>invalid pool request: Pool overlaps with other one on this address space<\/code><\/td>\n<td>cr\u00e9er le r\u00e9seau de mailcow <strong>en premier<\/strong>, avec sa plage explicite<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>Store ACME jamais fusionn\u00e9 \u2014 annonc\u00e9, jamais impl\u00e9ment\u00e9. Et <code>acme\/<\/code>\/<code>logs\/<\/code> en <code>root:root<\/code> alors que Traefik tourne en uid 2000<\/td>\n<td>Traefik d\u00e9marre, se d\u00e9clare <code>healthy<\/code>, \u00e9coute sur 443, et sert un TLS <strong>invalide<\/strong>. <code>curl<\/code> rend un code 000, qui ressemble \u00e0 une panne r\u00e9seau<\/td>\n<td>fusion du store du pair + <code>chown 2000:2000<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Le troisi\u00e8me est le plus instructif : <strong>une correction non test\u00e9e en vaut une autre<\/strong>. Sans relancer le palier, la bascule aurait \u00e9chou\u00e9 autrement le jour venu.<\/p>\n<p>Le quatri\u00e8me est le plus dangereux : tous les indicateurs \u00e9taient au vert \u2014 conteneur <code>healthy<\/code>, port ouvert \u2014 et le service \u00e9tait pourtant inutilisable.<\/p>\n<h2 id=\"trois-faux-positifs-de-mes-propres-contr\u00f4les\">Trois faux positifs de mes propres contr\u00f4les<\/h2>\n<p>\u00c0 retenir, parce qu&#8217;ils font perdre du temps et de la confiance :<\/p>\n<ul>\n<li><strong><code>du -sh<\/code> en GiB compar\u00e9 \u00e0 <code>docker system df<\/code> en GB<\/strong> : j&#8217;ai annonc\u00e9 \u00ab il manque 50 Go \u00bb sur un transfert complet. 677 GiB = 727 GB.<\/li>\n<li><strong><code>redis-cli<\/code> sans authentification<\/strong> : <code>NOAUTH<\/code> pris pour une absence de cl\u00e9s DKIM, alors qu&#8217;elles \u00e9taient toutes l\u00e0.<\/li>\n<li><strong><code>grep '^ignoreip'<\/code> sur une d\u00e9claration \u00e0 continuation de ligne<\/strong> : lisait la premi\u00e8re ligne seulement et concluait que la liste blanche \u00e9tait absente.<\/li>\n<\/ul>\n<p>R\u00e8gle : mesurer en octets, s&#8217;authentifier, et v\u00e9rifier qu&#8217;un contr\u00f4le n\u00e9gatif n&#8217;est pas un contr\u00f4le cass\u00e9.<\/p>\n<h2 id=\"ce-qui-reste\">Ce qui reste<\/h2>\n<ul>\n<li><strong>Palier 7c<\/strong> : bascule r\u00e9elle courte, sur un cr\u00e9neau choisi.<\/li>\n<li><strong>Palier 7d<\/strong> : le retour, avec <code>--dry-run<\/code> relu avant d&#8217;armer le <code>--delete<\/code>.<\/li>\n<li>Phase 5 : <code>noteback.chabod.eu<\/code> et la publication de la documentation.<\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>Document g\u00e9n\u00e9r\u00e9 automatiquement depuis \/home\/jerome\/pub\/docs\/08-resultat-paliers-7a-7b.md sur kimsufi3, le 11 September 2026 \u00e0 14:03. Toute modification faite ici sera \u00e9cras\u00e9e \u00e0 la prochaine r\u00e9g\u00e9n\u00e9ration : \u00e9diter le fichier source. Pr\u00e9paration de bascule sur k3, sans toucher au DNS ni \u00e0 Home Assistant. Ce qui est valid\u00e9 La m\u00e9moire n&#8217;est plus une inconnue C&#8217;\u00e9tait le risque le [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-13","post","type-post","status-publish","format-standard","hentry","category-exploitation-dockersync"],"_links":{"self":[{"href":"https:\/\/noteback.chabod.eu\/index.php?rest_route=\/wp\/v2\/posts\/13","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/noteback.chabod.eu\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/noteback.chabod.eu\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/noteback.chabod.eu\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/noteback.chabod.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=13"}],"version-history":[{"count":0,"href":"https:\/\/noteback.chabod.eu\/index.php?rest_route=\/wp\/v2\/posts\/13\/revisions"}],"wp:attachment":[{"href":"https:\/\/noteback.chabod.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=13"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/noteback.chabod.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=13"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/noteback.chabod.eu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=13"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}