From f15b8e44788fb7ca58ce7e0f3b9a73553baa0505 Mon Sep 17 00:00:00 2001 From: Don Harper Date: Mon, 17 Nov 2025 19:20:06 -0600 Subject: [PATCH] hosts | move primary systemd timers to server, and enable it on fred --- hosts/fred/default.nix | 2 + hosts/loki/default.nix | 3 +- hosts/server/default.nix | 1 + hosts/server/systemd-primary.nix | 70 ++++++++++++++++++++++++++++++++ 4 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 hosts/server/systemd-primary.nix diff --git a/hosts/fred/default.nix b/hosts/fred/default.nix index 59a5f05..29e24ea 100644 --- a/hosts/fred/default.nix +++ b/hosts/fred/default.nix @@ -26,4 +26,6 @@ }; }; }; + + primary.enable = true; } diff --git a/hosts/loki/default.nix b/hosts/loki/default.nix index 59f84c8..ec8cc08 100644 --- a/hosts/loki/default.nix +++ b/hosts/loki/default.nix @@ -26,6 +26,7 @@ auto-cpufreq.enable = true; gnome-calendar.enable = true; }; - primary.enable = true; + primary.enable = false; + ollama.enable = true; wm = {sway.enable = true;}; } diff --git a/hosts/server/default.nix b/hosts/server/default.nix index e1a883b..41563c7 100644 --- a/hosts/server/default.nix +++ b/hosts/server/default.nix @@ -35,6 +35,7 @@ in { ../vars.nix # ./tailscale.nix ./upgrade-diff.nix + ./systemd-primary.nix ../../modules/beszel-agent.nix ]; diff --git a/hosts/server/systemd-primary.nix b/hosts/server/systemd-primary.nix new file mode 100644 index 0000000..f7ec3f8 --- /dev/null +++ b/hosts/server/systemd-primary.nix @@ -0,0 +1,70 @@ +{ pkgs, lib, config, ... }: +with lib; +let cfg = config.primary; +in { + options.primary = { enable = mkEnableOption "is primary host"; }; + config = mkIf cfg.enable { + systemd = { + user = { + services = { + do_agenda = { + description = "Send today's agenda"; + unitConfig = { Type = "simple"; }; + serviceConfig = { + Type = "oneshot"; + Environment = + "PATH=/run/current-system/sw/bin:/etc/profiles/per-user/don/bin:/home/don/bin"; + ExecStart = "/home/don/bin/do_agenda"; + }; + }; + do_agenda_tomorrow = { + description = "Send tomorrow's agenda"; + unitConfig = { Type = "simple"; }; + serviceConfig = { + Type = "oneshot"; + Environment = + "PATH=/run/current-system/sw/bin:/etc/profiles/per-user/don/bin:/home/don/bin"; + ExecStart = "/home/don/bin/do_agenda_tomorrow"; + }; + }; + gosleep = { + description = "Adjust tailscale MTU based on location"; + unitConfig = { Type = "simple"; }; + serviceConfig = { + Type = "oneshot"; + Environment = + "PATH=/run/current-system/sw/bin:/etc/profiles/per-user/don/bin:/home/don/bin"; + ExecStart = "/home/don/bin/gosleep"; + }; + }; + }; + timers = { + do_agenda = { + wantedBy = [ "timers.target" ]; + partOf = [ "do_agenda.service" ]; + timerConfig = { + OnCalendar = "05:00"; + Unit = "do_agenda.service"; + }; + }; + do_agenda_tomorrow = { + wantedBy = [ "timers.target" ]; + partOf = [ "do_agenda_tomorrow.service" ]; + timerConfig = { + OnCalendar = "20:00"; + Unit = "do_agenda_tomorrow.service"; + }; + }; + gosleep = { + wantedBy = [ "timers.target" ]; + partOf = [ "gosleep.service" ]; + timerConfig = { + OnCalendar = "1m"; + Unit = "gosleep.service"; + }; + }; + }; + }; + }; + }; +}