From 0c941501c05bfd86f59c6a2cad351ceac9ab9fec Mon Sep 17 00:00:00 2001 From: Petru Paler Date: Sat, 6 Jan 2024 08:03:18 +0000 Subject: [PATCH] HTTP caching for cloud Traefik. --- hosts/alo-cloud-1/reverse-proxy.nix | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/hosts/alo-cloud-1/reverse-proxy.nix b/hosts/alo-cloud-1/reverse-proxy.nix index e4d7847..48210db 100644 --- a/hosts/alo-cloud-1/reverse-proxy.nix +++ b/hosts/alo-cloud-1/reverse-proxy.nix @@ -55,6 +55,13 @@ address = "100.75.147.49:8080"; }; }; + + experimental.plugins = { + souin = { + moduleName = "github.com/darkweak/souin"; + version = "v1.6.44"; + }; + }; }; dynamicConfigOptions = { @@ -72,6 +79,13 @@ }; }; + middlewares = { + cache.plugin.souin = { + default_cache.ttl = "86400s"; + log_level = "info"; + }; + }; + routers = { api = { entryPoints = "tailscale"; @@ -83,51 +97,62 @@ entryPoints = "websecure"; rule = "Host(`wordpress.paler.net`)"; service = "alo-cluster"; + middlewares = [ "cache" ]; }; ines-paler-net = { entryPoints = "websecure"; rule = "Host(`ines.paler.net`)"; service = "alo-cluster"; + middlewares = [ "cache" ]; }; coachingfor-me = { entryPoints = "websecure"; rule = "Host(`coachingfor.me`)"; service = "alo-cluster"; + middlewares = [ "cache" ]; }; coachingfor-work = { entryPoints = "websecure"; rule = "Host(`coachingfor.work`)"; service = "alo-cluster"; + middlewares = [ "cache" ]; }; petru-ines-paler-net = { entryPoints = "websecure"; rule = "Host(`petru.ines.paler.net`)"; service = "alo-cluster"; + middlewares = [ "cache" ]; }; liam-paler-net = { entryPoints = "websecure"; rule = "Host(`liam.paler.net`)"; service = "alo-cluster"; + middlewares = [ "cache" ]; }; tomas-paler-net = { entryPoints = "websecure"; rule = "Host(`tomas.paler.net`)"; service = "alo-cluster"; + middlewares = [ "cache" ]; }; musictogethersilvercoast-pt = { entryPoints = "websecure"; rule = "Host(`musictogethersilvercoast.pt`)"; service = "alo-cluster"; + middlewares = [ "cache" ]; }; }; }; }; }; + + # to make the Souin plugin installable, cf. https://community.traefik.io/t/cant-use-plugins-error-mkdir-plugins-storage-permission-denied/16341/3 + systemd.services.traefik.serviceConfig.WorkingDirectory = "/var/lib/traefik"; }