diff --git a/clanModules/auto-upgrade/README.md b/clanModules/auto-upgrade/README.md index 49b33c18b..238495cde 100644 --- a/clanModules/auto-upgrade/README.md +++ b/clanModules/auto-upgrade/README.md @@ -1,7 +1,7 @@ --- description = "Set up automatic upgrades" categories = ["System"] -features = [ "inventory" ] +features = [ "inventory", "deprecated" ] --- Whether to periodically upgrade NixOS to the latest version. If enabled, a diff --git a/clanServices/auto-upgrade/default.nix b/clanServices/auto-upgrade/default.nix new file mode 100644 index 000000000..b9c6645bc --- /dev/null +++ b/clanServices/auto-upgrade/default.nix @@ -0,0 +1,33 @@ +{ ... }: +{ + _class = "clan.service"; + manifest.name = "clan-core/auto-upgrade"; + manifest.description = "Automatic system upgrade for the Clan App"; + manifest.categories = [ "System" ]; + + roles.default = { + interface = + { lib, ... }: + { + options.flake = lib.mkOption { + type = lib.types.str; + description = "Flake reference"; + }; + }; + + perInstance = + { settings, ... }: + { + nixosModule = + { ... }: + { + system.autoUpgrade = { + inherit (settings) flake; + enable = true; + dates = "02:00"; + randomizedDelaySec = "45min"; + }; + }; + }; + }; +} diff --git a/clanServices/auto-upgrade/flake-module.nix b/clanServices/auto-upgrade/flake-module.nix new file mode 100644 index 000000000..3cef9470b --- /dev/null +++ b/clanServices/auto-upgrade/flake-module.nix @@ -0,0 +1,6 @@ +{ lib, ... }: +{ + clan.modules = { + auto-upgrade = lib.modules.importApply ./default.nix { }; + }; +} diff --git a/clanServices/flake-module.nix b/clanServices/flake-module.nix index e00a8c5a1..90b044c0f 100644 --- a/clanServices/flake-module.nix +++ b/clanServices/flake-module.nix @@ -3,6 +3,7 @@ imports = [ ./admin/flake-module.nix ./deltachat/flake-module.nix + ./auto-upgrade/flake-module.nix ./hello-world/flake-module.nix ./wifi/flake-module.nix ./borgbackup/flake-module.nix diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index f9d515f6e..bd5ac5b70 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -83,6 +83,7 @@ nav: - Clan Services: - Overview: reference/clanServices/index.md - reference/clanServices/admin.md + - reference/clanServices/auto-upgrade.md - reference/clanServices/borgbackup.md - reference/clanServices/deltachat.md - reference/clanServices/hello-world.md