Automatic system upgrades: Difference between revisions

Klinger (talk | contribs)
m Added a sentence about garbage collection
Bittner (talk | contribs)
Remove reference to deprecated flag in text
 
(2 intermediate revisions by 2 users not shown)
Line 2: Line 2:


== Configuration ==
== Configuration ==
=== Channel-based systems (default) ===
Most NixOS installations use channels by default. If you're unsure which you're using, check with `nix-channel --list`. If that returns results, you're using channels.
For channel-based systems, use this configuration:
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
system.autoUpgrade = {
  enable = true;
  flags = [
    "--print-build-logs"
  ];
  dates = "02:00";
  randomizedDelaySec = "45min";
  allowReboot = false;  # Set to true if you want automatic reboots
};
</nowiki>}}
<strong>Important:</strong> Do not use flake-specific flags with channel-based systems, as they will cause the upgrade to fail silently.
=== Flake-based systems ===


To enable unattended automatic system updates on a flake-enabled host, add following part to your configuration:
To enable unattended automatic system updates on a flake-enabled host, add following part to your configuration:
Line 10: Line 32:
   flake = inputs.self.outPath;
   flake = inputs.self.outPath;
   flags = [
   flags = [
    "--update-input"
    "nixpkgs"
     "--print-build-logs"
     "--print-build-logs"
   ];
   ];
Line 18: Line 38:
};
};
</nowiki>}}
</nowiki>}}
== Monitoring ==


To see the status of the timer run
To see the status of the timer run
Line 29: Line 51:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
# systemctl status nixos-upgrade.service
# systemctl status nixos-upgrade.service
</syntaxhighlight>
To check if upgrades have been failing silently, examine the service logs:
<syntaxhighlight lang="bash">
# journalctl -u nixos-upgrade.service
</syntaxhighlight>
</syntaxhighlight>


[[Category:NixOS]]
[[Category:NixOS]]