arch-system/README.md

92 lines
4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Arch System
Configuration et outillage de reconstruction de mon poste **ArchASP**.
Ce dépôt couvre la partie système : paquets, services, stockage, énergie, démarrage, outils root et automatisations locales. Les dotfiles complets restent dans un dépôt séparé.
## Objectifs
- documenter l’état réel du poste ;
- reconstruire une installation Arch sans recopier aveuglément des UUID ou des secrets ;
- conserver les outils personnalisés nécessaires au quotidien ;
- distinguer les services permanents des services lancés à la demande ;
- préparer les migrations de disque Btrfs/Limine/Snapper/Secure Boot.
## Organisation
- `scripts/backup.sh` : actualise les inventaires et les configurations suivies ;
- `scripts/audit.sh` : contrôle rapide de l’état du système ;
- `scripts/deploy.sh` : restauration par étapes, sans écraser automatiquement `fstab` ni le boot ;
- `scripts/prepare-disk.sh` : préparation destructive d’un disque pour une nouvelle installation ;
- `inventory/` : informations générées sur le poste ;
- `manifests/` : services intentionnellement activés ;
- `rootfs/` : configurations et helpers installables en root ;
- `Dotfiles_ArchAP` : dépôt séparé pour les configurations, scripts et unités utilisateur ;
- `templates/` : fichiers nécessitant une adaptation à la machine ;
- `docs/` : procédures d’entretien, de restauration et de migration SSD.
La [référence de reconstruction](docs/reconstruction-baseline.md) distingue la cible
documentée de l’état observé sur ArchASP le 2 octobre 2026. Son
[suivi d’audit](docs/audits/2026-10-02-followup.md) précise les preuves, les
limites d’accès et les décisions encore ouvertes. Les inventaires du 26 juillet
restent des observations datées, pas une cible automatique de déploiement.
## Mise à jour du dépôt
**Changement de comportement :** sans argument, `backup.sh` crée désormais un
candidat d’export **privé hors du dépôt** pour revue. Il ne modifie plus
automatiquement les listes, configurations ou inventaires suivis par Git et
ne sauvegarde ni données personnelles ni clés. Sa présence locale ne prouve
pas une copie hors disque. Voir le [contrat d’export](docs/backup.md).
```bash
./scripts/check-repo.sh
./scripts/backup.sh --dry-run
# Après décision explicite de collecter sur la machine concernée :
./scripts/backup.sh
```
Relire le manifeste et **tous** les fichiers candidats avant toute reprise
manuelle dans Git ou publication : noms de services, métadonnées de stockage,
configurations et modèle Limine peuvent contenir des informations sensibles ou
propres à la machine. Aucun candidat n’est promu automatiquement en référence
de reconstruction.
## Restauration
Le déploiement est volontairement découpé :
```bash
./scripts/deploy.sh --packages
./scripts/deploy.sh --configs
./scripts/deploy.sh --tools
./scripts/deploy.sh --services
```
Pour tout appliquer :
```bash
./scripts/deploy.sh --all
```
`/etc/fstab`, `limine.conf`, les clés Secure Boot et les connexions réseau ne sont jamais restaurés automatiquement.
## Socle historiquement documenté
- Arch Linux, Sway/SwayFX et Wayland ;
- Btrfs avec `@`, `@home`, `@log`, `@pkg` et `@/.snapshots` ;
- Limine + limine-snapper-sync ;
- Secure Boot géré par `sbctl` ;
- zram 6 Gio ; l’affirmation ancienne « sans swapfile permanent » ne décrit
plus à elle seule le poste observé le 2 octobre 2026 ;
- TLP avec seuil de charge ASUS à 60 % ;
- Nextcloud, Proton Mail Bridge, VMware et Samba lancés uniquement à la demande.
Ce socle n’est pas une certification de réinstallation. Le poste observé possède
aussi des swaps supplémentaires, CUPS disponible au démarrage et nginx utilisé
localement pour Trainlog. Leur portée sur une future installation reste à
décider dans la référence de reconstruction.
## Sécurité
Le dépôt est public. Aucun mot de passe, token, clé privée, fichier `.netrc`, base SQLite, connexion NetworkManager ou configuration WireGuard ne doit y être ajouté.