diff --git a/hosts/nixcloud/services.d/dns.nix b/hosts/nixcloud/services.d/dns.nix index ed717ea..ceea95c 100644 --- a/hosts/nixcloud/services.d/dns.nix +++ b/hosts/nixcloud/services.d/dns.nix @@ -12,7 +12,7 @@ prefetching = true; }; ports = { - dns = 53; + dns = 5353; tls = 853; http = 4000; }; diff --git a/hosts/nixcloud/services.d/matrix.d/mautrix.nix b/hosts/nixcloud/services.d/matrix.d/mautrix.nix index bc70a3b..96c9cce 100644 --- a/hosts/nixcloud/services.d/matrix.d/mautrix.nix +++ b/hosts/nixcloud/services.d/matrix.d/mautrix.nix @@ -5,215 +5,67 @@ { # Containers - virtualisation.oci-containers.containers."matrix-mautrix-bluesky" = { - image = "dock.mau.dev/mautrix/bluesky:latest"; - volumes = [ - "/var/lib/mautrix/bluesky:/data:rw" - ]; - ports = [ - "127.0.0.4:29340:29340/tcp" - ]; - log-driver = "journald"; - extraOptions = [ - "--network-alias=mautrix-bluesky" - "--network=matrix_default" - ]; - }; - systemd.services."podman-matrix-mautrix-bluesky" = { - serviceConfig = { - Restart = lib.mkOverride 90 "always"; - }; - after = [ - "podman-network-matrix_default.service" - ]; - requires = [ - "podman-network-matrix_default.service" - ]; - partOf = [ - "podman-compose-matrix-root.target" - ]; - wantedBy = [ - "podman-compose-matrix-root.target" - ]; - }; - virtualisation.oci-containers.containers."matrix-mautrix-discord" = { - image = "dock.mau.dev/mautrix/discord:latest"; - volumes = [ - "/var/lib/mautrix/discord:/data:rw" - ]; - ports = [ - "127.0.0.4:29334:29334/tcp" - ]; - log-driver = "journald"; - extraOptions = [ - "--network-alias=mautrix-discord" - "--network=matrix_default" - ]; - }; - systemd.services."podman-matrix-mautrix-discord" = { - serviceConfig = { - Restart = lib.mkOverride 90 "always"; - }; - after = [ - "podman-network-matrix_default.service" - ]; - requires = [ - "podman-network-matrix_default.service" - ]; - partOf = [ - "podman-compose-matrix-root.target" - ]; - wantedBy = [ - "podman-compose-matrix-root.target" - ]; - }; - virtualisation.oci-containers.containers."matrix-mautrix-linkedin" = { - image = "dock.mau.dev/mautrix/linkedin:latest"; - volumes = [ - "/var/lib/mautrix/linkedin:/data:rw" - ]; - ports = [ - "127.0.0.4:29341:29341/tcp" - ]; - log-driver = "journald"; - extraOptions = [ - "--network-alias=mautrix-linkedin" - "--network=matrix_default" - ]; - }; - systemd.services."podman-matrix-mautrix-linkedin" = { - serviceConfig = { - Restart = lib.mkOverride 90 "always"; - }; - after = [ - "podman-network-matrix_default.service" - ]; - requires = [ - "podman-network-matrix_default.service" - ]; - partOf = [ - "podman-compose-matrix-root.target" - ]; - wantedBy = [ - "podman-compose-matrix-root.target" - ]; - }; - virtualisation.oci-containers.containers."matrix-mautrix-meta" = { - image = "dock.mau.dev/mautrix/meta:latest"; - volumes = [ - "/var/lib/mautrix/meta:/data:rw" - ]; - ports = [ - "127.0.0.4:29319:29319/tcp" - ]; - log-driver = "journald"; - extraOptions = [ - "--network-alias=mautrix-meta" - "--network=matrix_default" - ]; - }; - systemd.services."podman-matrix-mautrix-meta" = { - serviceConfig = { - Restart = lib.mkOverride 90 "always"; - }; - after = [ - "podman-network-matrix_default.service" - ]; - requires = [ - "podman-network-matrix_default.service" - ]; - partOf = [ - "podman-compose-matrix-root.target" - ]; - wantedBy = [ - "podman-compose-matrix-root.target" - ]; - }; - virtualisation.oci-containers.containers."matrix-mautrix-twitter" = { - image = "dock.mau.dev/mautrix/twitter:latest"; - volumes = [ - "/var/lib/mautrix/twitter:/data:rw" - ]; - ports = [ - "127.0.0.4:29327:29327/tcp" - ]; - log-driver = "journald"; - extraOptions = [ - "--network-alias=mautrix-twitter" - "--network=matrix_default" - ]; - }; - systemd.services."podman-matrix-mautrix-twitter" = { - serviceConfig = { - Restart = lib.mkOverride 90 "always"; - }; - after = [ - "podman-network-matrix_default.service" - ]; - requires = [ - "podman-network-matrix_default.service" - ]; - partOf = [ - "podman-compose-matrix-root.target" - ]; - wantedBy = [ - "podman-compose-matrix-root.target" - ]; - }; - virtualisation.oci-containers.containers."matrix-mautrix-whatsapp" = { - image = "dock.mau.dev/mautrix/whatsapp:latest"; - volumes = [ - "/var/lib/mautrix/whatsapp:/data:rw" - ]; - ports = [ - "127.0.0.4:29318:29318/tcp" - ]; - log-driver = "journald"; - extraOptions = [ - "--network-alias=mautrix-whatsapp" - "--network=matrix_default" - ]; - }; - systemd.services."podman-matrix-mautrix-whatsapp" = { - serviceConfig = { - Restart = lib.mkOverride 90 "always"; - }; - after = [ - "podman-network-matrix_default.service" - ]; - requires = [ - "podman-network-matrix_default.service" - ]; - partOf = [ - "podman-compose-matrix-root.target" - ]; - wantedBy = [ - "podman-compose-matrix-root.target" - ]; + virtualisation.oci-containers.containers = { + "matrix-mautrix-bluesky" = { + image = "dock.mau.dev/mautrix/bluesky:latest"; + volumes = [ + "/var/lib/mautrix/bluesky:/data:rw" + ]; + ports = [ + "127.0.0.4:29340:29340/tcp" + ]; + log-driver = "journald"; + }; + "matrix-mautrix-discord" = { + image = "dock.mau.dev/mautrix/discord:latest"; + volumes = [ + "/var/lib/mautrix/discord:/data:rw" + ]; + ports = [ + "127.0.0.4:29334:29334/tcp" + ]; + log-driver = "journald"; + }; + "matrix-mautrix-linkedin" = { + image = "dock.mau.dev/mautrix/linkedin:latest"; + volumes = [ + "/var/lib/mautrix/linkedin:/data:rw" + ]; + ports = [ + "127.0.0.4:29341:29341/tcp" + ]; + log-driver = "journald"; + }; + "matrix-mautrix-meta" = { + image = "dock.mau.dev/mautrix/meta:latest"; + volumes = [ + "/var/lib/mautrix/meta:/data:rw" + ]; + ports = [ + "127.0.0.4:29319:29319/tcp" + ]; + log-driver = "journald"; + }; + "matrix-mautrix-twitter" = { + image = "dock.mau.dev/mautrix/twitter:latest"; + volumes = [ + "/var/lib/mautrix/twitter:/data:rw" + ]; + ports = [ + "127.0.0.4:29327:29327/tcp" + ]; + log-driver = "journald"; + }; + "matrix-mautrix-whatsapp" = { + image = "dock.mau.dev/mautrix/whatsapp:latest"; + volumes = [ + "/var/lib/mautrix/whatsapp:/data:rw" + ]; + ports = [ + "127.0.0.4:29318:29318/tcp" + ]; + log-driver = "journald"; + }; }; - # Networks - systemd.services."podman-network-matrix_default" = { - path = [ pkgs.podman ]; - serviceConfig = { - Type = "oneshot"; - RemainAfterExit = true; - ExecStop = "podman network rm -f matrix_default"; - }; - script = '' - podman network inspect matrix_default || podman network create matrix_default - ''; - partOf = [ "podman-compose-matrix-root.target" ]; - wantedBy = [ "podman-compose-matrix-root.target" ]; - }; - - # Root service - # When started, this will automatically create all resources and start - # the containers. When stopped, this will teardown all resources. - systemd.targets."podman-compose-matrix-root" = { - unitConfig = { - Description = "Root target generated by compose2nix."; - }; - wantedBy = [ "multi-user.target" ]; - }; } diff --git a/hosts/nixcloud/services.d/minecraft.nix b/hosts/nixcloud/services.d/minecraft.nix index 223551b..1fda7f5 100644 --- a/hosts/nixcloud/services.d/minecraft.nix +++ b/hosts/nixcloud/services.d/minecraft.nix @@ -1,7 +1,6 @@ { config, pkgs, lib, ... }: { - virtualisation.oci-containers.containers."minecraft-server" = { image = "ghcr.io/graalvm/graalvm-community:25"; volumes = [ @@ -12,87 +11,10 @@ "24454:24454/udp" ]; extraOptions = [ - "--network-alias=minecraft-server" - "--network=minecraft_default" "--tty" "--interactive" ]; entrypoint = "/data/run.sh"; log-driver = "journald"; }; - - systemd.services."podman-minecraft-server" = { - serviceConfig = { - Restart = lib.mkOverride 90 "always"; - }; - after = [ - "podman-network-minecraft_default.service" - ]; - requires = [ - "podman-network-minecraft_default.service" - ]; - partOf = [ - "podman-compose-minecraft-root.target" - ]; - wantedBy = [ - "podman-compose-minecraft-root.target" - ]; - }; - - # Networks - systemd.services."podman-network-minecraft_default" = { - path = [ pkgs.podman ]; - serviceConfig = { - Type = "oneshot"; - RemainAfterExit = true; - ExecStop = "podman network rm -f minecraft_default"; - }; - script = '' - podman network inspect minecraft_default || podman network create minecraft_default - ''; - partOf = [ "podman-compose-minecraft-root.target" ]; - wantedBy = [ "podman-compose-minecraft-root.target" ]; - }; - - # Root service - # When started, this will automatically create all resources and start - # the containers. When stopped, this will teardown all resources. - systemd.targets."podman-compose-minecraft-root" = { - unitConfig = { - Description = "Root target"; - }; - wantedBy = [ "multi-user.target" ]; - }; - - #systemd.services.minecraft-container = { - # description = "Minecraft Server Container (GraalVM JVM 25)"; - # after = [ "network-online.target" ]; - # wants = [ "network-online.target" ]; - # serviceConfig = { - # ExecStart = '' - # ${pkgs.podman}/bin/podman run \ - # --rm \ - # --name minecraft-server \ - # -v /var/lib/minecraft:/data \ - # -p 25565:25565 \ - # -p 24454:24454/udp \ - # ghcr.io/graalvm/graalvm-community:25 \ - # /data/run.sh - # ''; - # ExecStop = "${pkgs.podman}/bin/podman stop minecraft-server"; - # Restart = "always"; - # RestartSec = "10s"; - # }; -# - # # Ensure the directory exists - # preStart = '' - # mkdir -p /var/lib/minecraft - # ''; - # wantedBy = [ "multi-user.target" ]; - #}; -# - ## Give Podman permission to access persistent storage - #systemd.tmpfiles.rules = [ - # "d /var/lib/minecraft 0755 root root" - #]; }