diff --git a/manyfold/README.md b/manyfold/README.md
index 4e1301a..2d0ada0 100644
--- a/manyfold/README.md
+++ b/manyfold/README.md
@@ -20,6 +20,7 @@ $ docker load < $(nix-build nix/docker.nix)
| `NO_OVERLAYFS` | `` | disable the filesystem overlay mechanism |
| `NO_DEFAULTDB` | `` | disable the default db (activates manyfold installer) |
| `NO_DELETEBIGFILES` | `` | disable deleting big files which are older than 5 days and bigger than ($currentyear-2020) MB's |
+| `NO_PACKAGEALL` | `` | don't package all experiences every hour to /usr/src/app/public/experiences.zip |
| `RCLONE_REMOTE` | `` | specify **single** rclone remote name (without semicolon) to mount |
| `UPLOAD_PATH` | `/mnt/models`| specify default library where user-files are uploaded (regular dir or mounted rclone path) |
@@ -36,7 +37,7 @@ $ docker load < $(nix-build nix/docker.nix)
The server-image will boot `manyfold/cli/manyfold.sh boot` and check for directory `/manyfold` (in the container).
When found, it uses the files in there instead (`/manyfold/usr/src/app/public/404.html` instead of `/usr/src/app/public/404.html` e.g.).
-# Remote network-drives (with models)
+# Federated (remote) network-drives
> Thanks to [rclone](https://rclone.org) network-drives automatically show up as manyfold libraries.
@@ -72,6 +73,7 @@ You can put scripts in there, which are fired when needed.
> Example: [manyfold/root/hook.d/daily/delete_big_files.sh] is triggered daily to cleanup files which exceed a certain age/size.
-Currently inotify events (`inotify_MODIFY` e.g.) are triggered when files in `/mnt/models` change.
+Currently inotify events (`inotify_MODIFY` e.g.) are triggered for local file-changes (`/mnt/models` e.g.).
+In theory, federated drives can still be reacted upon, but by integrating with XRForge's ActivityPub (**Follow** feature e.g.)
> Perhaps in the future this will also work for rclone remotes, by writing a `hourly`-script which scans them and fires `inotify_MODIFY` accordingly.
diff --git a/manyfold/cli/manyfold.sh b/manyfold/cli/manyfold.sh
index 8b57103..36fe945 100755
--- a/manyfold/cli/manyfold.sh
+++ b/manyfold/cli/manyfold.sh
@@ -77,7 +77,7 @@ start_hook_daemon(){
$0 infinite 86400 hook daily &
$0 infinite 3600 hook hourly &
# trigger hooks when files change in /mnt/models
- inotifywait -r -m /mnt/models | awk '$2 ~ /(CREATE|MODIFY|MOVED_TO)/ { system("'$0' hook inotify_"$2" "$1""$3) }' &
+ inotifywait -r -m /mnt/models | awk '$2 ~ /(CREATE|MODIFY|MOVED_TO|DELETE)/ { system("'$0' hook inotify_"$2" "$1""$3) }' &
}
@@ -148,7 +148,10 @@ set_modelpath(){
rename_app(){
echocolor "[$APPNAME]" "renaming manyfold to $APPNAME"
sed -i 's/title: Manyfold/title: '$APPNAME'/g' /usr/src/app/config/locales/*.yml
- sed -i 's|powered_by_html:.*|powered_by_html: Powered by XR Forge, Manyfold, XR Fragments and NIX|g' /usr/src/app/config/locales/*.yml
+ sed -i 's|powered_by_html:.*|powered_by_html: Radically opensource-powered by XR Forge, Manyfold, XR Fragments and NIX|g' /usr/src/app/config/locales/*.yml
+
+ sed -i 's|Models|Experiences|g' /usr/src/app/config/locales/*.yml
+ sed -i 's|Model|Experience|g' /usr/src/app/config/locales/*.yml
}
start_syslog(){
diff --git a/manyfold/root/hook.d/daily/package_experiences_zip.sh b/manyfold/root/hook.d/daily/package_experiences_zip.sh
new file mode 100755
index 0000000..d6d997a
--- /dev/null
+++ b/manyfold/root/hook.d/daily/package_experiences_zip.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+test -n "$NO_PACKAGEALL" && exit 0; # nothing to do
+cd /mnt/models
+{
+ echo "# XRForge experiences"
+ echo ""
+ echo "XRForge [$PUBLIC_HOSTNAME] snapshot made at $(date)"
+ echo ""
+ echo "# How to view"
+ echo ""
+ echo "You'll need a 3D app/website/viewer with:"
+ echo ""
+ echo "* support for multiple 3D fileformats"
+ echo "* XR Fragments support (at least href extras) to teleport between them"
+} > /mnt/models/README.md
+
+zip -r /usr/src/app/public/experiences.zip *
diff --git a/manyfold/root/hook.d/hourly/placeholder.sh b/manyfold/root/hook.d/hourly/placeholder.sh
deleted file mode 100755
index 30d871f..0000000
--- a/manyfold/root/hook.d/hourly/placeholder.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-echo $0 $*
diff --git a/manyfold/root/hook.d/inotify_MODIFY/package_experience.sh b/manyfold/root/hook.d/inotify_MODIFY/package_experience_zip.sh
similarity index 100%
rename from manyfold/root/hook.d/inotify_MODIFY/package_experience.sh
rename to manyfold/root/hook.d/inotify_MODIFY/package_experience_zip.sh
diff --git a/manyfold/root/hook.d/inotify_MODIFY/placeholder.sh b/manyfold/root/hook.d/inotify_MODIFY/placeholder.sh
deleted file mode 120000
index d264ad3..0000000
--- a/manyfold/root/hook.d/inotify_MODIFY/placeholder.sh
+++ /dev/null
@@ -1 +0,0 @@
-../hourly/placeholder.sh
\ No newline at end of file
diff --git a/nix/docker.nix b/nix/docker.nix
index 39c7b09..cbea10c 100644
--- a/nix/docker.nix
+++ b/nix/docker.nix
@@ -1,8 +1,21 @@
-{ pkgs ? import { }
- , pkgsLinux ? import { system = "x86_64-linux"; }
-}:
+#{ pkgs ? import { }
+# , pkgsLinux ? import { system = "x86_64-linux"; }
+#}:
+{} :
let
+ pkgs = import (builtins.fetchGit {
+ #name = "nixos-24.05";
+ #url = "https://github.com/nixos/nixpkgs/";
+ #ref = "refs/heads/nixos-unstable";
+ #rev = "ef99fa5c5ed624460217c31ac4271cfb5cb2502c";
+
+ name = "nixos-25.05";
+ url = "https://github.com/NixOS/nixpkgs";
+ rev = "b65adef5fe1f68db0bbd27dbb1d5f779805c2b8b";
+ #hash = "sha256-P+QnQOEh8n+4terom/1ZijQYgv4SnrFLfRzIcFzT1MI=";
+
+ }) {};
vars = import ./vars.nix;
# generate the reproducable blob below via: