fix(borgbackup): add network dependencies to onsite services

Fixes DNS resolution failures when persistent timers trigger backups
after system wake.

The NixOS borgbackup module adds network-online.target dependencies
to the timer when persistentTimer=true, but systemd timers don't pass
their dependencies to the services they trigger. This caused onsite
backups to start before the network was ready, resulting in "Could not
resolve hostname" errors.

Adding after/wants network-online.target directly to the service
ensures the backup waits for network availability regardless of how
it's triggered (timer or offsite's Wants= dependency).

Example failure (Oct 11, 07:43):
- Backup started at 07:43:43 (persistent timer caught up)
- DNS lookup failed: "Could not resolve hostname viridian.home.arpa"
- WiFi connected at 07:43:47 (4 seconds too late)

Applied to both fuchsia and viridian onsite backups.
This commit is contained in:
♥ Minnie ♥ 2025-10-11 08:06:00 +08:00
parent a276fdf53a
commit 4389500ccc
Signed by: jasmine
GPG key ID: 8563E358D4E8040E
2 changed files with 4 additions and 0 deletions

View file

@ -13,6 +13,8 @@ in {
# Configure service to wait for completion before marking as active # Configure service to wait for completion before marking as active
systemd.services."borgbackup-job-onsite" = { systemd.services."borgbackup-job-onsite" = {
after = [ "network-online.target" ];
wants = [ "network-online.target" ];
serviceConfig = { serviceConfig = {
Type = "oneshot"; Type = "oneshot";
}; };

View file

@ -22,6 +22,8 @@ in {
# Configure service to wait for completion before marking as active # Configure service to wait for completion before marking as active
systemd.services."borgbackup-job-onsite" = { systemd.services."borgbackup-job-onsite" = {
after = [ "network-online.target" ];
wants = [ "network-online.target" ];
serviceConfig = { serviceConfig = {
Type = "oneshot"; Type = "oneshot";
}; };