diff --git a/containers/diamond/configuration.nix b/containers/diamond/configuration.nix
new file mode 100644
index 0000000..213738a
--- /dev/null
+++ b/containers/diamond/configuration.nix
@@ -0,0 +1,13 @@
+{ config, lib, ... }: {
+ system.stateVersion = "25.11";
+ networking.firewall.allowedTCPPorts = [ 8000 ];
+ networking.firewall.allowedUDPPorts = [ 8000 ];
+
+ services.vaultwarden = {
+ enable = true;
+ domain = "diamond.local.lava.moe";
+ config = {
+ DATA_FOLDER = "/persist/vaultwarden";
+ };
+ };
+}
diff --git a/containers/diamond/flake.lock b/containers/diamond/flake.lock
new file mode 100644
index 0000000..88ab73f
--- /dev/null
+++ b/containers/diamond/flake.lock
@@ -0,0 +1,27 @@
+{
+ "nodes": {
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1773282481,
+ "narHash": "sha256-b/GV2ysM8mKHhinse2wz+uP37epUrSE+sAKXy/xvBY4=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "fe416aaedd397cacb33a610b33d60ff2b431b127",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "nixpkgs": "nixpkgs"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
diff --git a/containers/diamond/flake.nix b/containers/diamond/flake.nix
new file mode 100644
index 0000000..d22af24
--- /dev/null
+++ b/containers/diamond/flake.nix
@@ -0,0 +1,48 @@
+{
+ inputs = {
+ nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
+ };
+ outputs = { nixpkgs, ... }:
+ let
+ name = "diamond";
+ subnetId = "4";
+
+ subnet = x: "fd0d:1::${subnetId}:${toString x}";
+ host = subnet 1;
+ client = subnet 2;
+
+ modules = [
+ ./configuration.nix
+ ];
+ in {
+ nixosConfigurations.container = nixpkgs.lib.nixosSystem {
+ inherit modules;
+ };
+ nixosModule = { ... }: {
+ services.nginx.virtualHosts."diamond.local.lava.moe" = {
+ useACMEHost = "lava.moe";
+ forceSSL = true;
+ locations."/".proxyPass = "http://[${client}]:8000";
+ };
+
+ systemd.tmpfiles.rules = [ "d /persist/containers/${name} 755 root users" ];
+ containers.${name} = {
+ autoStart = true;
+ privateNetwork = true;
+ hostAddress6 = host;
+ localAddress6 = client;
+ # privateUsers = "pick";
+ nixpkgs = nixpkgs;
+ ephemeral = true;
+ config = { imports = modules; };
+
+ bindMounts."persist" = {
+ hostPath = "/persist/containers/${name}";
+ mountPoint = "/persist";
+ isReadOnly = false;
+ };
+ # flake = "path:" + ./.;
+ };
+ };
+ };
+}
diff --git a/containers/diamond/templates/base/footer_content.tmpl b/containers/diamond/templates/base/footer_content.tmpl
new file mode 100644
index 0000000..a9238c3
--- /dev/null
+++ b/containers/diamond/templates/base/footer_content.tmpl
@@ -0,0 +1,31 @@
+
diff --git a/containers/diamond/templates/home.tmpl b/containers/diamond/templates/home.tmpl
new file mode 100644
index 0000000..d460caf
--- /dev/null
+++ b/containers/diamond/templates/home.tmpl
@@ -0,0 +1,19 @@
+{{template "base/head" .}}
+{{if not .IsSigned}}
+
+{{end}}
+
+
+
+

+
+
+
{{ctx.Locale.Tr "startpage.app_desc"}}
+
+
+
+ {{template "home_forgejo" .}}
+
+{{template "base/footer" .}}
diff --git a/flake.lock b/flake.lock
index 1484f08..5215cc5 100644
--- a/flake.lock
+++ b/flake.lock
@@ -86,6 +86,20 @@
},
"parent": []
},
+ "c-diamond": {
+ "inputs": {
+ "nixpkgs": "nixpkgs_7"
+ },
+ "locked": {
+ "path": "./containers/diamond",
+ "type": "path"
+ },
+ "original": {
+ "path": "./containers/diamond",
+ "type": "path"
+ },
+ "parent": []
+ },
"catppuccin": {
"inputs": {
"nixpkgs": "nixpkgs_5"
@@ -491,7 +505,7 @@
"nix-gaming": {
"inputs": {
"flake-parts": "flake-parts_2",
- "nixpkgs": "nixpkgs_7"
+ "nixpkgs": "nixpkgs_8"
},
"locked": {
"lastModified": 1770778188,
@@ -574,6 +588,22 @@
"type": "github"
}
},
+ "nixpkgs_10": {
+ "locked": {
+ "lastModified": 1770019141,
+ "narHash": "sha256-VKS4ZLNx4PNrABoB0L8KUpc1fE7CLpQXQs985tGfaCU=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "cb369ef2efd432b3cdf8622b0ffc0a97a02f3137",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
"nixpkgs_2": {
"locked": {
"lastModified": 1744536153,
@@ -655,6 +685,22 @@
}
},
"nixpkgs_7": {
+ "locked": {
+ "lastModified": 1773282481,
+ "narHash": "sha256-b/GV2ysM8mKHhinse2wz+uP37epUrSE+sAKXy/xvBY4=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "fe416aaedd397cacb33a610b33d60ff2b431b127",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_8": {
"locked": {
"lastModified": 1770537093,
"narHash": "sha256-pF1quXG5wsgtyuPOHcLfYg/ft/QMr8NnX0i6tW2187s=",
@@ -670,7 +716,7 @@
"type": "github"
}
},
- "nixpkgs_8": {
+ "nixpkgs_9": {
"locked": {
"lastModified": 1770562336,
"narHash": "sha256-ub1gpAONMFsT/GU2hV6ZWJjur8rJ6kKxdm9IlCT0j84=",
@@ -686,22 +732,6 @@
"type": "github"
}
},
- "nixpkgs_9": {
- "locked": {
- "lastModified": 1770019141,
- "narHash": "sha256-VKS4ZLNx4PNrABoB0L8KUpc1fE7CLpQXQs985tGfaCU=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "cb369ef2efd432b3cdf8622b0ffc0a97a02f3137",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
"nuscht-search": {
"inputs": {
"flake-utils": "flake-utils",
@@ -744,7 +774,7 @@
"pastel": {
"inputs": {
"flake-utils": "flake-utils_2",
- "nixpkgs": "nixpkgs_9",
+ "nixpkgs": "nixpkgs_10",
"pnpm2nix": "pnpm2nix"
},
"locked": {
@@ -807,6 +837,7 @@
"c-amethyst": "c-amethyst",
"c-beryllium": "c-beryllium",
"c-citrine": "c-citrine",
+ "c-diamond": "c-diamond",
"catppuccin": "catppuccin_2",
"catppuccin-palette": "catppuccin-palette",
"fast-syntax-highlighting": "fast-syntax-highlighting",
@@ -815,7 +846,7 @@
"neovim-nightly": "neovim-nightly",
"nix-gaming": "nix-gaming",
"nix-index-database": "nix-index-database",
- "nixpkgs": "nixpkgs_8",
+ "nixpkgs": "nixpkgs_9",
"nvim-treesitter": "nvim-treesitter",
"pastel": "pastel",
"pure": "pure",
diff --git a/flake.nix b/flake.nix
index f8866db..db68cbd 100644
--- a/flake.nix
+++ b/flake.nix
@@ -41,6 +41,7 @@
c-amethyst.url = "path:./containers/amethyst";
c-beryllium.url = "path:./containers/beryllium";
c-citrine.url = "path:./containers/citrine";
+ c-diamond.url = "path:./containers/diamond";
};
outputs = { self, agenix, catppuccin, nixpkgs, ... } @ inputs:
diff --git a/hosts/dandelion/default.nix b/hosts/dandelion/default.nix
index 3f87d87..e7c332a 100644
--- a/hosts/dandelion/default.nix
+++ b/hosts/dandelion/default.nix
@@ -27,6 +27,7 @@
inputs.c-amethyst.nixosModule
inputs.c-beryllium.nixosModule
inputs.c-citrine.nixosModule
+ inputs.c-diamond.nixosModule
./filesystem.nix
./kernel.nix