From 10b778fa8e5cf8dc0b2892a382705ec7dd19e082 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sascha=20K=C3=B6nig?= Date: Fri, 26 Jun 2026 09:19:34 +0200 Subject: [PATCH] + 3dviewer --- flake.lock | 8 ++--- .../AZ-CLD-1/services/containers/default.nix | 1 - hosts/AZ-PRM-1/configuration.nix | 1 + .../AZ-PRM-1/services/containers/default.nix | 1 + .../services/containers/online3dviewer.nix | 31 ++++++++++++++++ hosts/common/ports.nix | 1 + pkgs/default.nix | 2 +- pkgs/online3dviewer/default.nix | 35 +++++++++++++++++++ 8 files changed, 74 insertions(+), 6 deletions(-) create mode 100644 hosts/AZ-PRM-1/services/containers/online3dviewer.nix create mode 100644 pkgs/online3dviewer/default.nix 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 + ''; +}