From 48c09ce5ae607a805ce784ea1c266650375ea42b Mon Sep 17 00:00:00 2001 From: smayzy Date: Thu, 2 Oct 2025 21:10:19 +0200 Subject: [PATCH] add external facing services --- modules/nix/containers/nixos/traefik.nix | 137 +++++++++++++++++++++++ 1 file changed, 137 insertions(+) diff --git a/modules/nix/containers/nixos/traefik.nix b/modules/nix/containers/nixos/traefik.nix index f816edd..fdd4805 100644 --- a/modules/nix/containers/nixos/traefik.nix +++ b/modules/nix/containers/nixos/traefik.nix @@ -177,6 +177,97 @@ in service = "srv2-proxmox"; tls.certResolver = "cloudflare"; }; + + chat = { + rule = "Host(`chat.smayzy.ovh`)"; + entryPoints = [ "ext" "extSec" ]; + service = "chat"; + tls.certResolver = "cloudflare"; + }; + crafty = { + rule = "Host(`crafty.smayzy.ovh`)"; + entryPoints = [ "ext" "extSec" ]; + service = "crafty"; + tls.certResolver = "cloudflare"; + }; + cyberchef = { + rule = "Host(`cyberchef.smayzy.ovh`)"; + entryPoints = [ "ext" "extSec" ]; + service = "cyberchef"; + tls.certResolver = "cloudflare"; + }; + gitea = { + rule = "Host(`gitea.smayzy.ovh`)"; + entryPoints = [ "ext" "extSec" ]; + service = "gitea"; + tls.certResolver = "cloudflare"; + }; + jellyfin = { + rule = "Host(`jellyfin.smayzy.ovh`)"; + entryPoints = [ "ext" "extSec" ]; + service = "jellyfin"; + tls.certResolver = "cloudflare"; + }; + kuma = { + rule = "Host(`kuma.smayzy.ovh`)"; + entryPoints = [ "ext" "extSec" ]; + service = "kuma"; + tls.certResolver = "cloudflare"; + }; + kutt = { + rule = "Host(`kutt.smayzy.ovh`)"; + entryPoints = [ "ext" "extSec" ]; + service = "kutt"; + tls.certResolver = "cloudflare"; + }; + matrix = { + rule = "Host(`matrix.smayzy.ovh`)"; + entryPoints = [ "ext" "extSec" ]; + service = "matrix"; + tls.certResolver = "cloudflare"; + }; + mirror = { + rule = "Host(`mirror.smayzy.ovh`)"; + entryPoints = [ "ext" "extSec" ]; + service = "mirror"; + tls.certResolver = "cloudflare"; + }; + ombi-anime = { + rule = "Host(`ombi-anime.smayzy.ovh`)"; + entryPoints = [ "ext" "extSec" ]; + service = "ombi-anime"; + tls.certResolver = "cloudflare"; + }; + ombi = { + rule = "Host(`ombi.smayzy.ovh`)"; + entryPoints = [ "ext" "extSec" ]; + service = "ombi"; + tls.certResolver = "cloudflare"; + }; + share = { + rule = "Host(`share.smayzy.ovh`)"; + entryPoints = [ "ext" "extSec" ]; + service = "share"; + tls.certResolver = "cloudflare"; + }; + vault = { + rule = "Host(`vault.smayzy.ovh`)"; + entryPoints = [ "ext" "extSec" ]; + service = "vault"; + tls.certResolver = "cloudflare"; + }; + wordpress = { + rule = "Host(`wordpress.smayzy.ovh`)"; + entryPoints = [ "ext" "extSec" ]; + service = "wordpress"; + tls.certResolver = "cloudflare"; + }; + mail = { + rule = "Host(`autoconfig.smayzy.ovh`) || Host(`autodiscover.smayzy.ovh`) || Host(`mail.smayzy.ovh`) || Host(`mta-sts.mail.smayzy.ovh`) || Host(`mta-sts.smayzy.ovh`) || Host(`smayzy.ovh`) || Host(`www.smayzy.ovh`)"; + entryPoints = [ "ext" "extSec" ]; + service = "mail"; + tls.certResolver = "cloudflare"; + }; }; services = { "bazarr-anime".loadBalancer = { @@ -214,6 +305,52 @@ in servers = [ { url = "https://192.168.1.113:8006"; } ]; serversTransport = "srv2-proxmox"; }; + + "chat".loadBalancer = { + servers = [ { url = "http://192.168.1.114:80" ; } ]; + }; + "crafty".loadBalancer = { + servers = [ { url = "https://192.168.1.34:8443" ; } ]; + }; + "cyberchef".loadBalancer = { + servers = [ { url = "http://192.168.1.197:6900" ; } ]; + }; + "gitea".loadBalancer = { + servers = [ { url = "http://192.168.1.28:3000" ; } ]; + }; + "jellyfin".loadBalancer = { + servers = [ { url = "http://192.168.1.147:8096" ; } ]; + }; + "kuma".loadBalancer = { + servers = [ { url = "http://192.168.1.176:80" ; } ]; + }; + "kutt".loadBalancer = { + servers = [ { url = "http://192.168.1.132:80" ; } ]; + }; + "matrix".loadBalancer = { + servers = [ { url = "http://192.168.1.114:80" ; } ]; + }; + "mirror".loadBalancer = { + servers = [ { url = "http://192.168.1.185:80" ; } ]; + }; + "ombi-anime".loadBalancer = { + servers = [ { url = "http://192.168.1.147:3580" ; } ]; + }; + "ombi".loadBalancer = { + servers = [ { url = "http://192.168.1.147:3579" ; } ]; + }; + "share".loadBalancer = { + servers = [ { url = "http://192.168.1.98:80" ; } ]; + }; + "vault".loadBalancer = { + servers = [ { url = "http://192.168.1.160:80" ; } ]; + }; + "wordpress".loadBalancer = { + servers = [ { url = "http://192.168.1.16:80" ; } ]; + }; + "mail".loadBalancer = { + servers = [ { url = "https://192.168.1.128:443" ; } ]; + }; }; serversTransports = { srv1-proxmox = {