diff --git a/system/hosts/mcp/containers.nix b/system/hosts/mcp/containers.nix index fd6517b..94cd9a7 100644 --- a/system/hosts/mcp/containers.nix +++ b/system/hosts/mcp/containers.nix @@ -3,6 +3,7 @@ { # Additional configuration imports = [ + ./containers/dm-companion.nix ./containers/freshrss.nix ./containers/gitea.nix ./containers/grafana.nix diff --git a/system/hosts/mcp/containers/dm-companion.nix b/system/hosts/mcp/containers/dm-companion.nix new file mode 100644 index 0000000..911c789 --- /dev/null +++ b/system/hosts/mcp/containers/dm-companion.nix @@ -0,0 +1,35 @@ +{ config, ... }: +let + inherit (import ./lib.nix config) mkContainer localHostRule havenisms; +in +{ + virtualisation.oci-containers.containers = { + dm-companion-pocketbase = + let + hostName = "dm-pocketbase"; + in + mkContainer { + inherit hostName; + image = "docker.havenisms.com/lazy-dm/pocketbase"; + port = 8080; + volumes = [ + "dm-companion:/pb/pb_data" + ]; + environment = { }; + extraLabels = { + "traefik.http.routers.${hostName}-api.rule" = + "PathPrefix(`/api`) && ${localHostRule "dm" havenisms}"; + "traefik.http.routers.${hostName}-api.service" = "${hostName}"; + }; + }; + dm-companion = mkContainer { + hostName = "dm"; + image = "docker.havenisms.com/lazy-dm/app"; + port = 80; + dependsOn = [ + "dm-companion-pocketbase" + ]; + volumes = [ ]; + }; + }; +} diff --git a/system/hosts/mcp/containers/lib.nix b/system/hosts/mcp/containers/lib.nix index 6f1fa73..13275f7 100644 --- a/system/hosts/mcp/containers/lib.nix +++ b/system/hosts/mcp/containers/lib.nix @@ -40,6 +40,7 @@ in user ? null, extraOptions ? [ ], oauthProxy ? false, + extraLabels ? { }, }: let routerRule = if public then hostRule hostName domain else localHostRule hostName domain; @@ -76,7 +77,8 @@ in "traefik.http.services.${hostName}.loadbalancer.server.port" = "${toString port}"; } // oauthLabels - // homepageLabels; + // homepageLabels + // extraLabels; }; # Creates a MariaDB container for a specific app. It should be safe to give