From 04d17561186dc7a7e8a8fa4fd87e3e5b6220a68f Mon Sep 17 00:00:00 2001 From: Dan McArdle Date: Sun, 27 Jul 2025 17:31:09 -0400 Subject: [PATCH] nixos/vaultwarden: Start after network-online.target On my system, Vaultwarden fails on boot with an AddrNotAvailable error, presumably because `services.vaultwarden.config.ROCKET_ADDRESS` is not available yet. Here's an example of the startup error in journalctl: ``` Jul 26 21:56:48 banana vaultwarden[2514]: Error: Rocket. Jul 26 21:56:48 banana vaultwarden[2514]: [CAUSE] Bind( Jul 26 21:56:48 banana vaultwarden[2514]: Os { Jul 26 21:56:48 banana vaultwarden[2514]: code: 99, Jul 26 21:56:48 banana vaultwarden[2514]: kind: AddrNotAvailable, Jul 26 21:56:48 banana vaultwarden[2514]: message: "Cannot assign requested address", Jul 26 21:56:48 banana vaultwarden[2514]: }, Jul 26 21:56:48 banana vaultwarden[2514]: ) ``` According to systemd docs [1], `network.target` has little meaning during startup, but `network-online.target` actually waits until an IP address is available. The docs recommend putting `network-online.target` in both `After=` and `Wants=`. [1]: https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/ --- nixos/modules/services/security/vaultwarden/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/security/vaultwarden/default.nix b/nixos/modules/services/security/vaultwarden/default.nix index 1f386951286b..b564cd283d4e 100644 --- a/nixos/modules/services/security/vaultwarden/default.nix +++ b/nixos/modules/services/security/vaultwarden/default.nix @@ -224,7 +224,8 @@ in users.groups.vaultwarden = { }; systemd.services.vaultwarden = { - after = [ "network.target" ]; + after = [ "network-online.target" ]; + wants = [ "network-online.target" ]; path = with pkgs; [ openssl ]; serviceConfig = { User = user;