From 0298c62ec76bb5f68c083e81604956b05c845401 Mon Sep 17 00:00:00 2001
From: perf3ct  If you are having timezone issues and you are not using docker-compose,
   you may need to add a Note on timezones
 TZ environment variable with the TZ identifier of
-  your local timezone.
If you would prefer to run Trilium without having to run the Docker container
+  as root, you can use either of the provided Debian (default)
+  and Alpine-based images with the rootless tag. 
If you're unsure, stick to the “rootful” Docker image referenced above. +
+Below are some commands to pull the rootless images:
# For Debian-based image
+docker pull triliumnext/notes:rootless
+
+# For Alpine-based image
+docker pull triliumnext/notes:rootless-alpineRunning containers as non-root is a security best practice that reduces + the potential impact of container breakouts. If an attacker manages to + escape the container, they'll only have the permissions of the non-root + user instead of full root access to the host.
+The rootless Trilium image:
+trilium) during build time--user flagentrypoint script# Run with default UID/GID (1000:1000)
+docker-compose -f docker-compose.rootless.yml up -d
+
+# Run with custom UID/GID (e.g., match your host user)
+TRILIUM_UID=$(id -u) TRILIUM_GID=$(id -g) docker-compose -f docker-compose.rootless.yml up -d
+
+# Specify a custom data directory
+TRILIUM_DATA_DIR=/path/to/your/data TRILIUM_UID=$(id -u) TRILIUM_GID=$(id -g) docker-compose -f docker-compose.rootless.yml up -d
+# Build the image
+docker build -t triliumnext/notes:rootless -f apps/server/Dockerfile.rootless .
+
+# Run with default UID/GID (1000:1000)
+docker run -d --name trilium -p 8080:8080 -v ~/trilium-data:/home/node/trilium-data triliumnext/notes:rootless
+
+# Run with custom UID/GID
+docker run -d --name trilium -p 8080:8080 --user $(id -u):$(id -g) -v ~/trilium-data:/home/node/trilium-data triliumnext/notes:rootless
+TRILIUM_UID: UID to use for the container process (passed
+    to Docker's --user flag)TRILIUM_GID: GID to use for the container process (passed
+    to Docker's --user flag)TRILIUM_DATA_DIR: Path to the data directory inside the container
+    (default: /home/node/trilium-data)If you encounter permission issues with the data volume, ensure that:
+TRILIUM_UID and TRILIUM_GID to
+    match the owner of the host directory# For example, if your data directory is owned by UID 1001 and GID 1001:
+TRILIUM_UID=1001 TRILIUM_GID=1001 docker-compose -f docker-compose.rootless.yml up -d
+usermod/groupmod commandsTwo rootless variants are provided:
+apps/server/Dockerfile.rootless
+      apps/server/Dockerfile.alpine.rootless
+      If you would prefer, you can also customize the UID/GID at build time:
# For Debian-based image with custom UID/GID
+docker build --build-arg USER=myuser --build-arg UID=1001 --build-arg GID=1001 \
+  -t triliumnext/notes:rootless-custom -f apps/server/Dockerfile.rootless .
+
+# For Alpine-based image with custom UID/GID
+docker build --build-arg USER=myuser --build-arg UID=1001 --build-arg GID=1001 \
+  -t triliumnext/notes:alpine-rootless-custom -f apps/server/Dockerfile.alpine.rootless .
+Available build arguments:
+USER: Username for the non-root user (default: trilium)UID: User ID for the non-root user (default: 1000)GID: Group ID for the non-root user (default: 1000)\ No newline at end of file diff --git a/docs/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Docker.md b/docs/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Docker.md index 5384f5b87..5b4010e40 100644 --- a/docs/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Docker.md +++ b/docs/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Docker.md @@ -117,4 +117,120 @@ The `--user` directive is unsupported. Instead, use the `USER_UID` and `USER_GID ### Note on timezones -If you are having timezone issues and you are not using docker-compose, you may need to add a `TZ` environment variable with the [TZ identifier](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) of your local timezone. \ No newline at end of file +If you are having timezone issues and you are not using docker-compose, you may need to add a `TZ` environment variable with the [TZ identifier](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) of your local timezone. + +## Rootless Docker Image + +If you would prefer to run Trilium without having to run the Docker container as `root`, you can use either of the provided Debian (default) and Alpine-based images with the `rootless` tag. + +_**If you're unsure, stick to the “rootful” Docker image referenced above.**_ + +Below are some commands to pull the rootless images: + +```sh +# For Debian-based image +docker pull triliumnext/notes:rootless + +# For Alpine-based image +docker pull triliumnext/notes:rootless-alpine +``` + +### Why Rootless? + +Running containers as non-root is a security best practice that reduces the potential impact of container breakouts. If an attacker manages to escape the container, they'll only have the permissions of the non-root user instead of full root access to the host. + +### How It Works + +The rootless Trilium image: + +1. Creates a non-root user (`trilium`) during build time +2. Configures the application to run as this non-root user +3. Allows runtime customization of the user's UID/GID via Docker's `--user` flag +4. Does not require a separate Docker `entrypoint` script + +### Usage + +#### **Using docker-compose (Recommended)** + +``` +# Run with default UID/GID (1000:1000) +docker-compose -f docker-compose.rootless.yml up -d + +# Run with custom UID/GID (e.g., match your host user) +TRILIUM_UID=$(id -u) TRILIUM_GID=$(id -g) docker-compose -f docker-compose.rootless.yml up -d + +# Specify a custom data directory +TRILIUM_DATA_DIR=/path/to/your/data TRILIUM_UID=$(id -u) TRILIUM_GID=$(id -g) docker-compose -f docker-compose.rootless.yml up -d + +``` + +#### **Using Docker CLI** + +```sh +# Build the image +docker build -t triliumnext/notes:rootless -f apps/server/Dockerfile.rootless . + +# Run with default UID/GID (1000:1000) +docker run -d --name trilium -p 8080:8080 -v ~/trilium-data:/home/node/trilium-data triliumnext/notes:rootless + +# Run with custom UID/GID +docker run -d --name trilium -p 8080:8080 --user $(id -u):$(id -g) -v ~/trilium-data:/home/node/trilium-data triliumnext/notes:rootless + +``` + +### Environment Variables + +* `TRILIUM_UID`: UID to use for the container process (passed to Docker's `--user` flag) +* `TRILIUM_GID`: GID to use for the container process (passed to Docker's `--user` flag) +* `TRILIUM_DATA_DIR`: Path to the data directory inside the container (default: `/home/node/trilium-data`) + +### Volume Permissions + +If you encounter permission issues with the data volume, ensure that: + +1. The host directory has appropriate permissions for the UID/GID you're using +2. You're setting both `TRILIUM_UID` and `TRILIUM_GID` to match the owner of the host directory + +```sh +# For example, if your data directory is owned by UID 1001 and GID 1001: +TRILIUM_UID=1001 TRILIUM_GID=1001 docker-compose -f docker-compose.rootless.yml up -d + +``` + +### Considerations + +* The container starts with a specific UID/GID which can be customized at runtime +* Unlike the traditional setup, this approach does not use a separate entrypoint script with `usermod`/`groupmod` commands +* The container cannot modify its own UID/GID at runtime, which is a security feature of rootless containers + +### Available Rootless Images + +Two rootless variants are provided: + +1. **Debian-based** (default): Uses the Debian Bullseye Slim base image + * Dockerfile: `apps/server/Dockerfile.rootless` + * Recommended for most users +2. **Alpine-based**: Uses the Alpine base image for smaller size + * Dockerfile: `apps/server/Dockerfile.alpine.rootless` + * Smaller image size, but may have compatibility issues with some systems + +### Building Custom Rootless Images + +If you would prefer, you can also customize the UID/GID at build time: + +``` +# For Debian-based image with custom UID/GID +docker build --build-arg USER=myuser --build-arg UID=1001 --build-arg GID=1001 \ + -t triliumnext/notes:rootless-custom -f apps/server/Dockerfile.rootless . + +# For Alpine-based image with custom UID/GID +docker build --build-arg USER=myuser --build-arg UID=1001 --build-arg GID=1001 \ + -t triliumnext/notes:alpine-rootless-custom -f apps/server/Dockerfile.alpine.rootless . + +``` + +Available build arguments: + +* `USER`: Username for the non-root user (default: trilium) +* `UID`: User ID for the non-root user (default: 1000) +* `GID`: Group ID for the non-root user (default: 1000) \ No newline at end of file From d73a289a05d0b3dfb8e64207e96d668ba788c09e Mon Sep 17 00:00:00 2001 From: perfectra1n
TZ environment variable with the TZ identifier of
   your local timezone.
 If you would prefer to run Trilium without having to run the Docker container
   as root, you can use either of the provided Debian (default)
   and Alpine-based images with the rootless tag. 
If you're unsure, stick to the “rootful” Docker image referenced above.
-Below are some commands to pull the rootless images:
# For Debian-based image
+Below are some commands to pull the rootless images:
# For Debian-based image
 docker pull triliumnext/notes:rootless
 
 # For Alpine-based image
@@ -111,14 +116,14 @@ TRILIUM_UID=$(id -u) TRILIUM_GID=$(id -g) docker-compose -f docker-compose.rootl
 # Specify a custom data directory
 TRILIUM_DATA_DIR=/path/to/your/data TRILIUM_UID=$(id -u) TRILIUM_GID=$(id -g) docker-compose -f docker-compose.rootless.yml up -d
 
-Using Docker CLI
# Build the image
+Using Docker CLI
# Build the image
 docker build -t triliumnext/notes:rootless -f apps/server/Dockerfile.rootless .
 
 # Run with default UID/GID (1000:1000)
-docker run -d --name trilium -p 8080:8080 -v ~/trilium-data:/home/node/trilium-data triliumnext/notes:rootless
+docker run -d --name trilium -p 8080:8080 -v ~/trilium-data:/home/trilium/trilium-data triliumnext/notes:rootless
 
 # Run with custom UID/GID
-docker run -d --name trilium -p 8080:8080 --user $(id -u):$(id -g) -v ~/trilium-data:/home/node/trilium-data triliumnext/notes:rootless
+docker run -d --name trilium -p 8080:8080 --user $(id -u):$(id -g) -v ~/trilium-data:/home/trilium/trilium-data triliumnext/notes:rootless
 
 Environment Variables
 
@@ -136,7 +141,7 @@ docker run -d --name trilium -p 8080:8080 --user $(id -u):$(id -g) -v ~/trilium-
     using
   - You're setting both TRILIUM_UIDandTRILIUM_GIDto
     match the owner of the host directory
-
# For example, if your data directory is owned by UID 1001 and GID 1001:
+# For example, if your data directory is owned by UID 1001 and GID 1001:
 TRILIUM_UID=1001 TRILIUM_GID=1001 docker-compose -f docker-compose.rootless.yml up -d
 
 Considerations
@@ -182,5 +187,4 @@ docker build --build-arg USER=myuser --build-arg UID=1001 --build-arg GID=1001 \
   USER: Username for the non-root user (default: trilium)UID: User ID for the non-root user (default: 1000)GID: Group ID for the non-root user (default: 1000) 
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/User Guide/!!!meta.json b/docs/User Guide/!!!meta.json
index 3acbe598c..f3594bb61 100644
--- a/docs/User Guide/!!!meta.json	
+++ b/docs/User Guide/!!!meta.json	
@@ -8521,191 +8521,184 @@
                                         {
                                             "type": "relation",
                                             "name": "internalLink",
-                                            "value": "_help_YKWqdJhzi2VY",
+                                            "value": "OFXdgB2nNk1F",
                                             "isInheritable": false,
                                             "position": 50
                                         },
                                         {
                                             "type": "relation",
                                             "name": "internalLink",
-                                            "value": "OFXdgB2nNk1F",
+                                            "value": "BlN9DFI679QC",
                                             "isInheritable": false,
                                             "position": 60
                                         },
                                         {
                                             "type": "relation",
                                             "name": "internalLink",
-                                            "value": "BlN9DFI679QC",
+                                            "value": "vZWERwf8U3nx",
                                             "isInheritable": false,
                                             "position": 70
                                         },
                                         {
                                             "type": "relation",
                                             "name": "internalLink",
-                                            "value": "vZWERwf8U3nx",
+                                            "value": "oPVyFC7WL2Lp",
                                             "isInheritable": false,
                                             "position": 80
                                         },
                                         {
                                             "type": "relation",
                                             "name": "internalLink",
-                                            "value": "oPVyFC7WL2Lp",
+                                            "value": "GPERMystNGTB",
                                             "isInheritable": false,
                                             "position": 90
                                         },
                                         {
                                             "type": "relation",
                                             "name": "internalLink",
-                                            "value": "GPERMystNGTB",
+                                            "value": "CoFPLs3dRlXc",
                                             "isInheritable": false,
                                             "position": 100
                                         },
                                         {
                                             "type": "relation",
                                             "name": "internalLink",
-                                            "value": "CoFPLs3dRlXc",
+                                            "value": "AlhDUqhENtH7",
                                             "isInheritable": false,
                                             "position": 110
                                         },
                                         {
                                             "type": "relation",
                                             "name": "internalLink",
-                                            "value": "AlhDUqhENtH7",
+                                            "value": "pKK96zzmvBGf",
                                             "isInheritable": false,
                                             "position": 120
                                         },
                                         {
                                             "type": "relation",
                                             "name": "internalLink",
-                                            "value": "pKK96zzmvBGf",
+                                            "value": "WFGzWeUK6arS",
                                             "isInheritable": false,
                                             "position": 130
                                         },
                                         {
                                             "type": "relation",
                                             "name": "internalLink",
-                                            "value": "WFGzWeUK6arS",
+                                            "value": "0ESUbbAxVnoK",
                                             "isInheritable": false,
                                             "position": 140
                                         },
                                         {
                                             "type": "relation",
                                             "name": "internalLink",
-                                            "value": "0ESUbbAxVnoK",
+                                            "value": "J5Ex1ZrMbyJ6",
                                             "isInheritable": false,
                                             "position": 150
                                         },
                                         {
                                             "type": "relation",
                                             "name": "internalLink",
-                                            "value": "J5Ex1ZrMbyJ6",
+                                            "value": "d3fAXQ2diepH",
                                             "isInheritable": false,
                                             "position": 160
                                         },
                                         {
                                             "type": "relation",
                                             "name": "internalLink",
-                                            "value": "d3fAXQ2diepH",
+                                            "value": "MgibgPcfeuGz",
                                             "isInheritable": false,
                                             "position": 170
                                         },
                                         {
                                             "type": "relation",
                                             "name": "internalLink",
-                                            "value": "MgibgPcfeuGz",
+                                            "value": "m523cpzocqaD",
                                             "isInheritable": false,
                                             "position": 180
                                         },
                                         {
                                             "type": "relation",
                                             "name": "internalLink",
-                                            "value": "m523cpzocqaD",
+                                            "value": "9sRHySam5fXb",
                                             "isInheritable": false,
                                             "position": 190
                                         },
                                         {
                                             "type": "relation",
                                             "name": "internalLink",
-                                            "value": "9sRHySam5fXb",
+                                            "value": "u3YFHC9tQlpm",
                                             "isInheritable": false,
                                             "position": 200
                                         },
                                         {
                                             "type": "relation",
                                             "name": "internalLink",
-                                            "value": "u3YFHC9tQlpm",
+                                            "value": "R9pX4DGra2Vt",
                                             "isInheritable": false,
                                             "position": 210
                                         },
                                         {
                                             "type": "relation",
                                             "name": "internalLink",
-                                            "value": "R9pX4DGra2Vt",
+                                            "value": "iRwzGnHPzonm",
                                             "isInheritable": false,
                                             "position": 220
                                         },
                                         {
                                             "type": "relation",
                                             "name": "internalLink",
-                                            "value": "iRwzGnHPzonm",
+                                            "value": "BCkXAVs63Ttv",
                                             "isInheritable": false,
                                             "position": 230
                                         },
                                         {
                                             "type": "relation",
                                             "name": "internalLink",
-                                            "value": "BCkXAVs63Ttv",
+                                            "value": "47ZrP6FNuoG8",
                                             "isInheritable": false,
                                             "position": 240
                                         },
                                         {
                                             "type": "relation",
                                             "name": "internalLink",
-                                            "value": "47ZrP6FNuoG8",
+                                            "value": "KC1HB96bqqHX",
                                             "isInheritable": false,
                                             "position": 250
                                         },
                                         {
                                             "type": "relation",
                                             "name": "internalLink",
-                                            "value": "KC1HB96bqqHX",
+                                            "value": "BFvAtE74rbP6",
                                             "isInheritable": false,
                                             "position": 260
                                         },
                                         {
                                             "type": "relation",
                                             "name": "internalLink",
-                                            "value": "BFvAtE74rbP6",
+                                            "value": "bdUJEHsAPYQR",
                                             "isInheritable": false,
                                             "position": 270
                                         },
                                         {
                                             "type": "relation",
                                             "name": "internalLink",
-                                            "value": "bdUJEHsAPYQR",
+                                            "value": "AxshuNRegLAv",
                                             "isInheritable": false,
                                             "position": 280
                                         },
                                         {
                                             "type": "relation",
                                             "name": "internalLink",
-                                            "value": "AxshuNRegLAv",
+                                            "value": "81SGnPGMk7Xc",
                                             "isInheritable": false,
                                             "position": 290
                                         },
-                                        {
-                                            "type": "relation",
-                                            "name": "internalLink",
-                                            "value": "81SGnPGMk7Xc",
-                                            "isInheritable": false,
-                                            "position": 300
-                                        },
                                         {
                                             "type": "relation",
                                             "name": "internalLink",
                                             "value": "xWbu3jpNWapp",
                                             "isInheritable": false,
-                                            "position": 310
+                                            "position": 300
                                         },
                                         {
                                             "type": "label",
diff --git a/docs/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Docker.md b/docs/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Docker.md
index 5b4010e40..0f711f89e 100644
--- a/docs/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Docker.md	
+++ b/docs/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Docker.md	
@@ -121,13 +121,16 @@ If you are having timezone issues and you are not using docker-compose, you may
 
 ## Rootless Docker Image
 
+> [!NOTE]
+> Please keep in mind that the data directory is at `/home/trilium/trilium-data` instead of the typical `/home/node/trilium-data`. This is because a new user is created and used to run Trilium within the rootless containers.
+
 If you would prefer to run Trilium without having to run the Docker container as `root`, you can use either of the provided Debian (default) and Alpine-based images with the `rootless` tag. 
 
 _**If you're unsure, stick to the “rootful” Docker image referenced above.**_
 
 Below are some commands to pull the rootless images:
 
-```sh
+```
 # For Debian-based image
 docker pull triliumnext/notes:rootless
 
@@ -166,15 +169,15 @@ TRILIUM_DATA_DIR=/path/to/your/data TRILIUM_UID=$(id -u) TRILIUM_GID=$(id -g) do
 
 #### **Using Docker CLI**
 
-```sh
+```
 # Build the image
 docker build -t triliumnext/notes:rootless -f apps/server/Dockerfile.rootless .
 
 # Run with default UID/GID (1000:1000)
-docker run -d --name trilium -p 8080:8080 -v ~/trilium-data:/home/node/trilium-data triliumnext/notes:rootless
+docker run -d --name trilium -p 8080:8080 -v ~/trilium-data:/home/trilium/trilium-data triliumnext/notes:rootless
 
 # Run with custom UID/GID
-docker run -d --name trilium -p 8080:8080 --user $(id -u):$(id -g) -v ~/trilium-data:/home/node/trilium-data triliumnext/notes:rootless
+docker run -d --name trilium -p 8080:8080 --user $(id -u):$(id -g) -v ~/trilium-data:/home/trilium/trilium-data triliumnext/notes:rootless
 
 ```
 
@@ -191,7 +194,7 @@ If you encounter permission issues with the data volume, ensure that:
 1.  The host directory has appropriate permissions for the UID/GID you're using
 2.  You're setting both `TRILIUM_UID` and `TRILIUM_GID` to match the owner of the host directory
 
-```sh
+```
 # For example, if your data directory is owned by UID 1001 and GID 1001:
 TRILIUM_UID=1001 TRILIUM_GID=1001 docker-compose -f docker-compose.rootless.yml up -d
 
From aa10638fd80b8b8ab441c933b33a97456e94565d Mon Sep 17 00:00:00 2001
From: Elian Doran 
Date: Sun, 25 May 2025 21:25:43 +0300
Subject: [PATCH 08/24] feat(nx/server): add build/run scripts for docker
 rootless
---
 apps/server/package.json | 12 ++++++++++++
 1 file changed, 12 insertions(+)
diff --git a/apps/server/package.json b/apps/server/package.json
index df48848cc..65d9cdbd2 100644
--- a/apps/server/package.json
+++ b/apps/server/package.json
@@ -149,6 +149,12 @@
           },
           "alpine": {
             "command": "docker build . -t triliumnext-alpine -f Dockerfile.alpine"
+          },
+          "rootless-debian": {
+            "command": "docker build . -t triliumnext-rootless-debian -f Dockerfile.rootless"
+          },
+          "rootless-alpine": {
+            "command": "docker build . -t triliumnext-rootless-alpine -f Dockerfile.alpine.rootless"
           }
         }
       },
@@ -164,6 +170,12 @@
           },
           "alpine": {
             "command": "docker run -p 8081:8080 triliumnext-alpine"
+          },
+          "rootless-debian": {
+            "command": "docker run -p 8081:8080 triliumnext-rootless-debian"
+          },
+          "rootless-alpine": {
+            "command": "docker run -p 8081:8080 triliumnext-rootless-alpine"
           }
         }
       },
From 84ab4dcb8b20aa0f51672eb0f8585e75823310dc Mon Sep 17 00:00:00 2001
From: Elian Doran 
Date: Sun, 25 May 2025 21:45:42 +0300
Subject: [PATCH 09/24] chore(docker): format Dockerfiles
---
 apps/server/Dockerfile        | 44 +++++++++++++++++------------------
 apps/server/Dockerfile.alpine | 38 +++++++++++++++---------------
 2 files changed, 41 insertions(+), 41 deletions(-)
diff --git a/apps/server/Dockerfile b/apps/server/Dockerfile
index 1e357f6fe..dbb021f58 100644
--- a/apps/server/Dockerfile
+++ b/apps/server/Dockerfile
@@ -1,28 +1,28 @@
 FROM node:22.16.0-bullseye-slim AS builder
-    RUN corepack enable
+RUN corepack enable
 
-    # Install native dependencies since we might be building cross-platform.
-    WORKDIR /usr/src/app/build
-    COPY ./docker/package.json ./docker/pnpm-workspace.yaml /usr/src/app/
-    # We have to use --no-frozen-lockfile due to CKEditor patches
-    RUN pnpm install --no-frozen-lockfile --prod && pnpm rebuild
+# Install native dependencies since we might be building cross-platform.
+WORKDIR /usr/src/app/build
+COPY ./docker/package.json ./docker/pnpm-workspace.yaml /usr/src/app/
+# We have to use --no-frozen-lockfile due to CKEditor patches
+RUN pnpm install --no-frozen-lockfile --prod && pnpm rebuild
 
 FROM node:22.16.0-bullseye-slim
-    # Install only runtime dependencies
-    RUN apt-get update && \
-        apt-get install -y --no-install-recommends \
-        gosu && \
-        rm -rf \
-        /var/lib/apt/lists/* \
-        /var/cache/apt/*
+# Install only runtime dependencies
+RUN apt-get update && \
+    apt-get install -y --no-install-recommends \
+    gosu && \
+    rm -rf \
+    /var/lib/apt/lists/* \
+    /var/cache/apt/*
 
-    WORKDIR /usr/src/app
-    COPY ./dist /usr/src/app
-    RUN rm -rf /usr/src/app/node_modules/better-sqlite3
-    COPY --from=builder /usr/src/app/node_modules/better-sqlite3 /usr/src/app/node_modules/better-sqlite3
-    COPY ./start-docker.sh /usr/src/app
+WORKDIR /usr/src/app
+COPY ./dist /usr/src/app
+RUN rm -rf /usr/src/app/node_modules/better-sqlite3
+COPY --from=builder /usr/src/app/node_modules/better-sqlite3 /usr/src/app/node_modules/better-sqlite3
+COPY ./start-docker.sh /usr/src/app
 
-    # Configure container
-    EXPOSE 8080
-    CMD [ "sh", "./start-docker.sh" ]
-    HEALTHCHECK --start-period=10s CMD exec gosu node node /usr/src/app/docker_healthcheck.cjs
\ No newline at end of file
+# Configure container
+EXPOSE 8080
+CMD [ "sh", "./start-docker.sh" ]
+HEALTHCHECK --start-period=10s CMD exec gosu node node /usr/src/app/docker_healthcheck.cjs
\ No newline at end of file
diff --git a/apps/server/Dockerfile.alpine b/apps/server/Dockerfile.alpine
index 24d0dcb12..3b96950f1 100644
--- a/apps/server/Dockerfile.alpine
+++ b/apps/server/Dockerfile.alpine
@@ -1,26 +1,26 @@
 FROM node:22.16.0-alpine AS builder
-    RUN corepack enable
+RUN corepack enable
 
-    # Install native dependencies since we might be building cross-platform.
-    WORKDIR /usr/src/app
-    COPY ./docker/package.json  ./docker/pnpm-workspace.yaml /usr/src/app/
-    # We have to use --no-frozen-lockfile due to CKEditor patches
-    RUN pnpm install --no-frozen-lockfile --prod && pnpm rebuild
+# Install native dependencies since we might be building cross-platform.
+WORKDIR /usr/src/app
+COPY ./docker/package.json  ./docker/pnpm-workspace.yaml /usr/src/app/
+# We have to use --no-frozen-lockfile due to CKEditor patches
+RUN pnpm install --no-frozen-lockfile --prod && pnpm rebuild
 
 FROM node:22.16.0-alpine
-    # Install runtime dependencies
-    RUN apk add --no-cache su-exec shadow
+# Install runtime dependencies
+RUN apk add --no-cache su-exec shadow
 
-    WORKDIR /usr/src/app
-    COPY ./dist /usr/src/app
-    RUN rm -rf /usr/src/app/node_modules/better-sqlite3
-    COPY --from=builder /usr/src/app/node_modules/better-sqlite3 /usr/src/app/node_modules/better-sqlite3
-    COPY ./start-docker.sh /usr/src/app
+WORKDIR /usr/src/app
+COPY ./dist /usr/src/app
+RUN rm -rf /usr/src/app/node_modules/better-sqlite3
+COPY --from=builder /usr/src/app/node_modules/better-sqlite3 /usr/src/app/node_modules/better-sqlite3
+COPY ./start-docker.sh /usr/src/app
 
-    # Add application user
-    RUN adduser -s /bin/false node; exit 0
+# Add application user
+RUN adduser -s /bin/false node; exit 0
 
-    # Configure container
-    EXPOSE 8080
-    CMD [ "sh", "./start-docker.sh" ]
-    HEALTHCHECK --start-period=10s CMD exec su-exec node node /usr/src/app/docker_healthcheck.cjs
\ No newline at end of file
+# Configure container
+EXPOSE 8080
+CMD [ "sh", "./start-docker.sh" ]
+HEALTHCHECK --start-period=10s CMD exec su-exec node node /usr/src/app/docker_healthcheck.cjs
\ No newline at end of file
From b635c74d014dc7832d25e95bf104b991f34e6139 Mon Sep 17 00:00:00 2001
From: Elian Doran 
Date: Sun, 25 May 2025 21:47:35 +0300
Subject: [PATCH 10/24] fix(docker/rootless): copy sequence after switch to
 esbuild
---
 apps/server/Dockerfile.alpine          | 2 +-
 apps/server/Dockerfile.alpine.rootless | 2 +-
 apps/server/Dockerfile.rootless        | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/server/Dockerfile.alpine b/apps/server/Dockerfile.alpine
index 3b96950f1..18bc42bf5 100644
--- a/apps/server/Dockerfile.alpine
+++ b/apps/server/Dockerfile.alpine
@@ -3,7 +3,7 @@ RUN corepack enable
 
 # Install native dependencies since we might be building cross-platform.
 WORKDIR /usr/src/app
-COPY ./docker/package.json  ./docker/pnpm-workspace.yaml /usr/src/app/
+COPY ./docker/package.json ./docker/pnpm-workspace.yaml /usr/src/app/
 # We have to use --no-frozen-lockfile due to CKEditor patches
 RUN pnpm install --no-frozen-lockfile --prod && pnpm rebuild
 
diff --git a/apps/server/Dockerfile.alpine.rootless b/apps/server/Dockerfile.alpine.rootless
index 7105d1609..5e6cba525 100644
--- a/apps/server/Dockerfile.alpine.rootless
+++ b/apps/server/Dockerfile.alpine.rootless
@@ -3,7 +3,7 @@ RUN corepack enable
 
 # Install native dependencies since we might be building cross-platform.
 WORKDIR /usr/src/app
-COPY ./dist/package.json ./dist/pnpm-lock.yaml ./docker/pnpm-workspace.yaml /usr/src/app/
+COPY ./docker/package.json ./docker/pnpm-workspace.yaml /usr/src/app/
 # We have to use --no-frozen-lockfile due to CKEditor patches
 RUN pnpm install --no-frozen-lockfile --prod && pnpm rebuild
 
diff --git a/apps/server/Dockerfile.rootless b/apps/server/Dockerfile.rootless
index 541e970e5..df94ddb90 100644
--- a/apps/server/Dockerfile.rootless
+++ b/apps/server/Dockerfile.rootless
@@ -3,7 +3,7 @@ RUN corepack enable
 
 # Install native dependencies since we might be building cross-platform.
 WORKDIR /usr/src/app/build
-COPY ./dist/package.json ./dist/pnpm-lock.yaml ./docker/pnpm-workspace.yaml /usr/src/app/
+COPY ./docker/package.json ./docker/pnpm-workspace.yaml /usr/src/app/
 # We have to use --no-frozen-lockfile due to CKEditor patches
 RUN pnpm install --no-frozen-lockfile --prod && pnpm rebuild
 
From 93c939bf08c9432f2a350f118f6287af7407c5b1 Mon Sep 17 00:00:00 2001
From: Elian Doran 
Date: Sun, 25 May 2025 21:48:12 +0300
Subject: [PATCH 11/24] fix(docker/rootless): main entry point extension
---
 apps/server/rootless-entrypoint.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/apps/server/rootless-entrypoint.sh b/apps/server/rootless-entrypoint.sh
index 9f4898df3..0d580285f 100755
--- a/apps/server/rootless-entrypoint.sh
+++ b/apps/server/rootless-entrypoint.sh
@@ -25,4 +25,4 @@ fi
 mkdir -p "${TRILIUM_DATA_DIR}"
 
 # Start the app
-exec node ./main
+exec node ./main.cjs
From 76bc3d858cb99dd0e077c197d4988d9145ee53fc Mon Sep 17 00:00:00 2001
From: Elian Doran 
Date: Tue, 27 May 2025 18:22:10 +0300
Subject: [PATCH 12/24] fix(edit-demo): path to demo database
---
 apps/edit-docs/src/edit-demo.ts | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/apps/edit-docs/src/edit-demo.ts b/apps/edit-docs/src/edit-demo.ts
index 936ddd157..162467ae6 100644
--- a/apps/edit-docs/src/edit-demo.ts
+++ b/apps/edit-docs/src/edit-demo.ts
@@ -2,8 +2,9 @@ import { extractZip, initializeDatabase, startElectron } from "./utils.js";
 import { initializeTranslations } from "@triliumnext/server/src/services/i18n.js";
 import debounce from "@triliumnext/client/src/services/debounce.js";
 import fs from "fs/promises";
+import { join } from "path";
 
-const DEMO_ZIP_PATH = "db/demo.zip";
+const DEMO_ZIP_PATH = join(__dirname, "../../server/src/assets/db/demo.zip");
 
 async function main() {
     await initializeTranslations();
From 7cb4cc84690d09704f8e208da22353ed996caeb9 Mon Sep 17 00:00:00 2001
From: Elian Doran 
Date: Tue, 27 May 2025 18:32:00 +0300
Subject: [PATCH 13/24] fix(edit-demo): get it to actually start
---
 apps/edit-docs/src/edit-demo.ts |  9 ++++++---
 apps/edit-docs/src/edit-docs.ts | 18 ++----------------
 apps/edit-docs/src/utils.ts     | 29 +++++++++++++++++++++++++++--
 3 files changed, 35 insertions(+), 21 deletions(-)
diff --git a/apps/edit-docs/src/edit-demo.ts b/apps/edit-docs/src/edit-demo.ts
index 162467ae6..a51e48e73 100644
--- a/apps/edit-docs/src/edit-demo.ts
+++ b/apps/edit-docs/src/edit-demo.ts
@@ -7,11 +7,14 @@ import { join } from "path";
 const DEMO_ZIP_PATH = join(__dirname, "../../server/src/assets/db/demo.zip");
 
 async function main() {
+    const initializedPromise = startElectron(() => {
+        // Wait for the import to be finished and the application to be loaded before we listen to changes.
+        setTimeout(() => registerHandlers(), 10_000);
+    });
+
     await initializeTranslations();
     await initializeDatabase(false);
-
-    await startElectron();
-    await registerHandlers();
+    initializedPromise.resolve();
 }
 
 async function registerHandlers() {
diff --git a/apps/edit-docs/src/edit-docs.ts b/apps/edit-docs/src/edit-docs.ts
index 889e2f55c..7266ad323 100644
--- a/apps/edit-docs/src/edit-docs.ts
+++ b/apps/edit-docs/src/edit-docs.ts
@@ -6,16 +6,13 @@ import { initializeTranslations } from "@triliumnext/server/src/services/i18n.js
 import archiver, { type Archiver } from "archiver";
 import type { WriteStream } from "fs";
 import debounce from "@triliumnext/client/src/services/debounce.js";
-import { extractZip, initializeDatabase } from "./utils.js";
+import { extractZip, initializeDatabase, startElectron } from "./utils.js";
 import cls from "@triliumnext/server/src/services/cls.js";
 import type { AdvancedExportOptions } from "@triliumnext/server/src/services/export/zip.js";
 import TaskContext from "@triliumnext/server/src/services/task_context.js";
-import { deferred } from "@triliumnext/server/src/services/utils.js";
 import { parseNoteMetaFile } from "@triliumnext/server/src/services/in_app_help.js";
 import { resolve } from "path";
 import type NoteMeta from "@triliumnext/server/src/services/meta/note_meta.js";
-import electron from "electron";
-import windowService from "@triliumnext/server/src/services/window.js";
 
 interface NoteMapping {
     rootNoteId: string;
@@ -56,18 +53,7 @@ const NOTE_MAPPINGS: NoteMapping[] = [
 ];
 
 async function main() {
-    const initializedPromise = deferred();
-    electron.app.on("ready", async () => {
-        await initializedPromise;
-
-        console.log("Electron is ready!");
-
-        // Start the server.
-        await import("@triliumnext/server/src/main.js");
-
-        // Create the main window.
-        await windowService.createMainWindow(electron.app);
-
+    const initializedPromise = startElectron(() => {
         // Wait for the import to be finished and the application to be loaded before we listen to changes.
         setTimeout(() => registerHandlers(), 10_000);
     });
diff --git a/apps/edit-docs/src/utils.ts b/apps/edit-docs/src/utils.ts
index 8c7758f62..fc11eb8fb 100644
--- a/apps/edit-docs/src/utils.ts
+++ b/apps/edit-docs/src/utils.ts
@@ -2,6 +2,9 @@ import cls from "@triliumnext/server/src/services/cls.js";
 import fs from "fs/promises";
 import fsExtra from "fs-extra";
 import path from "path";
+import electron from "electron";
+import { deferred, type DeferredPromise } from "@triliumnext/server/src/services/utils.js";
+import windowService from "@triliumnext/server/src/services/window.js";
 
 export function initializeDatabase(skipDemoDb: boolean) {
     return new Promise(async (resolve) => {
@@ -15,8 +18,30 @@ export function initializeDatabase(skipDemoDb: boolean) {
     });
 }
 
-export async function startElectron() {
-    await import("@triliumnext/desktop/src/electron-main.js");
+/**
+ * Electron has a behaviour in which the "ready" event must have a listener attached before it gets to initialize.
+ * If async tasks are awaited before the "ready" event is bound, then the window will never shown.
+ * This method works around by creating a deferred promise. It will immediately bind to the "ready" event and wait for that promise to be resolved externally.
+ *
+ * @param callback a method to be called after the server and Electron is initialized.
+ * @returns the deferred promise that must be resolved externally before the Electron app is started.
+ */
+export function startElectron(callback: () => void): DeferredPromise {
+    const initializedPromise = deferred();
+    electron.app.on("ready", async () => {
+        await initializedPromise;
+
+        console.log("Electron is ready!");
+
+        // Start the server.
+        await import("@triliumnext/server/src/main.js");
+
+        // Create the main window.
+        await windowService.createMainWindow(electron.app);
+
+        callback();
+    });
+    return initializedPromise;
 }
 
 export async function extractZip(zipFilePath: string, outputPath: string, ignoredFiles?: Set) {
From 099e73b1147ed6e99744f909206be2e368930e90 Mon Sep 17 00:00:00 2001
From: Elian Doran 
Date: Tue, 27 May 2025 18:34:04 +0300
Subject: [PATCH 14/24] chore(demo): move to right directory
---
 .../edit-docs}/demo/!!!meta.json              |   0
 {_regroup => apps/edit-docs}/demo/index.html  |   0
 .../edit-docs}/demo/navigation.html           |   0
 .../edit-docs}/demo/root/Journal.dat          |   0
 .../edit-docs}/demo/root/Trilium Demo.html    |   0
 .../Trilium Demo/Books/Book template.html     |   0
 .../Books/Book template/Highlights.html       |   0
 .../Books/Reviews/The Mechanical.clone.html   |   0
 .../demo/root/Trilium Demo/Books/To read.html |   0
 .../Formatting examples/Checkbox lists.html   |   0
 .../Formatting examples/Code blocks.html      |   0
 .../Formatting examples/Highlighting.html     |   0
 .../Formatting examples/Math.html             |   0
 .../Formatting examples/School schedule.html  |   0
 .../demo/root/Trilium Demo/Inbox.html         |   0
 .../root/Trilium Demo/Inbox/Book to read.html |   0
 .../Inbox/Grocery list for today.html         |   0
 .../Trilium Demo/Inbox/The Last Question.html |   0
 .../The Last Question by Issac.pdf            | Bin
 .../demo/root/Trilium Demo/Journal.html       |   0
 .../2021/11 - November/28 - Tuesday.html      |   0
 .../28 - Tuesday/Christmas gift ideas.html    |   0
 .../Phone call about work project.html        |   0
 .../28 - Tuesday/Trusted timestamping.html    |   0
 .../2021/12 - December/18 - Monday.html       |   0
 .../18 - Monday/Meeting minutes.html          |   0
 .../18 - Monday/Photos from the trip/01.jpeg  | Bin
 .../18 - Monday/Photos from the trip/02.jpeg  | Bin
 .../18 - Monday/Photos from the trip/03.jpeg  | Bin
 .../18 - Monday/Photos from the trip/04.jpeg  | Bin
 .../18 - Monday/Photos from the trip/05.jpeg  | Bin
 .../18 - Monday/Photos from the trip/06.jpeg  | Bin
 .../18 - Monday/Photos from the trip/07.jpeg  | Bin
 .../18 - Monday/Photos from the trip/08.jpeg  | Bin
 .../18 - Monday/Photos from the trip/09.jpeg  | Bin
 .../18 - Monday/Photos from the trip/10.jpeg  | Bin
 .../18 - Monday/Photos from the trip/11.jpeg  | Bin
 .../18 - Monday/Photos from the trip/12.jpeg  | Bin
 .../TODO - Send invites for christ.html       |   0
 .../2021/12 - December/19 - Tuesday.html      |   0
 .../DONE - Dentist appointment.html           |   0
 .../2021/12 - December/20 - Wednesday.html    |   0
 .../2021/12 - December/21 - Thursday.html     |   0
 .../21 - Thursday/Christmas shopping.html     |   0
 .../21 - Thursday/Office party.html           |   0
 .../2021/12 - December/22 - Friday.html       |   0
 .../22 - Friday/Christmas shopping.html       |   0
 .../22 - Friday/The Mechanical.html           |   0
 .../The Mechanical/Highlights.html            |   0
 .../2021/12 - December/23 - Saturday.html     |   0
 .../24 - Sunday - Christmas Eve!.html         |   0
 .../DONE - Buy a board game fo.jpg            | Bin
 .../DONE - Buy a board game for Al.html       |   0
 .../TODO - Buy milk.html                      |   0
 .../2021/12 - December/30 - Thursday.html     |   0
 .../root/Trilium Demo/Journal/2021/Epics.html |   0
 .../Journal/2021/Epics/Christmas.html         |   0
 .../Epics/Christmas/Christmas dinner.html     |   0
 ...11. 2017 - Christmas gift ideas.clone.html |   0
 .../2021/Epics/Christmas/Vacation days.html   |   0
 .../Journal/2021/Epics/Vacation.html          |   0
 .../Trilium Demo/Journal/Day template.html    |   0
 .../root/Trilium Demo/Note Types/Canvas.json  |   0
 .../Note Types/Canvas_canvas-export.svg       |   0
 .../Geo Map (The Seven Wonders of .json       |   0
 .../Chichén Itzá, Mexico.html                 |   0
 .../Christ the Redeemer, Brazil.html          |   0
 .../Machu Picchu, Peru.html                   |   0
 .../Petra, Jordan.html                        |   0
 .../The Colosseum, Rome, Italy.html           |   0
 .../The Great Wall of China.html              |   0
 .../The Taj Mahal, India.html                 |   0
 .../Note Types/Mermaid Diagrams/Bar chart.txt |   0
 .../Bar chart_mermaid-export.svg              |   0
 .../Note Types/Mermaid Diagrams/C4.txt        |   0
 .../Mermaid Diagrams/C4_mermaid-export.svg    |   0
 .../Note Types/Mermaid Diagrams/Class.txt     |   0
 .../Mermaid Diagrams/Class_mermaid-export.svg |   0
 .../Mermaid Diagrams/Entity Relationship.txt  |   0
 .../Entity Relationship_mermai.svg            |   0
 .../Mermaid Diagrams/Flow (ELK).txt           |   0
 .../Flow (ELK)_mermaid-export.svg             |   0
 .../Note Types/Mermaid Diagrams/Flow.txt      |   0
 .../Mermaid Diagrams/Flow_mermaid-export.svg  |   0
 .../Note Types/Mermaid Diagrams/Gantt.txt     |   0
 .../Mermaid Diagrams/Gantt_mermaid-export.svg |   0
 .../Note Types/Mermaid Diagrams/Git.txt       |   0
 .../Mermaid Diagrams/Git_mermaid-export.svg   |   0
 .../Note Types/Mermaid Diagrams/Journey.txt   |   0
 .../Journey_mermaid-export.svg                |   0
 .../Note Types/Mermaid Diagrams/Mind Map.txt  |   0
 .../Mind Map_mermaid-export.svg               |   0
 .../Note Types/Mermaid Diagrams/Pie.txt       |   0
 .../Mermaid Diagrams/Pie_mermaid-export.svg   |   0
 .../Note Types/Mermaid Diagrams/Sequence.txt  |   0
 .../Sequence_mermaid-export.svg               |   0
 .../Note Types/Mermaid Diagrams/State.txt     |   0
 .../Mermaid Diagrams/State_mermaid-export.svg |   0
 .../Trilium Demo/Note Types/Mind Map.json     |   0
 .../Note Types/Mind Map_mindmap-export.svg    |   0
 .../Custom request handler.js                 |   0
 .../Statistics/Attribute count/template.html  |   0
 .../Statistics/Attribute count/template/js.js |   0
 .../template/js/renderPieChart.js             |   0
 .../js/renderPieChart/chart.js.clone.html     |   0
 .../chartjs-plugin-datalabe.min.js            |   0
 .../chart.js.clone.html                       |   0
 .../template/js/renderTable.js                |   0
 .../Statistics/Largest notes/template.html    |   0
 .../Statistics/Largest notes/template/js.js   |   0
 .../Most cloned notes/template.html           |   0
 .../Most cloned notes/template/js.js          |   0
 .../Most edited notes/template.html           |   0
 .../Most edited notes/template/js.js          |   0
 .../Most linked notes/template.html           |   0
 .../Most linked notes/template/js.js          |   0
 .../Statistics/Note type count/template.html  |   0
 .../Statistics/Note type count/template/js.js |   0
 .../template/js/renderPieChart.clone.html     |   0
 .../template/js/renderTable.js                |   0
 .../Scripting examples/Task manager.html      |   0
 .../Task manager/Create Launcher.js           |   0
 .../Done/Buy a board game for Alice.html      |   0
 .../Done/Buy a board game for Alice.jpg       | Bin
 .../Done/Dentist appointment.html             |   0
 .../Done/Get a gym membership.html            |   0
 .../Task manager/Implementation/CSS.css       |   0
 .../Implementation/attribute changed.js       |   0
 .../attribute changed/reconcileAssignments.js |   0
 .../Implementation/createNewTask.js           |   0
 .../Implementation/task template.html         |   0
 .../Task manager/Locations/gym.html           |   0
 .../Locations/mall/Buy some book for Bob.html |   0
 .../Maybe Black Swan.html                     |   0
 .../Locations/tesco/Buy milk.html             |   0
 .../work/Send invites for christmas par.html  |   0
 .../Task manager/TODO/Buy milk.clone.html     |   0
 .../TODO/Buy some book for Bob.clone.html     |   0
 ...end invites for christmas party.clone.html |   0
 .../Buy some book for Bob.clone.html          |   0
 .../Tags/groceries/Buy milk.clone.html        |   0
 .../Task manager/Tags/health.html             |   0
 .../Tags/shopping/Buy milk.clone.html         |   0
 .../shopping/Buy some book for Bob.clone.html |   0
 .../Weight Tracker/Implementation.html        |   0
 .../Weight Tracker/Implementation/JS code.js  |   0
 .../Implementation/JS code/chart.js           |   0
 .../Scripting examples/Word count widget.js   |   0
 .../demo/root/Trilium Demo/Steel Blue.css     |   0
 .../Steel Blue/eb-garamond-v9-latin-reg.woff2 | Bin
 .../Steel Blue/raleway-v12-latin-regula.woff2 | Bin
 .../demo/root/Trilium Demo/Tech.html          |   0
 .../Tech/Linux/Bash scripting.html            |   0
 .../Bash scripting/Bash startup modes.html    |   0
 .../Tech/Linux/Bash scripting/While loop.html |   0
 .../root/Trilium Demo/Tech/Linux/History.html |   0
 .../root/Trilium Demo/Tech/Linux/Ubuntu.html  |   0
 .../Tech/Linux/Ubuntu/Unity shortcuts.html    |   0
 .../root/Trilium Demo/Tech/Node.js/Intro.html |   0
 .../Trilium Demo/Tech/Node.js/Overview.html   |   0
 .../Tech/Node.js/Overview/History.html        |   0
 .../Node.js/Overview/Industry support.html    |   0
 .../Overview/Platform architecture.html       |   0
 .../Trilium Demo/Tech/Node.js/Releases.html   |   0
 .../Programming/Bash scripting.clone.html     |   0
 .../Trilium Demo/Tech/Programming/Java.html   |   0
 .../Security/Trusted timestamping.clone.html  |   0
 .../demo/root/Trilium Demo/Work/HR.html       |   0
 .../root/Trilium Demo/Work/Processes.html     |   0
 .../demo/root/Trilium Demo/Work/Projects.html |   0
 .../demo/root/Trilium Demo_icon-color.svg     |   0
 {_regroup => apps/edit-docs}/demo/style.css   |   0
 apps/server/src/assets/db/demo.zip            | Bin 915159 -> 914431 bytes
 173 files changed, 0 insertions(+), 0 deletions(-)
 rename {_regroup => apps/edit-docs}/demo/!!!meta.json (100%)
 rename {_regroup => apps/edit-docs}/demo/index.html (100%)
 rename {_regroup => apps/edit-docs}/demo/navigation.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Journal.dat (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Books/Book template.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Books/Book template/Highlights.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Books/Reviews/The Mechanical.clone.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Books/To read.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Formatting examples/Checkbox lists.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Formatting examples/Code blocks.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Formatting examples/Highlighting.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Formatting examples/Math.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Formatting examples/School schedule.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Inbox.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Inbox/Book to read.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Inbox/Grocery list for today.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Inbox/The Last Question.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Inbox/The Last Question/The Last Question by Issac.pdf (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday/Christmas gift ideas.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday/Phone call about work project.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday/Trusted timestamping.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Meeting minutes.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/01.jpeg (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/02.jpeg (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/03.jpeg (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/04.jpeg (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/05.jpeg (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/06.jpeg (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/07.jpeg (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/08.jpeg (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/09.jpeg (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/10.jpeg (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/11.jpeg (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/12.jpeg (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/TODO - Send invites for christ.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/12 - December/19 - Tuesday.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/12 - December/19 - Tuesday/DONE - Dentist appointment.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/12 - December/20 - Wednesday.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/12 - December/21 - Thursday.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/12 - December/21 - Thursday/Christmas shopping.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/12 - December/21 - Thursday/Office party.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/12 - December/22 - Friday.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/12 - December/22 - Friday/Christmas shopping.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/12 - December/22 - Friday/The Mechanical.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/12 - December/22 - Friday/The Mechanical/Highlights.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/12 - December/23 - Saturday.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/12 - December/24 - Sunday - Christmas Eve!.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/12 - December/24 - Sunday - Christmas Eve!/DONE - Buy a board game fo.jpg (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/12 - December/24 - Sunday - Christmas Eve!/DONE - Buy a board game for Al.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/12 - December/24 - Sunday - Christmas Eve!/TODO - Buy milk.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/12 - December/30 - Thursday.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/Epics.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/Epics/Christmas.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/Epics/Christmas/Christmas dinner.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/Epics/Christmas/Shopping/28. 11. 2017 - Christmas gift ideas.clone.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/Epics/Christmas/Vacation days.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/2021/Epics/Vacation.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Journal/Day template.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Canvas.json (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Canvas_canvas-export.svg (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of .json (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Chichén Itzá, Mexico.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Christ the Redeemer, Brazil.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Machu Picchu, Peru.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Petra, Jordan.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/The Colosseum, Rome, Italy.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/The Great Wall of China.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/The Taj Mahal, India.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Bar chart.txt (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Bar chart_mermaid-export.svg (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/C4.txt (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/C4_mermaid-export.svg (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Class.txt (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Class_mermaid-export.svg (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Entity Relationship.txt (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Entity Relationship_mermai.svg (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Flow (ELK).txt (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Flow (ELK)_mermaid-export.svg (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Flow.txt (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Flow_mermaid-export.svg (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Gantt.txt (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Gantt_mermaid-export.svg (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Git.txt (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Git_mermaid-export.svg (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Journey.txt (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Journey_mermaid-export.svg (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Mind Map.txt (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Mind Map_mermaid-export.svg (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Pie.txt (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Pie_mermaid-export.svg (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Sequence.txt (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Sequence_mermaid-export.svg (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/State.txt (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/State_mermaid-export.svg (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Mind Map.json (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Note Types/Mind Map_mindmap-export.svg (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Custom request handler.js (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template/js.js (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template/js/renderPieChart.js (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template/js/renderPieChart/chart.js.clone.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template/js/renderPieChart/chartjs-plugin-datalabe.min.js (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template/js/renderPieChart/chartjs-plugin-datalabels.min.js/chart.js.clone.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template/js/renderTable.js (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Statistics/Largest notes/template.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Statistics/Largest notes/template/js.js (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Statistics/Most cloned notes/template.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Statistics/Most cloned notes/template/js.js (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Statistics/Most edited notes/template.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Statistics/Most edited notes/template/js.js (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Statistics/Most linked notes/template.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Statistics/Most linked notes/template/js.js (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Statistics/Note type count/template.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Statistics/Note type count/template/js.js (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Statistics/Note type count/template/js/renderPieChart.clone.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Statistics/Note type count/template/js/renderTable.js (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Task manager.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Task manager/Create Launcher.js (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Buy a board game for Alice.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Buy a board game for Alice.jpg (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Dentist appointment.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Get a gym membership.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Task manager/Implementation/CSS.css (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Task manager/Implementation/attribute changed.js (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Task manager/Implementation/attribute changed/reconcileAssignments.js (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Task manager/Implementation/createNewTask.js (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Task manager/Implementation/task template.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/gym.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/mall/Buy some book for Bob.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/mall/Buy some book for Bob/Maybe Black Swan.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/tesco/Buy milk.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/work/Send invites for christmas par.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Task manager/TODO/Buy milk.clone.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Task manager/TODO/Buy some book for Bob.clone.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Task manager/TODO/Send invites for christmas party.clone.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Task manager/Tags/christmas/Buy some book for Bob.clone.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Task manager/Tags/groceries/Buy milk.clone.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Task manager/Tags/health.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Task manager/Tags/shopping/Buy milk.clone.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Task manager/Tags/shopping/Buy some book for Bob.clone.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Weight Tracker/Implementation.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Weight Tracker/Implementation/JS code.js (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Weight Tracker/Implementation/JS code/chart.js (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Scripting examples/Word count widget.js (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Steel Blue.css (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Steel Blue/eb-garamond-v9-latin-reg.woff2 (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Steel Blue/raleway-v12-latin-regula.woff2 (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Tech.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Tech/Linux/Bash scripting.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Tech/Linux/Bash scripting/Bash startup modes.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Tech/Linux/Bash scripting/While loop.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Tech/Linux/History.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Tech/Linux/Ubuntu.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Tech/Linux/Ubuntu/Unity shortcuts.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Tech/Node.js/Intro.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Tech/Node.js/Overview.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Tech/Node.js/Overview/History.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Tech/Node.js/Overview/Industry support.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Tech/Node.js/Overview/Platform architecture.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Tech/Node.js/Releases.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Tech/Programming/Bash scripting.clone.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Tech/Programming/Java.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Tech/Security/Trusted timestamping.clone.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Work/HR.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Work/Processes.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo/Work/Projects.html (100%)
 rename {_regroup => apps/edit-docs}/demo/root/Trilium Demo_icon-color.svg (100%)
 rename {_regroup => apps/edit-docs}/demo/style.css (100%)
diff --git a/_regroup/demo/!!!meta.json b/apps/edit-docs/demo/!!!meta.json
similarity index 100%
rename from _regroup/demo/!!!meta.json
rename to apps/edit-docs/demo/!!!meta.json
diff --git a/_regroup/demo/index.html b/apps/edit-docs/demo/index.html
similarity index 100%
rename from _regroup/demo/index.html
rename to apps/edit-docs/demo/index.html
diff --git a/_regroup/demo/navigation.html b/apps/edit-docs/demo/navigation.html
similarity index 100%
rename from _regroup/demo/navigation.html
rename to apps/edit-docs/demo/navigation.html
diff --git a/_regroup/demo/root/Journal.dat b/apps/edit-docs/demo/root/Journal.dat
similarity index 100%
rename from _regroup/demo/root/Journal.dat
rename to apps/edit-docs/demo/root/Journal.dat
diff --git a/_regroup/demo/root/Trilium Demo.html b/apps/edit-docs/demo/root/Trilium Demo.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo.html
rename to apps/edit-docs/demo/root/Trilium Demo.html
diff --git a/_regroup/demo/root/Trilium Demo/Books/Book template.html b/apps/edit-docs/demo/root/Trilium Demo/Books/Book template.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Books/Book template.html
rename to apps/edit-docs/demo/root/Trilium Demo/Books/Book template.html
diff --git a/_regroup/demo/root/Trilium Demo/Books/Book template/Highlights.html b/apps/edit-docs/demo/root/Trilium Demo/Books/Book template/Highlights.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Books/Book template/Highlights.html
rename to apps/edit-docs/demo/root/Trilium Demo/Books/Book template/Highlights.html
diff --git a/_regroup/demo/root/Trilium Demo/Books/Reviews/The Mechanical.clone.html b/apps/edit-docs/demo/root/Trilium Demo/Books/Reviews/The Mechanical.clone.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Books/Reviews/The Mechanical.clone.html
rename to apps/edit-docs/demo/root/Trilium Demo/Books/Reviews/The Mechanical.clone.html
diff --git a/_regroup/demo/root/Trilium Demo/Books/To read.html b/apps/edit-docs/demo/root/Trilium Demo/Books/To read.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Books/To read.html
rename to apps/edit-docs/demo/root/Trilium Demo/Books/To read.html
diff --git a/_regroup/demo/root/Trilium Demo/Formatting examples/Checkbox lists.html b/apps/edit-docs/demo/root/Trilium Demo/Formatting examples/Checkbox lists.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Formatting examples/Checkbox lists.html
rename to apps/edit-docs/demo/root/Trilium Demo/Formatting examples/Checkbox lists.html
diff --git a/_regroup/demo/root/Trilium Demo/Formatting examples/Code blocks.html b/apps/edit-docs/demo/root/Trilium Demo/Formatting examples/Code blocks.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Formatting examples/Code blocks.html
rename to apps/edit-docs/demo/root/Trilium Demo/Formatting examples/Code blocks.html
diff --git a/_regroup/demo/root/Trilium Demo/Formatting examples/Highlighting.html b/apps/edit-docs/demo/root/Trilium Demo/Formatting examples/Highlighting.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Formatting examples/Highlighting.html
rename to apps/edit-docs/demo/root/Trilium Demo/Formatting examples/Highlighting.html
diff --git a/_regroup/demo/root/Trilium Demo/Formatting examples/Math.html b/apps/edit-docs/demo/root/Trilium Demo/Formatting examples/Math.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Formatting examples/Math.html
rename to apps/edit-docs/demo/root/Trilium Demo/Formatting examples/Math.html
diff --git a/_regroup/demo/root/Trilium Demo/Formatting examples/School schedule.html b/apps/edit-docs/demo/root/Trilium Demo/Formatting examples/School schedule.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Formatting examples/School schedule.html
rename to apps/edit-docs/demo/root/Trilium Demo/Formatting examples/School schedule.html
diff --git a/_regroup/demo/root/Trilium Demo/Inbox.html b/apps/edit-docs/demo/root/Trilium Demo/Inbox.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Inbox.html
rename to apps/edit-docs/demo/root/Trilium Demo/Inbox.html
diff --git a/_regroup/demo/root/Trilium Demo/Inbox/Book to read.html b/apps/edit-docs/demo/root/Trilium Demo/Inbox/Book to read.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Inbox/Book to read.html
rename to apps/edit-docs/demo/root/Trilium Demo/Inbox/Book to read.html
diff --git a/_regroup/demo/root/Trilium Demo/Inbox/Grocery list for today.html b/apps/edit-docs/demo/root/Trilium Demo/Inbox/Grocery list for today.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Inbox/Grocery list for today.html
rename to apps/edit-docs/demo/root/Trilium Demo/Inbox/Grocery list for today.html
diff --git a/_regroup/demo/root/Trilium Demo/Inbox/The Last Question.html b/apps/edit-docs/demo/root/Trilium Demo/Inbox/The Last Question.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Inbox/The Last Question.html
rename to apps/edit-docs/demo/root/Trilium Demo/Inbox/The Last Question.html
diff --git a/_regroup/demo/root/Trilium Demo/Inbox/The Last Question/The Last Question by Issac.pdf b/apps/edit-docs/demo/root/Trilium Demo/Inbox/The Last Question/The Last Question by Issac.pdf
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Inbox/The Last Question/The Last Question by Issac.pdf
rename to apps/edit-docs/demo/root/Trilium Demo/Inbox/The Last Question/The Last Question by Issac.pdf
diff --git a/_regroup/demo/root/Trilium Demo/Journal.html b/apps/edit-docs/demo/root/Trilium Demo/Journal.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal.html
rename to apps/edit-docs/demo/root/Trilium Demo/Journal.html
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday.html b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday.html
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday.html
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday/Christmas gift ideas.html b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday/Christmas gift ideas.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday/Christmas gift ideas.html
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday/Christmas gift ideas.html
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday/Phone call about work project.html b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday/Phone call about work project.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday/Phone call about work project.html
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday/Phone call about work project.html
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday/Trusted timestamping.html b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday/Trusted timestamping.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday/Trusted timestamping.html
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday/Trusted timestamping.html
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday.html b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday.html
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday.html
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Meeting minutes.html b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Meeting minutes.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Meeting minutes.html
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Meeting minutes.html
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/01.jpeg b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/01.jpeg
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/01.jpeg
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/01.jpeg
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/02.jpeg b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/02.jpeg
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/02.jpeg
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/02.jpeg
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/03.jpeg b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/03.jpeg
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/03.jpeg
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/03.jpeg
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/04.jpeg b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/04.jpeg
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/04.jpeg
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/04.jpeg
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/05.jpeg b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/05.jpeg
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/05.jpeg
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/05.jpeg
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/06.jpeg b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/06.jpeg
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/06.jpeg
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/06.jpeg
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/07.jpeg b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/07.jpeg
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/07.jpeg
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/07.jpeg
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/08.jpeg b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/08.jpeg
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/08.jpeg
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/08.jpeg
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/09.jpeg b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/09.jpeg
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/09.jpeg
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/09.jpeg
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/10.jpeg b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/10.jpeg
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/10.jpeg
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/10.jpeg
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/11.jpeg b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/11.jpeg
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/11.jpeg
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/11.jpeg
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/12.jpeg b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/12.jpeg
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/12.jpeg
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Photos from the trip/12.jpeg
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/TODO - Send invites for christ.html b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/TODO - Send invites for christ.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/TODO - Send invites for christ.html
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/TODO - Send invites for christ.html
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/12 - December/19 - Tuesday.html b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/19 - Tuesday.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/12 - December/19 - Tuesday.html
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/19 - Tuesday.html
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/12 - December/19 - Tuesday/DONE - Dentist appointment.html b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/19 - Tuesday/DONE - Dentist appointment.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/12 - December/19 - Tuesday/DONE - Dentist appointment.html
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/19 - Tuesday/DONE - Dentist appointment.html
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/12 - December/20 - Wednesday.html b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/20 - Wednesday.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/12 - December/20 - Wednesday.html
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/20 - Wednesday.html
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/12 - December/21 - Thursday.html b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/21 - Thursday.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/12 - December/21 - Thursday.html
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/21 - Thursday.html
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/12 - December/21 - Thursday/Christmas shopping.html b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/21 - Thursday/Christmas shopping.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/12 - December/21 - Thursday/Christmas shopping.html
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/21 - Thursday/Christmas shopping.html
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/12 - December/21 - Thursday/Office party.html b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/21 - Thursday/Office party.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/12 - December/21 - Thursday/Office party.html
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/21 - Thursday/Office party.html
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/12 - December/22 - Friday.html b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/22 - Friday.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/12 - December/22 - Friday.html
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/22 - Friday.html
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/12 - December/22 - Friday/Christmas shopping.html b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/22 - Friday/Christmas shopping.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/12 - December/22 - Friday/Christmas shopping.html
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/22 - Friday/Christmas shopping.html
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/12 - December/22 - Friday/The Mechanical.html b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/22 - Friday/The Mechanical.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/12 - December/22 - Friday/The Mechanical.html
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/22 - Friday/The Mechanical.html
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/12 - December/22 - Friday/The Mechanical/Highlights.html b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/22 - Friday/The Mechanical/Highlights.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/12 - December/22 - Friday/The Mechanical/Highlights.html
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/22 - Friday/The Mechanical/Highlights.html
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/12 - December/23 - Saturday.html b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/23 - Saturday.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/12 - December/23 - Saturday.html
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/23 - Saturday.html
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/12 - December/24 - Sunday - Christmas Eve!.html b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/24 - Sunday - Christmas Eve!.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/12 - December/24 - Sunday - Christmas Eve!.html
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/24 - Sunday - Christmas Eve!.html
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/12 - December/24 - Sunday - Christmas Eve!/DONE - Buy a board game fo.jpg b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/24 - Sunday - Christmas Eve!/DONE - Buy a board game fo.jpg
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/12 - December/24 - Sunday - Christmas Eve!/DONE - Buy a board game fo.jpg
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/24 - Sunday - Christmas Eve!/DONE - Buy a board game fo.jpg
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/12 - December/24 - Sunday - Christmas Eve!/DONE - Buy a board game for Al.html b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/24 - Sunday - Christmas Eve!/DONE - Buy a board game for Al.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/12 - December/24 - Sunday - Christmas Eve!/DONE - Buy a board game for Al.html
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/24 - Sunday - Christmas Eve!/DONE - Buy a board game for Al.html
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/12 - December/24 - Sunday - Christmas Eve!/TODO - Buy milk.html b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/24 - Sunday - Christmas Eve!/TODO - Buy milk.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/12 - December/24 - Sunday - Christmas Eve!/TODO - Buy milk.html
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/24 - Sunday - Christmas Eve!/TODO - Buy milk.html
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/12 - December/30 - Thursday.html b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/30 - Thursday.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/12 - December/30 - Thursday.html
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/12 - December/30 - Thursday.html
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/Epics.html b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/Epics.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/Epics.html
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/Epics.html
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/Epics/Christmas.html b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/Epics/Christmas.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/Epics/Christmas.html
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/Epics/Christmas.html
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/Epics/Christmas/Christmas dinner.html b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/Epics/Christmas/Christmas dinner.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/Epics/Christmas/Christmas dinner.html
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/Epics/Christmas/Christmas dinner.html
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/Epics/Christmas/Shopping/28. 11. 2017 - Christmas gift ideas.clone.html b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/Epics/Christmas/Shopping/28. 11. 2017 - Christmas gift ideas.clone.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/Epics/Christmas/Shopping/28. 11. 2017 - Christmas gift ideas.clone.html
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/Epics/Christmas/Shopping/28. 11. 2017 - Christmas gift ideas.clone.html
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/Epics/Christmas/Vacation days.html b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/Epics/Christmas/Vacation days.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/Epics/Christmas/Vacation days.html
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/Epics/Christmas/Vacation days.html
diff --git a/_regroup/demo/root/Trilium Demo/Journal/2021/Epics/Vacation.html b/apps/edit-docs/demo/root/Trilium Demo/Journal/2021/Epics/Vacation.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/2021/Epics/Vacation.html
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/2021/Epics/Vacation.html
diff --git a/_regroup/demo/root/Trilium Demo/Journal/Day template.html b/apps/edit-docs/demo/root/Trilium Demo/Journal/Day template.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Journal/Day template.html
rename to apps/edit-docs/demo/root/Trilium Demo/Journal/Day template.html
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Canvas.json b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Canvas.json
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Canvas.json
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Canvas.json
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Canvas_canvas-export.svg b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Canvas_canvas-export.svg
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Canvas_canvas-export.svg
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Canvas_canvas-export.svg
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of .json b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of .json
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of .json
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of .json
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Chichén Itzá, Mexico.html b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Chichén Itzá, Mexico.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Chichén Itzá, Mexico.html
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Chichén Itzá, Mexico.html
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Christ the Redeemer, Brazil.html b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Christ the Redeemer, Brazil.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Christ the Redeemer, Brazil.html
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Christ the Redeemer, Brazil.html
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Machu Picchu, Peru.html b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Machu Picchu, Peru.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Machu Picchu, Peru.html
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Machu Picchu, Peru.html
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Petra, Jordan.html b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Petra, Jordan.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Petra, Jordan.html
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Petra, Jordan.html
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/The Colosseum, Rome, Italy.html b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/The Colosseum, Rome, Italy.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/The Colosseum, Rome, Italy.html
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/The Colosseum, Rome, Italy.html
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/The Great Wall of China.html b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/The Great Wall of China.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/The Great Wall of China.html
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/The Great Wall of China.html
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/The Taj Mahal, India.html b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/The Taj Mahal, India.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/The Taj Mahal, India.html
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/The Taj Mahal, India.html
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Bar chart.txt b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Bar chart.txt
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Bar chart.txt
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Bar chart.txt
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Bar chart_mermaid-export.svg b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Bar chart_mermaid-export.svg
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Bar chart_mermaid-export.svg
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Bar chart_mermaid-export.svg
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/C4.txt b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/C4.txt
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/C4.txt
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/C4.txt
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/C4_mermaid-export.svg b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/C4_mermaid-export.svg
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/C4_mermaid-export.svg
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/C4_mermaid-export.svg
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Class.txt b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Class.txt
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Class.txt
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Class.txt
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Class_mermaid-export.svg b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Class_mermaid-export.svg
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Class_mermaid-export.svg
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Class_mermaid-export.svg
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Entity Relationship.txt b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Entity Relationship.txt
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Entity Relationship.txt
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Entity Relationship.txt
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Entity Relationship_mermai.svg b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Entity Relationship_mermai.svg
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Entity Relationship_mermai.svg
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Entity Relationship_mermai.svg
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Flow (ELK).txt b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Flow (ELK).txt
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Flow (ELK).txt
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Flow (ELK).txt
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Flow (ELK)_mermaid-export.svg b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Flow (ELK)_mermaid-export.svg
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Flow (ELK)_mermaid-export.svg
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Flow (ELK)_mermaid-export.svg
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Flow.txt b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Flow.txt
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Flow.txt
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Flow.txt
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Flow_mermaid-export.svg b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Flow_mermaid-export.svg
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Flow_mermaid-export.svg
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Flow_mermaid-export.svg
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Gantt.txt b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Gantt.txt
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Gantt.txt
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Gantt.txt
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Gantt_mermaid-export.svg b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Gantt_mermaid-export.svg
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Gantt_mermaid-export.svg
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Gantt_mermaid-export.svg
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Git.txt b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Git.txt
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Git.txt
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Git.txt
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Git_mermaid-export.svg b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Git_mermaid-export.svg
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Git_mermaid-export.svg
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Git_mermaid-export.svg
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Journey.txt b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Journey.txt
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Journey.txt
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Journey.txt
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Journey_mermaid-export.svg b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Journey_mermaid-export.svg
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Journey_mermaid-export.svg
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Journey_mermaid-export.svg
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Mind Map.txt b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Mind Map.txt
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Mind Map.txt
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Mind Map.txt
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Mind Map_mermaid-export.svg b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Mind Map_mermaid-export.svg
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Mind Map_mermaid-export.svg
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Mind Map_mermaid-export.svg
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Pie.txt b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Pie.txt
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Pie.txt
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Pie.txt
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Pie_mermaid-export.svg b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Pie_mermaid-export.svg
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Pie_mermaid-export.svg
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Pie_mermaid-export.svg
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Sequence.txt b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Sequence.txt
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Sequence.txt
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Sequence.txt
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Sequence_mermaid-export.svg b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Sequence_mermaid-export.svg
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Sequence_mermaid-export.svg
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Sequence_mermaid-export.svg
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/State.txt b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/State.txt
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/State.txt
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/State.txt
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/State_mermaid-export.svg b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/State_mermaid-export.svg
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/State_mermaid-export.svg
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/State_mermaid-export.svg
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Mind Map.json b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Mind Map.json
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Mind Map.json
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Mind Map.json
diff --git a/_regroup/demo/root/Trilium Demo/Note Types/Mind Map_mindmap-export.svg b/apps/edit-docs/demo/root/Trilium Demo/Note Types/Mind Map_mindmap-export.svg
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Note Types/Mind Map_mindmap-export.svg
rename to apps/edit-docs/demo/root/Trilium Demo/Note Types/Mind Map_mindmap-export.svg
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Custom request handler.js b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Custom request handler.js
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Custom request handler.js
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Custom request handler.js
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template.html b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template.html
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template.html
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template/js.js b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template/js.js
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template/js.js
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template/js.js
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template/js/renderPieChart.js b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template/js/renderPieChart.js
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template/js/renderPieChart.js
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template/js/renderPieChart.js
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template/js/renderPieChart/chart.js.clone.html b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template/js/renderPieChart/chart.js.clone.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template/js/renderPieChart/chart.js.clone.html
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template/js/renderPieChart/chart.js.clone.html
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template/js/renderPieChart/chartjs-plugin-datalabe.min.js b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template/js/renderPieChart/chartjs-plugin-datalabe.min.js
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template/js/renderPieChart/chartjs-plugin-datalabe.min.js
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template/js/renderPieChart/chartjs-plugin-datalabe.min.js
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template/js/renderPieChart/chartjs-plugin-datalabels.min.js/chart.js.clone.html b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template/js/renderPieChart/chartjs-plugin-datalabels.min.js/chart.js.clone.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template/js/renderPieChart/chartjs-plugin-datalabels.min.js/chart.js.clone.html
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template/js/renderPieChart/chartjs-plugin-datalabels.min.js/chart.js.clone.html
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template/js/renderTable.js b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template/js/renderTable.js
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template/js/renderTable.js
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Attribute count/template/js/renderTable.js
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Largest notes/template.html b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Largest notes/template.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Largest notes/template.html
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Largest notes/template.html
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Largest notes/template/js.js b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Largest notes/template/js.js
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Largest notes/template/js.js
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Largest notes/template/js.js
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Most cloned notes/template.html b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Most cloned notes/template.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Most cloned notes/template.html
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Most cloned notes/template.html
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Most cloned notes/template/js.js b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Most cloned notes/template/js.js
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Most cloned notes/template/js.js
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Most cloned notes/template/js.js
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Most edited notes/template.html b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Most edited notes/template.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Most edited notes/template.html
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Most edited notes/template.html
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Most edited notes/template/js.js b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Most edited notes/template/js.js
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Most edited notes/template/js.js
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Most edited notes/template/js.js
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Most linked notes/template.html b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Most linked notes/template.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Most linked notes/template.html
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Most linked notes/template.html
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Most linked notes/template/js.js b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Most linked notes/template/js.js
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Most linked notes/template/js.js
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Most linked notes/template/js.js
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Note type count/template.html b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Note type count/template.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Note type count/template.html
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Note type count/template.html
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Note type count/template/js.js b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Note type count/template/js.js
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Note type count/template/js.js
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Note type count/template/js.js
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Note type count/template/js/renderPieChart.clone.html b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Note type count/template/js/renderPieChart.clone.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Note type count/template/js/renderPieChart.clone.html
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Note type count/template/js/renderPieChart.clone.html
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Note type count/template/js/renderTable.js b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Note type count/template/js/renderTable.js
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Statistics/Note type count/template/js/renderTable.js
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Statistics/Note type count/template/js/renderTable.js
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Task manager.html b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Task manager.html
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager.html
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Create Launcher.js b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Create Launcher.js
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Create Launcher.js
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Create Launcher.js
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Buy a board game for Alice.html b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Buy a board game for Alice.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Buy a board game for Alice.html
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Buy a board game for Alice.html
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Buy a board game for Alice.jpg b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Buy a board game for Alice.jpg
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Buy a board game for Alice.jpg
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Buy a board game for Alice.jpg
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Dentist appointment.html b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Dentist appointment.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Dentist appointment.html
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Dentist appointment.html
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Get a gym membership.html b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Get a gym membership.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Get a gym membership.html
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Get a gym membership.html
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Implementation/CSS.css b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Implementation/CSS.css
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Implementation/CSS.css
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Implementation/CSS.css
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Implementation/attribute changed.js b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Implementation/attribute changed.js
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Implementation/attribute changed.js
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Implementation/attribute changed.js
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Implementation/attribute changed/reconcileAssignments.js b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Implementation/attribute changed/reconcileAssignments.js
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Implementation/attribute changed/reconcileAssignments.js
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Implementation/attribute changed/reconcileAssignments.js
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Implementation/createNewTask.js b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Implementation/createNewTask.js
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Implementation/createNewTask.js
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Implementation/createNewTask.js
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Implementation/task template.html b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Implementation/task template.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Implementation/task template.html
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Implementation/task template.html
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/gym.html b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/gym.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/gym.html
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/gym.html
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/mall/Buy some book for Bob.html b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/mall/Buy some book for Bob.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/mall/Buy some book for Bob.html
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/mall/Buy some book for Bob.html
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/mall/Buy some book for Bob/Maybe Black Swan.html b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/mall/Buy some book for Bob/Maybe Black Swan.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/mall/Buy some book for Bob/Maybe Black Swan.html
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/mall/Buy some book for Bob/Maybe Black Swan.html
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/tesco/Buy milk.html b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/tesco/Buy milk.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/tesco/Buy milk.html
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/tesco/Buy milk.html
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/work/Send invites for christmas par.html b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/work/Send invites for christmas par.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/work/Send invites for christmas par.html
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/work/Send invites for christmas par.html
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Task manager/TODO/Buy milk.clone.html b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/TODO/Buy milk.clone.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Task manager/TODO/Buy milk.clone.html
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/TODO/Buy milk.clone.html
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Task manager/TODO/Buy some book for Bob.clone.html b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/TODO/Buy some book for Bob.clone.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Task manager/TODO/Buy some book for Bob.clone.html
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/TODO/Buy some book for Bob.clone.html
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Task manager/TODO/Send invites for christmas party.clone.html b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/TODO/Send invites for christmas party.clone.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Task manager/TODO/Send invites for christmas party.clone.html
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/TODO/Send invites for christmas party.clone.html
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Tags/christmas/Buy some book for Bob.clone.html b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Tags/christmas/Buy some book for Bob.clone.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Tags/christmas/Buy some book for Bob.clone.html
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Tags/christmas/Buy some book for Bob.clone.html
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Tags/groceries/Buy milk.clone.html b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Tags/groceries/Buy milk.clone.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Tags/groceries/Buy milk.clone.html
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Tags/groceries/Buy milk.clone.html
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Tags/health.html b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Tags/health.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Tags/health.html
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Tags/health.html
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Tags/shopping/Buy milk.clone.html b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Tags/shopping/Buy milk.clone.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Tags/shopping/Buy milk.clone.html
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Tags/shopping/Buy milk.clone.html
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Tags/shopping/Buy some book for Bob.clone.html b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Tags/shopping/Buy some book for Bob.clone.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Task manager/Tags/shopping/Buy some book for Bob.clone.html
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager/Tags/shopping/Buy some book for Bob.clone.html
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Weight Tracker/Implementation.html b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Weight Tracker/Implementation.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Weight Tracker/Implementation.html
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Weight Tracker/Implementation.html
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Weight Tracker/Implementation/JS code.js b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Weight Tracker/Implementation/JS code.js
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Weight Tracker/Implementation/JS code.js
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Weight Tracker/Implementation/JS code.js
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Weight Tracker/Implementation/JS code/chart.js b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Weight Tracker/Implementation/JS code/chart.js
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Weight Tracker/Implementation/JS code/chart.js
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Weight Tracker/Implementation/JS code/chart.js
diff --git a/_regroup/demo/root/Trilium Demo/Scripting examples/Word count widget.js b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Word count widget.js
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Scripting examples/Word count widget.js
rename to apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Word count widget.js
diff --git a/_regroup/demo/root/Trilium Demo/Steel Blue.css b/apps/edit-docs/demo/root/Trilium Demo/Steel Blue.css
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Steel Blue.css
rename to apps/edit-docs/demo/root/Trilium Demo/Steel Blue.css
diff --git a/_regroup/demo/root/Trilium Demo/Steel Blue/eb-garamond-v9-latin-reg.woff2 b/apps/edit-docs/demo/root/Trilium Demo/Steel Blue/eb-garamond-v9-latin-reg.woff2
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Steel Blue/eb-garamond-v9-latin-reg.woff2
rename to apps/edit-docs/demo/root/Trilium Demo/Steel Blue/eb-garamond-v9-latin-reg.woff2
diff --git a/_regroup/demo/root/Trilium Demo/Steel Blue/raleway-v12-latin-regula.woff2 b/apps/edit-docs/demo/root/Trilium Demo/Steel Blue/raleway-v12-latin-regula.woff2
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Steel Blue/raleway-v12-latin-regula.woff2
rename to apps/edit-docs/demo/root/Trilium Demo/Steel Blue/raleway-v12-latin-regula.woff2
diff --git a/_regroup/demo/root/Trilium Demo/Tech.html b/apps/edit-docs/demo/root/Trilium Demo/Tech.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Tech.html
rename to apps/edit-docs/demo/root/Trilium Demo/Tech.html
diff --git a/_regroup/demo/root/Trilium Demo/Tech/Linux/Bash scripting.html b/apps/edit-docs/demo/root/Trilium Demo/Tech/Linux/Bash scripting.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Tech/Linux/Bash scripting.html
rename to apps/edit-docs/demo/root/Trilium Demo/Tech/Linux/Bash scripting.html
diff --git a/_regroup/demo/root/Trilium Demo/Tech/Linux/Bash scripting/Bash startup modes.html b/apps/edit-docs/demo/root/Trilium Demo/Tech/Linux/Bash scripting/Bash startup modes.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Tech/Linux/Bash scripting/Bash startup modes.html
rename to apps/edit-docs/demo/root/Trilium Demo/Tech/Linux/Bash scripting/Bash startup modes.html
diff --git a/_regroup/demo/root/Trilium Demo/Tech/Linux/Bash scripting/While loop.html b/apps/edit-docs/demo/root/Trilium Demo/Tech/Linux/Bash scripting/While loop.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Tech/Linux/Bash scripting/While loop.html
rename to apps/edit-docs/demo/root/Trilium Demo/Tech/Linux/Bash scripting/While loop.html
diff --git a/_regroup/demo/root/Trilium Demo/Tech/Linux/History.html b/apps/edit-docs/demo/root/Trilium Demo/Tech/Linux/History.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Tech/Linux/History.html
rename to apps/edit-docs/demo/root/Trilium Demo/Tech/Linux/History.html
diff --git a/_regroup/demo/root/Trilium Demo/Tech/Linux/Ubuntu.html b/apps/edit-docs/demo/root/Trilium Demo/Tech/Linux/Ubuntu.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Tech/Linux/Ubuntu.html
rename to apps/edit-docs/demo/root/Trilium Demo/Tech/Linux/Ubuntu.html
diff --git a/_regroup/demo/root/Trilium Demo/Tech/Linux/Ubuntu/Unity shortcuts.html b/apps/edit-docs/demo/root/Trilium Demo/Tech/Linux/Ubuntu/Unity shortcuts.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Tech/Linux/Ubuntu/Unity shortcuts.html
rename to apps/edit-docs/demo/root/Trilium Demo/Tech/Linux/Ubuntu/Unity shortcuts.html
diff --git a/_regroup/demo/root/Trilium Demo/Tech/Node.js/Intro.html b/apps/edit-docs/demo/root/Trilium Demo/Tech/Node.js/Intro.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Tech/Node.js/Intro.html
rename to apps/edit-docs/demo/root/Trilium Demo/Tech/Node.js/Intro.html
diff --git a/_regroup/demo/root/Trilium Demo/Tech/Node.js/Overview.html b/apps/edit-docs/demo/root/Trilium Demo/Tech/Node.js/Overview.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Tech/Node.js/Overview.html
rename to apps/edit-docs/demo/root/Trilium Demo/Tech/Node.js/Overview.html
diff --git a/_regroup/demo/root/Trilium Demo/Tech/Node.js/Overview/History.html b/apps/edit-docs/demo/root/Trilium Demo/Tech/Node.js/Overview/History.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Tech/Node.js/Overview/History.html
rename to apps/edit-docs/demo/root/Trilium Demo/Tech/Node.js/Overview/History.html
diff --git a/_regroup/demo/root/Trilium Demo/Tech/Node.js/Overview/Industry support.html b/apps/edit-docs/demo/root/Trilium Demo/Tech/Node.js/Overview/Industry support.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Tech/Node.js/Overview/Industry support.html
rename to apps/edit-docs/demo/root/Trilium Demo/Tech/Node.js/Overview/Industry support.html
diff --git a/_regroup/demo/root/Trilium Demo/Tech/Node.js/Overview/Platform architecture.html b/apps/edit-docs/demo/root/Trilium Demo/Tech/Node.js/Overview/Platform architecture.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Tech/Node.js/Overview/Platform architecture.html
rename to apps/edit-docs/demo/root/Trilium Demo/Tech/Node.js/Overview/Platform architecture.html
diff --git a/_regroup/demo/root/Trilium Demo/Tech/Node.js/Releases.html b/apps/edit-docs/demo/root/Trilium Demo/Tech/Node.js/Releases.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Tech/Node.js/Releases.html
rename to apps/edit-docs/demo/root/Trilium Demo/Tech/Node.js/Releases.html
diff --git a/_regroup/demo/root/Trilium Demo/Tech/Programming/Bash scripting.clone.html b/apps/edit-docs/demo/root/Trilium Demo/Tech/Programming/Bash scripting.clone.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Tech/Programming/Bash scripting.clone.html
rename to apps/edit-docs/demo/root/Trilium Demo/Tech/Programming/Bash scripting.clone.html
diff --git a/_regroup/demo/root/Trilium Demo/Tech/Programming/Java.html b/apps/edit-docs/demo/root/Trilium Demo/Tech/Programming/Java.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Tech/Programming/Java.html
rename to apps/edit-docs/demo/root/Trilium Demo/Tech/Programming/Java.html
diff --git a/_regroup/demo/root/Trilium Demo/Tech/Security/Trusted timestamping.clone.html b/apps/edit-docs/demo/root/Trilium Demo/Tech/Security/Trusted timestamping.clone.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Tech/Security/Trusted timestamping.clone.html
rename to apps/edit-docs/demo/root/Trilium Demo/Tech/Security/Trusted timestamping.clone.html
diff --git a/_regroup/demo/root/Trilium Demo/Work/HR.html b/apps/edit-docs/demo/root/Trilium Demo/Work/HR.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Work/HR.html
rename to apps/edit-docs/demo/root/Trilium Demo/Work/HR.html
diff --git a/_regroup/demo/root/Trilium Demo/Work/Processes.html b/apps/edit-docs/demo/root/Trilium Demo/Work/Processes.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Work/Processes.html
rename to apps/edit-docs/demo/root/Trilium Demo/Work/Processes.html
diff --git a/_regroup/demo/root/Trilium Demo/Work/Projects.html b/apps/edit-docs/demo/root/Trilium Demo/Work/Projects.html
similarity index 100%
rename from _regroup/demo/root/Trilium Demo/Work/Projects.html
rename to apps/edit-docs/demo/root/Trilium Demo/Work/Projects.html
diff --git a/_regroup/demo/root/Trilium Demo_icon-color.svg b/apps/edit-docs/demo/root/Trilium Demo_icon-color.svg
similarity index 100%
rename from _regroup/demo/root/Trilium Demo_icon-color.svg
rename to apps/edit-docs/demo/root/Trilium Demo_icon-color.svg
diff --git a/_regroup/demo/style.css b/apps/edit-docs/demo/style.css
similarity index 100%
rename from _regroup/demo/style.css
rename to apps/edit-docs/demo/style.css
diff --git a/apps/server/src/assets/db/demo.zip b/apps/server/src/assets/db/demo.zip
index b44f44fb466e5ae2af2130302b604e47eeaa3d8e..ec3f53f9157fdff36241f4940829cfb68e39071d 100644
GIT binary patch
delta 28508
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
delta 28880
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