diff --git a/.gitignore b/.gitignore
index 35a7b46e27cc948d4696769a07d7a34ab23e9216..b7ce8f1dd48167fb677d7e40135ae93dc5d01b24 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,18 +13,18 @@ arch/linux/.vagrant
 arch/linux/cesium-*
 arch/linux/splash.html
 arch/linux/package.json
+arch/linux/package-lock.json
 arch/linux/yarn.lock
 arch/linux/LICENSE.txt
-arch/linux/ubuntu*
 arch/linux/nw*
 
 arch/windows/.vagrant
 arch/windows/cesium-*
 arch/windows/splash.html
 arch/windows/package.json
+arch/windows/package-lock.json
 arch/windows/yarn.lock
 arch/windows/LICENSE.txt
-arch/windows/LICENSE.txt
 arch/windows/*.box
 arch/windows/*.exe
 arch/windows/.directory
diff --git a/README.md b/README.md
index 858677828712c692381c73a7a42366d7a343b5df..c672da6983a979230dbd8f4a9064240371a2adca 100644
--- a/README.md
+++ b/README.md
@@ -20,7 +20,7 @@ This script will run Cesium Desktop, taking care of installing Cesium + Nw.js if
 
 The release script use some Vagrant, and a VM running into VirtualBox.
 
-- Install VirtualBox version 6 (not tested under version 7)
+- Install VirtualBox version 7
 - Install the VirtualBox Extension Pack (need by OSx build, for USB support).
 - Install vagrant : `sudo apt install vagrant`
 
diff --git a/arch/linux/appimage.yml b/arch/linux/appimage.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2ecd9957c3cb2831ef342b04d6f267664c8db708
--- /dev/null
+++ b/arch/linux/appimage.yml
@@ -0,0 +1,31 @@
+app: cesium-desktop
+
+ingredients:
+  script:
+    - CESIUM_ROOT=cesium-desktop.AppDir/opt/cesium
+    - rm -rf $CESIUM_ROOT
+    - mkdir -p $CESIUM_ROOT
+    - TGZ_FILE=$(ls ../cesium-desktop-v*-linux-x64.tar.gz | sort -V | tail -n 1)
+    - tar xzf $TGZ_FILE -C $CESIUM_ROOT
+script:
+  - cat > cesium.desktop <<EOF
+  - [Desktop Entry]
+  - Type=Application
+  - Name=Cesium Äž1
+  - Exec=cesium
+  - StartupNotify=true
+  - Icon=cesium
+  - Categories=Utility;
+  - EOF
+  - ln -s opt/cesium/nw/nw usr/bin/cesium
+  - mkdir -p usr/share/icons/hicolor/256x256/apps
+  - cp opt/cesium/nw/cesium/img/logo_32px.png usr/share/icons/hicolor/32x32/apps/cesium.png
+  - cp opt/cesium/nw/cesium/img/logo_128px.png usr/share/icons/hicolor/128x128/apps/cesium.png
+  - cp opt/cesium/nw/cesium/img/logo_256px.png usr/share/icons/hicolor/256x256/apps/cesium.png
+  - cp opt/cesium/nw/cesium/img/logo_512px.png usr/share/icons/hicolor/512x512/apps/cesium.png
+  - cp usr/share/icons/hicolor/256x256/apps/cesium.png .
+  - chmod +r -R opt/cesium
+  - chmod +x opt/cesium/nw/nw opt/cesium/nw/lib opt/cesium/nw/locales
+  - sed -i 's/Cesium/Cesium Äž1/g' opt/cesium/nw/splash.html
+  - sed -i 's/Cesium/Cesium Äž1/g' opt/cesium/nw/cesium/index.html
+  - sed -i 's/"Cesium"/"Cesium Äž1"/g' opt/cesium/nw/cesium-desktop.js
diff --git a/arch/linux/appimage/appimage.yml b/arch/linux/appimage/appimage.yml
deleted file mode 100644
index 64442523624d213ad2e2202b68441822c203d314..0000000000000000000000000000000000000000
--- a/arch/linux/appimage/appimage.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-app: cesium-desktop
-
-ingredients:
-  script:
-    - rm -rf cesium-desktop.AppDir/opt/cesium
-    - mkdir -p cesium-desktop.AppDir/opt/cesium
-    - TGZ_FILE=$(ls ../cesium-desktop-v*-linux-x64.tar.gz | sort -V | tail -n 1)
-    - tar xzf $TGZ_FILE -C cesium-desktop.AppDir/opt/cesium
-script:
-  - cat > cesium.desktop <<EOF
-  - [Desktop Entry]
-  - Type=Application
-  - Name=Cesium Äž1
-  - Exec=cesium
-  - StartupNotify=true
-  - Icon=cesium
-  - Categories=Utility;
-  - EOF
-  - ln -s opt/cesium/nw/nw usr/bin/cesium
-  - mkdir -p usr/share/icons/hicolor/256x256/apps
-  - cp opt/cesium/nw/cesium/img/logo_256px.png usr/share/icons/hicolor/256x256/apps/cesium.png
-  - cp usr/share/icons/hicolor/256x256/apps/cesium.png ./app.png
-  - chmod ugo+r -R opt/cesium
-  - chmod ugo+x -R opt/cesium/nw/nw opt/cesium/nw/lib opt/cesium/nw/locales
diff --git a/arch/linux/bootstrap.sh b/arch/linux/bootstrap.sh
index 37003997b3b606816d47b1e26a6174059f716636..0752ebda56582f1813e83dcdd6d4af349ff46f2a 100755
--- a/arch/linux/bootstrap.sh
+++ b/arch/linux/bootstrap.sh
@@ -5,7 +5,7 @@ apt update
 # Deps need for tar.gz and .deb build
 apt install --yes git curl python3-minimal zip fakeroot
 # Deps need for AppImage build
-apt install --yes imagemagick desktop-file-utils binutils
+apt install --yes imagemagick desktop-file-utils binutils fuse3
 
 # User installation
 sudo su vagrant -c "bash /vagrant/user-bootstrap.sh"
diff --git a/arch/linux/build-deb.sh b/arch/linux/build-deb.sh
index 19f639fcea0b14b0205cd48b0eaac9db48dff798..0c219f1f781a87a203591423d1d8893c42e3d31d 100755
--- a/arch/linux/build-deb.sh
+++ b/arch/linux/build-deb.sh
@@ -154,12 +154,16 @@ rm -rf "${RELEASES}/${PROJECT_NAME}-x64" || exit 1
 # Build Desktop version .AppImage
 # -------------------------------------------------
 
-cp -f /vagrant/appimage/* "${RELEASES}/" || exit 1
-cp -f /vagrant/${OUTPUT_BASENAME}.tar.gz "${RELEASES}/" || exit 1
+cp -f /vagrant/appimage.yml "${RELEASES}/" || exit 1
+cp -f /vagrant/pkg2appimage "${RELEASES}/" || exit 1
+ln -s /vagrant/${OUTPUT_BASENAME}.tar.gz "${RELEASES}/${OUTPUT_BASENAME}.tar.gz" || exit 1
 cd "${RELEASES}"
-bash -ex ./pkg2appimage appimage.yml || exit 1
-
-OUTPUT_APPIMAGE=$(ls "./out/*.AppImage" | sort -V | tail -n 1)
+./pkg2appimage appimage.yml || exit 1
+OUTPUT_APPIMAGE=$(ls ./out/*.AppImage | sort -V | tail -n 1)
+if [ ! -f "${OUTPUT_APPIMAGE}" ]; then
+  echo "ERROR: No AppImage file found in directory ${RELEASES}/out - Please check previous error"
+  exit 1
+fi
 mv "${OUTPUT_APPIMAGE}" "/vagrant/${OUTPUT_BASENAME}.AppImage" || exit 1
 
 # -------------------------------------------------
diff --git a/arch/linux/appimage/pkg2appimage b/arch/linux/pkg2appimage
similarity index 100%
rename from arch/linux/appimage/pkg2appimage
rename to arch/linux/pkg2appimage
diff --git a/arch/windows/build.bat b/arch/windows/build.bat
index 7277a08fb51720f758d3e42efc5c15ba4aa2aed6..47f74066c49139ae3a9b1714d08c0fdc985ade71 100644
--- a/arch/windows/build.bat
+++ b/arch/windows/build.bat
@@ -1,3 +1,4 @@
+echo off
 
 set NW_VERSION=0.42.2
 set NW_RELEASE=v%NW_VERSION%
@@ -11,17 +12,26 @@ REM NPM
 set PATH="C:\Users\vagrant\AppData\Roaming\npm";%PATH%
 REM InnoSetup
 set PATH="C:\Program Files (x86)\Inno Setup 5";%PATH%
+set SOURCE=C:\vagrant
+if not exist "%SOURCE%" (
+  set SOURCE=\\VBOXSVR\vagrant
+)
+if not exist "%SOURCE%" (
+  echo "vagrant folder not mounted !"
+  pause
+  exit 1
+)
 
 cd C:\Users\vagrant
 REM echo "Deleting old source..."
 del /s /q cesium-v*-web.zip
 rd /s /q cesium
 rd /s /q cesium_release
-echo "Cloning Cesium (from git.duniter.org)..."
 echo "Cloning Cesium (from github.com)..."
 git clone https://github.com/duniter/cesium.git
 if not exist C:\Users\vagrant\cesium (
   echo "ERROR: Cannot clone Cesium source!"
+  pause
   exit 1
 )
 cd cesium
@@ -30,35 +40,39 @@ for /f "delims=" %%a in ('git rev-list --tags --max-count=1') do @set CESIUM_REV
 for /f "delims=" %%a in ('git describe --tags %CESIUM_REV%') do @set CESIUM_TAG=%%a
 set CESIUM=cesium-%CESIUM_TAG%-web
 set CESIUM_ZIP=%CESIUM%.zip
-echo %CESIUM_TAG%
-echo %CESIUM%
-echo %CESIUM_ZIP%
+echo "Version: %CESIUM_TAG%"
+echo "Basename: %CESIUM%"
+echo "Filename: %CESIUM_ZIP%"
 
 cd ..
 
-if not exist C:\vagrant\%NW_GZ% (
+if not exist %SOURCE%\%NW_GZ% (
   echo "Downloading %NW%.zip..."
-  REM powershell -Command "Invoke-WebRequest -Uri https://dl.nwjs.io/v%NW_VERSION%/%NW%.zip -OutFile C:\vagrant\%NW_GZ%"
-  powershell -Command "(New-Object System.Net.WebClient).DownloadFile(\"https://dl.nwjs.io/v%NW_VERSION%/%NW%.zip\", \"C:\vagrant\%NW_GZ%\")"
+  REM powershell -Command "Invoke-WebRequest -Uri https://dl.nwjs.io/v%NW_VERSION%/%NW%.zip -OutFile %SOURCE%\%NW_GZ%"
+  powershell -Command "(New-Object System.Net.WebClient).DownloadFile(\"https://dl.nwjs.io/v%NW_VERSION%/%NW%.zip\", \"%SOURCE%\%NW_GZ%\")"
 )
 
-if not exist C:\vagrant\%CESIUM_ZIP% (
+if not exist %SOURCE%\%CESIUM_ZIP% (
   echo "Downloading %CESIUM_ZIP%..."
-  powershell -Command "(New-Object System.Net.WebClient).DownloadFile(\"https://github.com/duniter/cesium/releases/download/%CESIUM_TAG%/%CESIUM_ZIP%\", \"C:\vagrant\%CESIUM_ZIP%\")"
+  powershell -Command "(New-Object System.Net.WebClient).DownloadFile(\"https://github.com/duniter/cesium/releases/download/%CESIUM_TAG%/%CESIUM_ZIP%\", \"%SOURCE%\%CESIUM_ZIP%\")"
 )
 
-call 7z x C:\vagrant\%NW_GZ%
+call 7z x %SOURCE%\%NW_GZ%
 move %NW% cesium_release
+if not exist cesium_release (
+  echo "ERROR Missing cesium_release folder !"
+  exit 1
+)
 cd cesium_release
 mkdir cesium
 cd cesium
-call 7z x C:\vagrant\%CESIUM_ZIP%
+call 7z x %SOURCE%\%CESIUM_ZIP%
 
 cd ..
-xcopy C:\vagrant\LICENSE.txt .\ /s /e
-xcopy C:\vagrant\package.json .\ /s /e
-xcopy C:\vagrant\cesium-desktop.js .\ /s /e
-xcopy C:\vagrant\splash.html .\ /s /e
+xcopy %SOURCE%\LICENSE.txt .\ /s /e
+xcopy %SOURCE%\package.json .\ /s /e
+xcopy %SOURCE%\cesium-desktop.js .\ /s /e
+xcopy %SOURCE%\splash.html .\ /s /e
 call npm install
 
 cd C:\Users\vagrant\cesium_release\cesium
@@ -70,8 +84,9 @@ rmdir /s /q "maps"
 rmdir /s /q ".git"
 cd ..
 
-iscc C:\vagrant\cesium.iss /DROOT_PATH=%cd%
-move %cd%\Cesium.exe C:\vagrant\cesium-desktop-%CESIUM_TAG%-windows-x64.exe
+iscc %SOURCE%\cesium.iss /DROOT_PATH=%cd%
+move %cd%\Cesium.exe %SOURCE%\cesium-desktop-%CESIUM_TAG%-windows-x64.exe
 echo "Build done: binary available at cesium-desktop-%CESIUM_TAG%-windows-x64.exe"
 
+pause
 exit 0
diff --git a/release.sh b/release.sh
index 3d00c3a58ff2817ea7f7d05dcb56a4bb434a142c..90e61006fc58a24acfce0664c9ee4c5f6300d6e2 100755
--- a/release.sh
+++ b/release.sh
@@ -100,7 +100,7 @@ for ASSET_BASENAME in $EXPECTED_ASSETS; do
   if [[ -z `echo $ASSETS | grep -F "$ASSET_BASENAME"` ]]; then
 
     # Debian
-    if [[ $ASSET_BASENAME == *"linux-x64.deb" ]] || [[ $ASSET_BASENAME == *"linux-x64.tar.gz" ]] || [[ $ASSET_BASENAME == *"linux-x64.AppImage" ]]; then
+    if [[ $ASSET_BASENAME == *"linux-x64."* ]]; then
       if [[ $ARCH == "x86_64" ]]; then
 
         ASSET_PATH="$PWD/arch/linux/$ASSET_BASENAME"
diff --git a/scripts/build.sh b/scripts/build.sh
index 50d3b2ffd218ab1091cd1aaf9c44442dbc47313d..287a3ff27bc58243216f74f27e741ff933620d98 100755
--- a/scripts/build.sh
+++ b/scripts/build.sh
@@ -7,7 +7,7 @@ make)
   case "$2" in
   linux)
     cd arch/linux
-    if [[ ! -f "cesium-desktop-v$TAG-linux-x64.deb" ]]; then
+    if [[ ! -f "cesium-desktop-v$TAG-linux-x64.AppImage" ]]; then
       [[ $? -eq 0 ]] && echo ">> Copying Cesium Desktop sources..."
       [[ $? -eq 0 ]] && cp -f ../../src/* ./
       [[ $? -eq 0 ]] && cp -f ../../LICENSE ./LICENSE.txt