summary refs log tree commit diff
path: root/services/dendrite.nix
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2024-12-07 18:16:47 +0100
committerMel <einebeere@gmail.com>2024-12-07 18:16:47 +0100
commitd1a88ffa2c8cf5d6dd690f9059c0da059e01b716 (patch)
treeb05d964e2e5c692ce36ec3471939f1f32ba54593 /services/dendrite.nix
parenta511e64fab20700fad50dedd1f966b4605e637b5 (diff)
downloadnetwork-d1a88ffa2c8cf5d6dd690f9059c0da059e01b716.tar.zst
network-d1a88ffa2c8cf5d6dd690f9059c0da059e01b716.zip
Convert most services to streamed images and foundation
Signed-off-by: Mel <einebeere@gmail.com>
Diffstat (limited to 'services/dendrite.nix')
-rw-r--r--services/dendrite.nix75
1 files changed, 12 insertions, 63 deletions
diff --git a/services/dendrite.nix b/services/dendrite.nix
index 2987762..dcd4dc9 100644
--- a/services/dendrite.nix
+++ b/services/dendrite.nix
@@ -1,4 +1,4 @@
-{ lib, pkgs, unstablePkgs, auxiliaryPkgs, ... }:
+{ pkgs, unstablePkgs, auxiliaryPkgs, ... }:
 
 let
   inherit (pkgs) dockerTools;
@@ -8,7 +8,7 @@ let
 
   dendrite = unstablePkgs.dendrite;
 
-  dendriteImage = dockerTools.buildLayeredImage {
+  dendriteImage = dockerTools.streamLayeredImage {
     name = "dendrite";
     tag = dendrite.version;
     fromImage = common.alpine.base;
@@ -18,84 +18,33 @@ let
 
 in
 {
-  virtualisation.oci-containers.containers = {
+  foundation.service.dendrite = {
     dendrite = {
-      imageFile = dendriteImage;
-      image = "dendrite:${dendrite.version}";
-      ports = [ 
-        "127.0.0.1:8008:8008"
-        "127.0.0.1:8448:8448"
+      image = dendriteImage;
+      ports = [
+        [ 8008 8008 ]
+        [ 8448 8448 ]
       ];
 
       volumes = [
-        "${dendriteDir}/config:/etc/dendrite"
-        "${dendriteDir}/data:/var/dendrite"
+        [ "${dendriteDir}/config" "/etc/dendrite" ]
+        [ "${dendriteDir}/data" "/var/dendrite" ]
       ];
 
       entrypoint = "${dendrite}/bin/dendrite";
       workdir = "/etc/dendrite";
-      
-      dependsOn = [ "dendrite-db" ];
-
-      extraOptions = [
-        "--network-alias=dendrite"
-        "--network=dendrite"
-      ];
     };
 
-    dendrite-db = {
-      inherit (common.postgres15) image imageFile;
+    db = {
+      fullImage = common.postgres15;
 
-      volumes = [ "${dendriteDir}/pgdata:/var/lib/postgresql/data" ];
+      volumes = [ [ "${dendriteDir}/pgdata" "/var/lib/postgresql/data" ] ];
 
       environment = {
         "POSTGRES_DATABASE" = "dendrite";
         "POSTGRES_USER" = "dendrite";
         "POSTGRES_PASSWORD" = "TFbQi2cHnzwe26";
       };
-
-      extraOptions = [
-        "--network-alias=db"
-        "--network=dendrite"
-      ];
-    };
-  };
-
-  systemd = let
-    root = "docker-dendrite-root";
-    network = "docker-dendrite-network";
-
-    containerService = {
-      serviceConfig = {
-        Restart = lib.mkOverride 90 "always";
-        RestartMaxDelaySec = lib.mkOverride 90 "1m";
-        RestartSec = lib.mkOverride 90 "100ms";
-        RestartSteps = lib.mkOverride 90 9;
-      };
-      after = [ "${network}.service" ]; requires = [ "${network}.service" ];
-      partOf = [ "${root}.target" ]; wantedBy = [ "${root}.target" ];
-    };
-  in {
-    services = {
-      "docker-dendrite-db" = containerService;
-      "docker-dendrite" = containerService;
-
-      "${network}" = {
-        path = [ pkgs.docker ];
-        serviceConfig = {
-          Type = "oneshot";
-          RemainAfterExit = true;
-          ExecStop = "docker network rm -f dendrite";
-        };
-        script = ''
-          docker network inspect dendrite || docker network create dendrite --driver=bridge
-        '';
-        partOf = [ "${root}.target" ]; wantedBy = [ "${root}.target" ];
-      };
-    };
-
-    targets = {
-      "${root}" = { wantedBy = [ "multi-user.target" ]; };
     };
   };
 }