diff --git a/hosts/skycam/default.nix b/hosts/skycam/default.nix index d8ce024..331038e 100644 --- a/hosts/skycam/default.nix +++ b/hosts/skycam/default.nix @@ -31,30 +31,50 @@ }; }; - systemd.services.skycam-archiver = - let - snapshotScript = pkgs.writeShellScript "skycam-archiver" '' - ${pkgs.lib.getExe pkgs.curl} -s -o "/var/lib/skycam-archiver/snapshot-$(date +%Y%m%d-%H%M%S).jpg" "http://skycam.mesh.vimium.net:1984/api/frame.jpeg?src=rpicam" - ''; - in - { - description = "Capture skycam snapshot and save with timestamp"; + systemd.services = { + daily-reboot = { + description = "Daily system reboot"; serviceConfig = { Type = "oneshot"; - StateDirectory = "skycam-archiver"; - ExecStart = "${snapshotScript}"; + ExecStart = "/run/current-system/sw/bin/reboot"; + Restart = "no"; }; - requires = [ "go2rtc.service" ]; - after = [ "go2rtc.service" ]; }; + skycam-archiver = + let + snapshotScript = pkgs.writeShellScript "skycam-archiver" '' + ${pkgs.lib.getExe pkgs.curl} -s -o "/var/lib/skycam-archiver/snapshot-$(date +%Y%m%d-%H%M%S).jpg" "http://skycam.mesh.vimium.net:1984/api/frame.jpeg?src=rpicam" + ''; + in + { + description = "Capture skycam snapshot and save with timestamp"; + serviceConfig = { + Type = "oneshot"; + StateDirectory = "skycam-archiver"; + ExecStart = "${snapshotScript}"; + }; + requires = [ "go2rtc.service" ]; + after = [ "go2rtc.service" ]; + }; + }; - systemd.timers.skycam-archiver = { - description = "Timer for capturing skycam snapshots every 30 minutes"; - wantedBy = [ "timers.target" ]; - timerConfig = { - OnBootSec = "5min"; - OnUnitActiveSec = "30min"; - Unit = "skycam-archiver.service"; + systemd.timers = { + daily-reboot = { + description = "Timer for daily system reboot"; + wantedBy = [ "timers.target" ]; + timerConfig = { + OnCalendar = "*-*-* 03:00:00"; + Persistent = false; + }; + }; + skycam-archiver = { + description = "Timer for capturing skycam snapshots every 30 minutes"; + wantedBy = [ "timers.target" ]; + timerConfig = { + OnBootSec = "5min"; + OnUnitActiveSec = "30min"; + Unit = "skycam-archiver.service"; + }; }; };