diff --git a/index.js b/index.js
index 74263d44a89c438a1eb63841783ba3d1d29ff3fe..535748f127ae311d21b56cfe690bf8333ce8dd9a 100644
--- a/index.js
+++ b/index.js
@@ -188,24 +188,26 @@ function Stack(dependencies) {
 
     // Initialize server (db connection, ...)
     try {
-      yield server.plugFileSystem();
+      server.onPluggedFSHook = () => co(function*() {
 
-      // Register the configuration hook for loading phase (overrides the loaded data)
-      server.dal.loadConfHook = (conf) => co(function*() {
-        // Loading injection
-        for (const callback of configLoadingCallbacks) {
-          yield callback(conf, program, logger, server.dal.confDAL);
-        }
-      });
+        // Register the configuration hook for loading phase (overrides the loaded data)
+        server.dal.loadConfHook = (conf) => co(function*() {
+          // Loading injection
+          for (const callback of configLoadingCallbacks) {
+            yield callback(conf, program, logger, server.dal.confDAL);
+          }
+        });
 
-      // Register the configuration hook for saving phase (overrides the saved data)
-      server.dal.saveConfHook = (conf) => co(function*() {
-        const clonedConf = _.clone(conf);
-        for (const callback of configBeforeSaveCallbacks) {
-          yield callback(clonedConf, program, logger, server.dal.confDAL);
-        }
-        return clonedConf;
-      });
+        // Register the configuration hook for saving phase (overrides the saved data)
+        server.dal.saveConfHook = (conf) => co(function*() {
+          const clonedConf = _.clone(conf);
+          for (const callback of configBeforeSaveCallbacks) {
+            yield callback(clonedConf, program, logger, server.dal.confDAL);
+          }
+          return clonedConf;
+        });
+      })
+      yield server.plugFileSystem();
 
       const conf = yield server.loadConf();
 
diff --git a/package.json b/package.json
index 0aeb373d0313b0c707ac26de2344c811e64a1634..500296bd9798e25a58824de3ae0e59ccf8736576 100644
--- a/package.json
+++ b/package.json
@@ -71,7 +71,7 @@
   "devDependencies": {
     "coveralls": "2.11.4",
     "duniter-bma": "^1.1.2",
-    "duniter-crawler": "^1.1.3",
+    "duniter-crawler": "^1.1.4",
     "duniter-keypair": "^1.1.3",
     "duniter-prover": "^1.1.2",
     "eslint": "3.13.1",
diff --git a/release/arch/debian/Vagrantfile b/release/arch/debian/Vagrantfile
index 5a7820f4ea3b6acca874fbdfab0040ced4f9e493..da912f7fbaa6332b1081e4f486ca5e24dc3086ea 100644
--- a/release/arch/debian/Vagrantfile
+++ b/release/arch/debian/Vagrantfile
@@ -12,7 +12,7 @@ Vagrant.configure("2") do |config|
 
   # Every Vagrant development environment requires a box. You can search for
   # boxes at https://atlas.hashicorp.com/search.
-  config.vm.box = "https://s3.eu-central-1.amazonaws.com/duniter/vagrant/duniter_ubuntu.box"
+  config.vm.box = "https://s3.eu-central-1.amazonaws.com/duniter/vagrant/duniter_trusty64.box"
   config.vm.provision :shell, path: "bootstrap.sh"
 
   # Disable automatic box update checking. If you disable this, then
diff --git a/release/arch/debian/bootstrap.sh b/release/arch/debian/bootstrap.sh
index 529eb51f5e562cb063439e7b2b780d65fd3d64e1..6666f97b5365f01b41da099362a4e4ae51301e2f 100644
--- a/release/arch/debian/bootstrap.sh
+++ b/release/arch/debian/bootstrap.sh
@@ -9,4 +9,4 @@ apt-get update
 apt-get install --yes git curl build-essential yarn python-minimal zip
 
 # User installation
-sudo su ubuntu -c "bash /vagrant/user-bootstrap.sh"
+sudo su vagrant -c "bash /vagrant/user-bootstrap.sh"
diff --git a/release/arch/debian/build-deb.sh b/release/arch/debian/build-deb.sh
index 559db82bd1ee9e7b359803ad45ae37f32f68c26e..ebc1a54b8ded6049246fcd31fc25b9cf42355129 100644
--- a/release/arch/debian/build-deb.sh
+++ b/release/arch/debian/build-deb.sh
@@ -126,10 +126,16 @@ cd "$RELEASES/desktop_/node_modules/sqlite3"
 node-pre-gyp --runtime=node-webkit --target=$NW_VERSION configure
 node-pre-gyp --runtime=node-webkit --target=$NW_VERSION build
 cp lib/binding/node-webkit-$NW_RELEASE-linux-x64/node_sqlite3.node lib/binding/node-v$ADDON_VERSION-linux-x64/node_sqlite3.node
+cd "$RELEASES/desktop_/node_modules/heapdump"
+nw-gyp --target=$NW_VERSION configure
+nw-gyp --target=$NW_VERSION build
 
 # Unused binaries
 cd "$RELEASES/desktop_/"
 rm -rf node_modules/sqlite3/build
+#rm -rf node_modules/naclb/build
+#rm -rf node_modules/wotb/build
+#rm -rf node_modules/scryptb/build
 
 ## Install Nw.js
 mkdir -p "$RELEASES/desktop_release"
@@ -155,7 +161,7 @@ tar czf /vagrant/duniter-desktop-${DUNITER_TAG}-linux-x64.tar.gz * --exclude ".g
 # -------------------------------------------------
 
 # Create .deb tree + package it
-cp -r "$RELEASES/desktop_release/sources/ci/travis/debian" "$RELEASES/duniter-x64"
+cp -r "$RELEASES/desktop_release/sources/release/arch/debian/package" "$RELEASES/duniter-x64"
 mkdir -p "$RELEASES/duniter-x64/opt/duniter/"
 chmod 755 ${RELEASES}/duniter-x64/DEBIAN/post*
 chmod 755 ${RELEASES}/duniter-x64/DEBIAN/pre*
diff --git a/release/arch/debian/package/DEBIAN/control b/release/arch/debian/package/DEBIAN/control
index 99210ce3ecae62e96655ed35e93d76d0bdf7c446..5acb70497eaff53e5c495feceae9079e744a7a2b 100644
--- a/release/arch/debian/package/DEBIAN/control
+++ b/release/arch/debian/package/DEBIAN/control
@@ -5,4 +5,4 @@ Priority: optional
 Architecture: all
 Installed-Size: 200000
 Maintainer: Cedric Moreau <cem.moreau@gmail.com>
-Description: Crypto-currency software to manage libre currency such as Äž1
+Description: Crypto-currency software to powering Äž1 libre currency
diff --git a/release/arch/windows/build.bat b/release/arch/windows/build.bat
index bf88476ef7418dcfd1f0034c67461e6948092af4..1c69eb24b80f30dacf92a3c96905867409494ee9 100644
--- a/release/arch/windows/build.bat
+++ b/release/arch/windows/build.bat
@@ -63,6 +63,9 @@ call npm install --build-from-source
 call node-pre-gyp --runtime=node-webkit --target=%NW_VERSION% --msvs_version=2015 configure
 call node-pre-gyp --runtime=node-webkit --target=%NW_VERSION% --msvs_version=2015 build
 copy %cd%\lib\binding\node-webkit-%NW_RELEASE%-win32-x64\node_sqlite3.node %cd%\lib\binding\node-v%ADDON_VERSION%-win32-x64\node_sqlite3.node /Y
+cd ../heapdump
+call nw-gyp --target=%NW_VERSION% --msvs_version=2015 configure
+call nw-gyp --target=%NW_VERSION% --msvs_version=2015 build
 cd ../..
 call npm install duniter-ui --save --production
 rd /s /q %cd%\node_modules\duniter-ui\node_modules
diff --git a/release/arch/windows/duniter.iss b/release/arch/windows/duniter.iss
index dc5cc97ff4e46db827138b1df2cbc9309596a657..c8458801483cf110799d26b747416417bbc9497d 100644
--- a/release/arch/windows/duniter.iss
+++ b/release/arch/windows/duniter.iss
@@ -15,7 +15,7 @@
 #error "Unable to find MyAppExe"
 #endif
 
-#define MyAppVerStr "v0.20.0a18"
+#define MyAppVerStr "v1.2.3"
 
 [Setup]
 AppName={#MyAppName}
diff --git a/release/new_version.sh b/release/new_version.sh
index b2e2ad10614a37060e38bb9bbf1820e17bff4b9c..4ada664b58c60f007173b8fd7fe4f2983f94c50d 100755
--- a/release/new_version.sh
+++ b/release/new_version.sh
@@ -12,6 +12,9 @@ if [[ $1 =~ ^[0-9]+.[0-9]+.[0-9]+((a|b)[0-9]+)?$ ]]; then
   sed -i "s/version').equal('.*/version').equal('$1');/g" test/integration/branches.js
   sed -i "s/ release: .*/ release: v$1/g" appveyor.yml
 
+  # Duniter.iss (Windows installer)
+  sed -i "s/define MyAppVerStr.*/define MyAppVerStr \"v$1\"/g" release/arch/windows/duniter.iss
+
   # GUI containers version
   sed -i "s/name\": .*/name\": \"v$1\",/g" gui/package.json
   sed -i "s/title\": .*/title\": \"v$1\",/g" gui/package.json
@@ -22,7 +25,7 @@ if [[ $1 =~ ^[0-9]+.[0-9]+.[0-9]+((a|b)[0-9]+)?$ ]]; then
 
   # Commit
   git reset HEAD
-  git add install.sh package.json test/integration/branches.js gui/package.json gui/index.html release/arch/debian/package/DEBIAN/control install.sh
+  git add install.sh package.json test/integration/branches.js gui/package.json gui/index.html release/arch/debian/package/DEBIAN/control install.sh release/arch/windows/duniter.iss
   git commit -m "v$1"
   git tag "v$1"
 else
diff --git a/release/scripts/build.sh b/release/scripts/build.sh
index b6f0435aa6f01d0801ad95e2c7e97cbfb281571b..a341dc222766bfb49c21f264d967853077a0b59d 100755
--- a/release/scripts/build.sh
+++ b/release/scripts/build.sh
@@ -7,7 +7,7 @@ make)
   case "$2" in
   arm)
     cd release/arch/arm
-    ./build-deb.sh
+    ./build-arm.sh
     if [ ! $? -eq 0 ]; then
       echo ">> Something went wrong. Stopping build."
     else
diff --git a/server.js b/server.js
index dd69d2b19ce99ce96305597f4ba30595bf03564d..e8cb1a2dc305528b209ee64b42e59630c63e9253 100644
--- a/server.js
+++ b/server.js
@@ -90,6 +90,7 @@ function Server (home, memoryOnly, overrideConf) {
     logger.debug('Plugging file system...');
     const params = yield paramsP;
     that.dal = fileDAL(params);
+    yield that.onPluggedFSHook()
   });
 
   this.unplugFileSystem = () => co(function *() {
@@ -453,6 +454,11 @@ function Server (home, memoryOnly, overrideConf) {
    * Default WoT transforming method for certs => links. To be overriden by a module.
    */
   this.generatorNewCertsToLinks = () => Promise.resolve({})
+
+  /*
+   * Default hook on file system plugging. To be overriden by module system.
+   */
+  this.onPluggedFSHook = () => Promise.resolve({})
 }
 
 util.inherits(Server, stream.Duplex);
diff --git a/yarn.lock b/yarn.lock
index 0a11df8738a9194181d45c742f251d3a555fa089..027d0b8ea3b835724c13ace8f73242e0552df91b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -646,8 +646,8 @@ decamelize@^1.0.0:
   resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
 
 deep-extend@~0.4.0:
-  version "0.4.1"
-  resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253"
+  version "0.4.2"
+  resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f"
 
 deep-is@~0.1.2, deep-is@~0.1.3:
   version "0.1.3"
@@ -742,9 +742,9 @@ duniter-common@^1.0.0:
     node-pre-gyp "0.6.32"
     tweetnacl "0.14.3"
 
-duniter-crawler@^1.1.0, duniter-crawler@^1.1.3:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/duniter-crawler/-/duniter-crawler-1.1.3.tgz#a826268a70b02b4aadd74002bc05dfdb93b6d91f"
+duniter-crawler@^1.1.0, duniter-crawler@^1.1.4:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/duniter-crawler/-/duniter-crawler-1.1.4.tgz#fe6544c01aae0e0041ae46176118b57ebf46c0d1"
   dependencies:
     async "2.2.0"
     co "4.6.0"
@@ -878,11 +878,11 @@ escape-html@~1.0.3:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
 
-escape-string-regexp@1.0.2:
+escape-string-regexp@1.0.2, escape-string-regexp@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz#4dbc2fe674e71949caf3fb2695ce7f2dc1d9a8d1"
 
-escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
+escape-string-regexp@^1.0.5:
   version "1.0.5"
   resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
 
@@ -1714,13 +1714,20 @@ js-yaml@3.0.1:
     argparse "~ 0.1.11"
     esprima "~ 1.0.2"
 
-js-yaml@3.8.2, js-yaml@3.x, js-yaml@^3.2.5, js-yaml@^3.5.1:
+js-yaml@3.8.2:
   version "3.8.2"
   resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.2.tgz#02d3e2c0f6beab20248d412c352203827d786721"
   dependencies:
     argparse "^1.0.7"
     esprima "^3.1.1"
 
+js-yaml@3.x, js-yaml@^3.2.5, js-yaml@^3.5.1:
+  version "3.8.4"
+  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.4.tgz#520b4564f86573ba96662af85a8cafa7b4b5a6f6"
+  dependencies:
+    argparse "^1.0.7"
+    esprima "^3.1.1"
+
 jsbn@~0.1.0:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
@@ -1883,10 +1890,14 @@ mime-types@~1.0.1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-1.0.2.tgz#995ae1392ab8affcbfcb2641dd054e943c0d5dce"
 
-mime@1.3.4, mime@^1.2.11, mime@^1.3.4:
+mime@1.3.4:
   version "1.3.4"
   resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53"
 
+mime@^1.2.11, mime@^1.3.4:
+  version "1.3.5"
+  resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.5.tgz#dc1ee70b80fee4999cb0775c9f94beefc9a779a3"
+
 mime@~1.2.11:
   version "1.2.11"
   resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10"
@@ -2847,7 +2858,7 @@ streamsearch@0.1.2:
   version "0.1.2"
   resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a"
 
-string-width@^1.0.1:
+string-width@^1.0.1, string-width@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
   dependencies:
@@ -2991,8 +3002,8 @@ tar-pack@~3.3.0:
     uid-number "~0.0.6"
 
 tar-stream@^1.5.0:
-  version "1.5.2"
-  resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.2.tgz#fbc6c6e83c1a19d4cb48c7d96171fc248effc7bf"
+  version "1.5.4"
+  resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.4.tgz#36549cf04ed1aee9b2a30c0143252238daf94016"
   dependencies:
     bl "^1.0.0"
     end-of-stream "^1.0.0"
@@ -3198,10 +3209,10 @@ which@^1.1.1:
     isexe "^2.0.0"
 
 wide-align@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad"
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710"
   dependencies:
-    string-width "^1.0.1"
+    string-width "^1.0.2"
 
 window-size@0.1.0:
   version "0.1.0"