diff options
Diffstat (limited to 'Omni/Cloud/OpenWebui.nix')
-rw-r--r-- | Omni/Cloud/OpenWebui.nix | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/Omni/Cloud/OpenWebui.nix b/Omni/Cloud/OpenWebui.nix index fe71608..fc662c2 100644 --- a/Omni/Cloud/OpenWebui.nix +++ b/Omni/Cloud/OpenWebui.nix @@ -1,4 +1,8 @@ -{config, ...}: let +{ + config, + pkgs, + ... +}: let ports = import ./Ports.nix; in { config.virtualisation.oci-containers.backend = "docker"; @@ -11,4 +15,29 @@ in { }; extraOptions = ["--network=host"]; }; + + # Add a service that updates and restarts the container + config.systemd.services."update-open-webui-aichat" = { + description = "pulling new open-webui image and restarting the service"; + wantedBy = ["multi-user.target"]; + after = ["network-online.target"]; + serviceConfig = { + Type = "oneshot"; + ExecStart = [ + # Pull the latest image + "${pkgs.docker}/bin/docker pull ghcr.io/open-webui/open-webui:main" + # Restart the container + "${pkgs.systemd}/bin/systemctl stop docker-open-webui-aichat" + "${pkgs.systemd}/bin/systemctl start docker-open-webui-aichat" + ]; + }; + }; + + # Add a timer that runs every Sunday at 3 AM + config.systemd.timers."update-open-webui-aichat" = { + wantedBy = ["timers.target"]; + timerConfig.OnCalendar = "Sun 03:00:00"; + timerConfig.Persistent = true; + unitConfig.Description = "Weekly timer for pulling new open-webui image and restarting service."; + }; } |