From a7de9aee6cc145284665d7f7a347ad5fbc4d4e14 Mon Sep 17 00:00:00 2001 From: imterah Date: Tue, 13 May 2025 14:19:15 -0400 Subject: [PATCH] fix: Makes all Docker Compose automatically restart on failure --- hosts/andromeda/stacks/caddy/docker-compose.nix | 2 +- hosts/andromeda/stacks/forgejo/docker-compose.nix | 10 ++++++++-- .../andromeda/stacks/mcaptcha/docker-compose.nix | 15 ++++++++++++--- .../andromeda/stacks/portainer/docker-compose.nix | 2 +- hosts/andromeda/stacks/synapse/docker-compose.nix | 5 ++++- .../andromeda/stacks/terah.dev/docker-compose.nix | 2 +- hosts/andromeda/stacks/traefik/docker-compose.nix | 5 ++++- hosts/andromeda/stacks/traefik/docker-compose.yml | 12 ------------ 8 files changed, 31 insertions(+), 22 deletions(-) delete mode 100644 hosts/andromeda/stacks/traefik/docker-compose.yml diff --git a/hosts/andromeda/stacks/caddy/docker-compose.nix b/hosts/andromeda/stacks/caddy/docker-compose.nix index abcfa1d..ead012c 100644 --- a/hosts/andromeda/stacks/caddy/docker-compose.nix +++ b/hosts/andromeda/stacks/caddy/docker-compose.nix @@ -26,7 +26,7 @@ systemd.services."docker-caddy-web" = { serviceConfig = { - Restart = lib.mkOverride 90 "on-failure"; + Restart = lib.mkOverride 90 "always"; RestartMaxDelaySec = lib.mkOverride 90 "1m"; RestartSec = lib.mkOverride 90 "100ms"; RestartSteps = lib.mkOverride 90 9; diff --git a/hosts/andromeda/stacks/forgejo/docker-compose.nix b/hosts/andromeda/stacks/forgejo/docker-compose.nix index a761228..5dd2f67 100644 --- a/hosts/andromeda/stacks/forgejo/docker-compose.nix +++ b/hosts/andromeda/stacks/forgejo/docker-compose.nix @@ -26,7 +26,10 @@ systemd.services."docker-forgejo-db" = { serviceConfig = { - Restart = lib.mkOverride 90 "no"; + Restart = lib.mkOverride 90 "always"; + RestartMaxDelaySec = lib.mkOverride 90 "1m"; + RestartSec = lib.mkOverride 90 "100ms"; + RestartSteps = lib.mkOverride 90 9; }; after = [ "docker-network-forgejo_default.service" @@ -58,7 +61,10 @@ systemd.services."docker-forgejo-redis" = { serviceConfig = { - Restart = lib.mkOverride 90 "no"; + Restart = lib.mkOverride 90 "always"; + RestartMaxDelaySec = lib.mkOverride 90 "1m"; + RestartSec = lib.mkOverride 90 "100ms"; + RestartSteps = lib.mkOverride 90 9; }; after = [ "docker-network-forgejo_default.service" diff --git a/hosts/andromeda/stacks/mcaptcha/docker-compose.nix b/hosts/andromeda/stacks/mcaptcha/docker-compose.nix index 3676bfd..8157762 100644 --- a/hosts/andromeda/stacks/mcaptcha/docker-compose.nix +++ b/hosts/andromeda/stacks/mcaptcha/docker-compose.nix @@ -18,7 +18,10 @@ systemd.services."docker-mcaptcha-cache" = { serviceConfig = { - Restart = lib.mkOverride 90 "no"; + Restart = lib.mkOverride 90 "always"; + RestartMaxDelaySec = lib.mkOverride 90 "1m"; + RestartSec = lib.mkOverride 90 "100ms"; + RestartSteps = lib.mkOverride 90 9; }; after = [ "docker-network-mcaptcha_default.service" @@ -52,7 +55,10 @@ systemd.services."docker-mcaptcha-db" = { serviceConfig = { - Restart = lib.mkOverride 90 "no"; + Restart = lib.mkOverride 90 "always"; + RestartMaxDelaySec = lib.mkOverride 90 "1m"; + RestartSec = lib.mkOverride 90 "100ms"; + RestartSteps = lib.mkOverride 90 9; }; after = [ "docker-network-mcaptcha_default.service" @@ -114,7 +120,10 @@ systemd.services."docker-mcaptcha-mcaptcha" = { serviceConfig = { - Restart = lib.mkOverride 90 "no"; + Restart = lib.mkOverride 90 "always"; + RestartMaxDelaySec = lib.mkOverride 90 "1m"; + RestartSec = lib.mkOverride 90 "100ms"; + RestartSteps = lib.mkOverride 90 9; }; after = [ "docker-network-mcaptcha_default.service" diff --git a/hosts/andromeda/stacks/portainer/docker-compose.nix b/hosts/andromeda/stacks/portainer/docker-compose.nix index 72ff911..0729cc7 100644 --- a/hosts/andromeda/stacks/portainer/docker-compose.nix +++ b/hosts/andromeda/stacks/portainer/docker-compose.nix @@ -22,7 +22,7 @@ systemd.services."docker-portainer-portainer" = { serviceConfig = { - Restart = lib.mkOverride 90 "on-failure"; + Restart = lib.mkOverride 90 "always"; RestartMaxDelaySec = lib.mkOverride 90 "1m"; RestartSec = lib.mkOverride 90 "100ms"; RestartSteps = lib.mkOverride 90 9; diff --git a/hosts/andromeda/stacks/synapse/docker-compose.nix b/hosts/andromeda/stacks/synapse/docker-compose.nix index 4c0dee2..a59cbe4 100644 --- a/hosts/andromeda/stacks/synapse/docker-compose.nix +++ b/hosts/andromeda/stacks/synapse/docker-compose.nix @@ -26,7 +26,10 @@ systemd.services."docker-synapse-db" = { serviceConfig = { - Restart = lib.mkOverride 90 "no"; + Restart = lib.mkOverride 90 "always"; + RestartMaxDelaySec = lib.mkOverride 90 "1m"; + RestartSec = lib.mkOverride 90 "100ms"; + RestartSteps = lib.mkOverride 90 9; }; after = [ "docker-network-synapse_default.service" diff --git a/hosts/andromeda/stacks/terah.dev/docker-compose.nix b/hosts/andromeda/stacks/terah.dev/docker-compose.nix index 6af21cd..1824676 100644 --- a/hosts/andromeda/stacks/terah.dev/docker-compose.nix +++ b/hosts/andromeda/stacks/terah.dev/docker-compose.nix @@ -17,7 +17,7 @@ systemd.services."docker-terahdev-web" = { serviceConfig = { - Restart = lib.mkOverride 90 "on-failure"; + Restart = lib.mkOverride 90 "always"; RestartMaxDelaySec = lib.mkOverride 90 "1m"; RestartSec = lib.mkOverride 90 "100ms"; RestartSteps = lib.mkOverride 90 9; diff --git a/hosts/andromeda/stacks/traefik/docker-compose.nix b/hosts/andromeda/stacks/traefik/docker-compose.nix index ab1b51c..7df4c04 100644 --- a/hosts/andromeda/stacks/traefik/docker-compose.nix +++ b/hosts/andromeda/stacks/traefik/docker-compose.nix @@ -17,7 +17,10 @@ systemd.services."docker-traefik-reverse-proxy" = { serviceConfig = { - Restart = lib.mkOverride 90 "no"; + Restart = lib.mkOverride 90 "always"; + RestartMaxDelaySec = lib.mkOverride 90 "1m"; + RestartSec = lib.mkOverride 90 "100ms"; + RestartSteps = lib.mkOverride 90 9; }; partOf = [ "docker-compose-traefik-root.target" diff --git a/hosts/andromeda/stacks/traefik/docker-compose.yml b/hosts/andromeda/stacks/traefik/docker-compose.yml deleted file mode 100644 index 2f3092a..0000000 --- a/hosts/andromeda/stacks/traefik/docker-compose.yml +++ /dev/null @@ -1,12 +0,0 @@ -version: '3' - -services: - reverse-proxy: - # The official v3 Traefik docker image - image: traefik:v3.3 - # Enables the web UI and tells Traefik to listen to docker - command: --api.insecure=true --entryPoints.web.address=:8000 --providers.docker - network_mode: host - volumes: - # So that Traefik can listen to the Docker events - - /var/run/docker.sock:/var/run/docker.sock