fix(anywhere): upstream les correctifs faits en local sur le VPS
- gerbil-wg0-ensure.nix : supprime wg0 sans adresse avant le demarrage de gerbil, sinon plus aucun trafic ne passe dans le tunnel newt. - vaultwarden-mcp commente : son secret vit dans secrets/tower.yml, illisible sur anywhere, ce qui cassait setupSecrets a chaque activation. - zitadel/steps retire : le secret etait chiffre en type:int, refuse par sops-install-secrets ; l'instance est deja initialisee.
This commit is contained in:
@@ -25,6 +25,7 @@
|
||||
# ../../services/oxicloud
|
||||
../../services/zitadel
|
||||
../../services/pangolin
|
||||
../../services/pangolin/gerbil-wg0-ensure.nix
|
||||
../../services/wireguard
|
||||
# ../../services/tailscale # desactive 26/09: exige le secret sops tailscale/auth_key (absent de secrets/anywhere.yml). Reactiver avec le mesh.
|
||||
../../services/headscale
|
||||
@@ -33,7 +34,7 @@
|
||||
../../services/stalwart
|
||||
../../services/droplify
|
||||
../../services/hermes
|
||||
../../services/vaultwarden-mcp
|
||||
# ../../services/vaultwarden-mcp # secret sops secrets/tower.yml, illisible sur ce VPS : cassait setupSecrets
|
||||
];
|
||||
|
||||
# Gateway hermes coupé sur le VPS : inerte (pas de token Matrix/Discord,
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
# Garantit que wg0, l'interface qui porte les clients newt, a bien son adresse
|
||||
# à chaque démarrage de gerbil.
|
||||
#
|
||||
# Pourquoi : gerbil n'applique l'adresse de wg0 que s'il crée l'interface
|
||||
# lui-même. Si une wg0 résiduelle existe au moment de son démarrage, il la
|
||||
# réutilise telle quelle (log "WireGuard interface wg0 already exists") et
|
||||
# l'interface reste sans adresse, donc sans route pour le sous-réseau des
|
||||
# clients newt (100.89.128.0/24). Les poignées de main WireGuard continuent de
|
||||
# passer, elles ne dépendent pas de l'adressage, mais plus aucun octet de
|
||||
# données ne circule : Traefik n'atteint plus aucune cible (504 sur tous les
|
||||
# domaines servis par le tunnel) et newt déclare la connexion morte toutes les
|
||||
# ~3 minutes.
|
||||
#
|
||||
# Le workaround amont de nixpkgs (ExecStartPost de gerbil, script
|
||||
# gerbil-wg0-fix-script) fait exactement ce nettoyage, mais une seule fois par
|
||||
# machine : il est gardé par le marqueur /var/lib/pangolin/config/wg0, présent
|
||||
# depuis avril, donc inerte depuis. Ici le contrôle est rejoué à chaque
|
||||
# démarrage, sans marqueur ni redémarrage de l'unité.
|
||||
{ pkgs, lib, ... }: {
|
||||
systemd.services.gerbil.serviceConfig.ExecStartPre = lib.mkForce (lib.getExe (pkgs.writeShellApplication {
|
||||
name = "gerbil-wg0-drop-unaddressed";
|
||||
runtimeInputs = [ pkgs.coreutils pkgs.iproute2 ];
|
||||
text = ''
|
||||
if ip link show wg0 >/dev/null 2>&1 && ! ip -4 addr show wg0 | grep -q 'inet '; then
|
||||
echo "wg0 présente sans adresse : suppression avant le démarrage de gerbil" >&2
|
||||
ip link delete wg0
|
||||
fi
|
||||
'';
|
||||
}));
|
||||
}
|
||||
@@ -13,12 +13,17 @@
|
||||
group = "keys";
|
||||
};
|
||||
|
||||
# Pour le mot de passe admin : le module NixOS n'a pas de stepsPasswordFile,
|
||||
# mais steps ne tourne qu'une seule fois (fresh install).
|
||||
# On l'exclut du nix store via un fichier steps séparé injecté par sops.
|
||||
"zitadel/steps" = {
|
||||
key = "zitadel_steps";
|
||||
};
|
||||
# "zitadel/steps" retiré le 12/10/2026 : le secret pointait sur
|
||||
# zitadel_steps, chiffré en type:int dans secrets/anywhere.yml, ce que
|
||||
# sops-install-secrets refuse ("the value of key '' is not a string"). Il
|
||||
# faisait donc échouer tout le setupSecrets du VPS, donc l'activation
|
||||
# entière : aucun secret n'était écrit (master key absente, zitadel en
|
||||
# boucle de crash) et le switch retournait en erreur.
|
||||
#
|
||||
# Un steps YAML ne sert qu'à la première initialisation d'une instance, or
|
||||
# celle-ci est déjà initialisée (base "zitadel" existante). Pour repartir
|
||||
# d'une instance neuve : chiffrer le YAML des steps en type:str et remettre
|
||||
# extraStepsPaths = [ config.sops.secrets."zitadel/steps".path ].
|
||||
};
|
||||
|
||||
users.users.zitadel.extraGroups = ["keys"];
|
||||
@@ -45,8 +50,7 @@
|
||||
enable = true;
|
||||
masterKeyFile = config.sops.secrets."zitadel/master_key".path;
|
||||
|
||||
# steps injecté via fichier sops plutôt qu'inline dans le nix store
|
||||
extraStepsPaths = [config.sops.secrets."zitadel/steps".path];
|
||||
# extraStepsPaths retiré : voir le commentaire sur sops.secrets ci-dessus.
|
||||
|
||||
settings = {
|
||||
Port = 2080;
|
||||
|
||||
Reference in New Issue
Block a user