diff --git a/flake.lock b/flake.lock
index c23fd3b..455a992 100644
--- a/flake.lock
+++ b/flake.lock
@@ -733,11 +733,11 @@
"openspec": "openspec_2"
},
"locked": {
- "lastModified": 1781945761,
- "narHash": "sha256-WOLjTr1BkFeZDjXmOv+5pSDDvS1tzpd74nirwWxWmps=",
+ "lastModified": 1782364199,
+ "narHash": "sha256-uPNb0Mpror1QVMnoxxSrc3538jcj4cUKfFN2oXAPxXk=",
"ref": "refs/heads/master",
- "rev": "b50dcf843b13eb6989bc3d9f0c490f509b6f533c",
- "revCount": 330,
+ "rev": "f0c028a62c54d37f5bd52fe0656a613d04acefd8",
+ "revCount": 331,
"type": "git",
"url": "https://code.m3ta.dev/m3tam3re/nixpkgs"
},
diff --git a/hosts/AZ-CLD-1/services/containers/default.nix b/hosts/AZ-CLD-1/services/containers/default.nix
index 8f091ca..787b308 100644
--- a/hosts/AZ-CLD-1/services/containers/default.nix
+++ b/hosts/AZ-CLD-1/services/containers/default.nix
@@ -5,7 +5,6 @@
./librechat.nix
./litellm.nix
./librechat-dev.nix
- # ./frappe-lms.nix
./netbird.nix
./portainer.nix
./zammad-hr.nix
diff --git a/hosts/AZ-PRM-1/configuration.nix b/hosts/AZ-PRM-1/configuration.nix
index dc6e963..f4bf6f5 100644
--- a/hosts/AZ-PRM-1/configuration.nix
+++ b/hosts/AZ-PRM-1/configuration.nix
@@ -20,6 +20,7 @@
environment.systemPackages = with pkgs; [
neovim
+ ghostty
git
python3
python3Packages.pysmb
diff --git a/hosts/AZ-PRM-1/services/containers/default.nix b/hosts/AZ-PRM-1/services/containers/default.nix
index e573e6c..d10b431 100644
--- a/hosts/AZ-PRM-1/services/containers/default.nix
+++ b/hosts/AZ-PRM-1/services/containers/default.nix
@@ -3,6 +3,7 @@
#./baserow.nix
./excalidraw.nix
./kestra.nix
+ ./online3dviewer.nix
./stirling-pdf.nix
];
system.activationScripts.createPodmanNetworkWeb = lib.mkAfter ''
diff --git a/hosts/AZ-PRM-1/services/containers/online3dviewer.nix b/hosts/AZ-PRM-1/services/containers/online3dviewer.nix
new file mode 100644
index 0000000..1ca287e
--- /dev/null
+++ b/hosts/AZ-PRM-1/services/containers/online3dviewer.nix
@@ -0,0 +1,31 @@
+{
+ config,
+ pkgs,
+ ...
+}: let
+ serviceName = "online3dviewer";
+ servicePort = config.m3ta.ports.get serviceName;
+in {
+ virtualisation.oci-containers.containers."${serviceName}" = {
+ image = "docker.io/nginxinc/nginx-unprivileged:stable-alpine";
+ ports = ["127.0.0.1:${toString servicePort}:8080"];
+ volumes = ["${pkgs.online3dviewer}:/usr/share/nginx/html:ro"];
+ extraOptions = [
+ "--ip=10.89.0.15"
+ "--network=web"
+ "--security-opt=no-new-privileges"
+ "--cap-drop=ALL"
+ ];
+ };
+
+ services.traefik.dynamicConfigOptions.http = {
+ services.${serviceName}.loadBalancer.servers = [{url = "http://localhost:${toString servicePort}/";}];
+
+ routers.${serviceName} = {
+ rule = "Host(`3dv.l.az-gruppe.com`)";
+ tls = {certResolver = "ionos";};
+ service = serviceName;
+ entrypoints = "websecure";
+ };
+ };
+}
diff --git a/hosts/common/ports.nix b/hosts/common/ports.nix
index d603623..a1aa8c1 100644
--- a/hosts/common/ports.nix
+++ b/hosts/common/ports.nix
@@ -56,6 +56,7 @@
stirling-pdf = 3032;
bpi = 3033;
excalidraw = 3034;
+ online3dviewer = 3035;
};
};
};
diff --git a/pkgs/default.nix b/pkgs/default.nix
index 9850520..0fbbbd6 100644
--- a/pkgs/default.nix
+++ b/pkgs/default.nix
@@ -1,4 +1,4 @@
{pkgs, ...}: {
# Define your custom packages here
- # pomodoro-timer = pkgs.callPackage ./pomodoro-timer {};
+ online3dviewer = pkgs.callPackage ./online3dviewer {};
}
diff --git a/pkgs/online3dviewer/default.nix b/pkgs/online3dviewer/default.nix
new file mode 100644
index 0000000..8842c01
--- /dev/null
+++ b/pkgs/online3dviewer/default.nix
@@ -0,0 +1,35 @@
+{
+ buildNpmPackage,
+ fetchFromGitHub,
+}:
+buildNpmPackage rec {
+ pname = "online3dviewer-site";
+ version = "0.18.0";
+
+ src = fetchFromGitHub {
+ owner = "kovacsv";
+ repo = "Online3DViewer";
+ rev = version;
+ hash = "sha256-D/EONwMc/9RFUs2AuzBDBsJiTdTsHfEDz5TlL9+JjI0=";
+ };
+
+ npmDepsHash = "sha256-Q7pYIE8aUCiwxIEMK41tMGVhJrqXoilBu/JP+oGPxi4=";
+ npmBuildScript = "build_website";
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/o3dv
+ cp -r website/index.html website/embed.html website/robots.txt $out/
+ cp -r website/assets website/info $out/
+ cp -r build/website/. $out/o3dv/
+
+ for html in $out/index.html $out/embed.html; do
+ substituteInPlace "$html" \
+ --replace '' '' \
+ --replace '' ''
+ done
+
+ runHook postInstall
+ '';
+}