# serveur_artefacts **La source d'artefacts de l'écosystème** : un cache apt (apt-cacher-ng) qui sert à toute la flotte les paquets qu'elle installe, au lieu de les faire chercher chez Debian. ## Principe La forge héberge le **code**. Il manquait qui héberge les **binaires**. Pour poser une seule machine, un écosystème allait chercher chez six serveurs étrangers : `deb.debian.org`, `security.debian.org`, `packages.smallstep.com`, `apt.grafana.com`, `packages.icinga.com`, `codeberg.org`. Ce n'est pas théorique. `packages.smallstep.com` est intermittent — la même URL pend au premier essai et répond en 0,48 s au second — et a fait échouer un déploiement de quarante minutes sur la **première** machine. ## Ce que ce rôle couvre, et ce qui est couvert ailleurs | | | |---|---| | **dépôts apt** | ce rôle — un cache, servi à la flotte | | **téléchargements directs** (Forgejo, Keycloak, Nextcloud, oauth2-proxy, collections) | le **cache du contrôleur** : il télécharge une fois et pousse par SSH | Deux mécanismes parce que ce sont deux problèmes : on ne sert pas un dépôt apt par `scp`. ## Ce qu'il ne couvre pas encore **Les dépôts tiers en HTTPS** (Smallstep, Grafana, Icinga) continuent d'aller en direct. Les faire passer par le cache exigerait soit de casser le TLS de bout en bout, soit de réécrire leurs sources en `http://cache//…`. La seconde voie est propre et reste à faire. Le dire vaut mieux que le laisser croire. ## Le mode hors ligne, qui est aussi l'épreuve ```yaml serveur_artefacts_hors_ligne: true ``` Le cache cesse d'aller en amont : il sert ce qu'il détient et refuse le reste. C'est l'état d'un écosystème coupé du monde — et **le seul moyen de prouver que le cache sert vraiment**. Tant qu'internet répond, un `apt update` qui réussit ne dit pas d'où vient l'octet. ## Pourquoi le trafic est en clair, et pourquoi c'est correct L'intégrité d'un dépôt apt ne vient pas du transport mais des **signatures**, qu'`apt` vérifie de toute façon. Un intermédiaire ne peut pas altérer un paquet sans se faire prendre. Restreindre *qui* interroge le cache est le travail du pare-feu est-ouest, dérivé de `meta/flux.yml` — pas d'une authentification. ## Variables principales | Variable | Défaut | Rôle | |---|---|---| | `serveur_artefacts_port` | `3142` | port d'écoute | | `serveur_artefacts_cache` | `/var/cache/apt-cacher-ng` | où les paquets sont retenus | | `serveur_artefacts_expiration_jours` | `30` | rétention sans redemande | | `serveur_artefacts_hors_ligne` | `false` | couper l'amont (et éprouver) | ## Ce que ce rôle ne fait pas Il ne sauvegarde rien : un cache se reconstitue en le re-remplissant. Le sauvegarder reviendrait à sauvegarder les binaires de Debian.