From 21927558d3f9cf573834a2746efa4fd421bee189 Mon Sep 17 00:00:00 2001 From: Ben Sima Date: Fri, 13 Jun 2025 09:50:36 -0400 Subject: Add systemd service and timer for open-webui updates Introduce a new systemd service that pulls the latest open-webui Docker image and restarts the associated container. This ensures that the application is always running the most recent version. Additionally, a timer is added to schedule this update process to occur every Sunday at 3 AM, automating the maintenance of the service without manual intervention. This change enhances the reliability and freshness of the application deployment. --- Omni/Cloud/OpenWebui.nix | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) (limited to 'Omni') 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."; + }; } -- cgit v1.2.3