diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 46e9d7c89e50887a63b0d9ff5e738adb51f3ef1a..20cdc28dff9307b1da52e955eda1fff87d0ddfbe 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -31,8 +31,8 @@ workflow:
   before_script:
     - export NVM_DIR="$HOME/.nvm"
     - . "$NVM_DIR/nvm.sh"
-    - nvm install 10.19.0
-    - nvm use 10.19.0
+    - nvm install 10
+    - nvm use 10
     - curl https://sh.rustup.rs -sSf | sh -s -- -y
     - export PATH="$HOME/.cargo/bin:$PATH"
     - export RUSTFLAGS="-D warnings"
diff --git a/release/arch/arm/build-arm.sh b/release/arch/arm/build-arm.sh
index 70703f17e9c28d388ef6a143e4af68bf9fd7d566..0c48e9524177bfd0001de4d04e2689d3c7e2c91d 100755
--- a/release/arch/arm/build-arm.sh
+++ b/release/arch/arm/build-arm.sh
@@ -6,7 +6,7 @@ export NVM_DIR="$HOME/.nvm"
 
 
 # Prepare
-NODE_VERSION=10.19.0
+NODE_VERSION=10.20.1
 ARCH="`uname -m | sed -e \"s/86_//\"`"
 NVER="v$NODE_VERSION"
 DUNITER_TAG=$1
@@ -94,13 +94,16 @@ cp -R ${SRC}/* duniter_release/
 # Creating DEB packaging
 mv duniter_release/release/extra/debian/package duniter-${ARCH}
 mkdir -p duniter-${ARCH}/opt/duniter/
+mkdir -p duniter-${ARCH}/etc/bash_completion.d/
 chmod 755 duniter-${ARCH}/DEBIAN/post*
 chmod 755 duniter-${ARCH}/DEBIAN/pre*
 sed -i "s/Version:.*/Version:$DUNITER_DEB_VER/g" duniter-${ARCH}/DEBIAN/control
+echo "Extra..."
+mv duniter_release/release/extra/completion/duniter_completion.bash duniter-${ARCH}/etc/bash_completion.d/duniter_completion.bash
+echo "Zipping..."
 cd duniter_release
 pwd
 rm -Rf .git
-echo "Zipping..."
 zip -qr ../duniter.zip *
 cd ../
 mv duniter.zip duniter-${ARCH}/opt/duniter/
diff --git a/release/arch/linux/build-lin.sh b/release/arch/linux/build-lin.sh
index 8af3343cdb66b51c07ae84384d0a6c5f1d3a1e05..b7bc805ffed119068214470b83900af56a842070 100644
--- a/release/arch/linux/build-lin.sh
+++ b/release/arch/linux/build-lin.sh
@@ -90,6 +90,8 @@ build_extra_desktop() {
 build_extra_server() {
 	mkdir -p "${1}/lib/systemd/system" || exit 1
 	cp "${ROOT}/release/extra/systemd/duniter.service" "${1}/lib/systemd/system" || exit 1
+	mkdir -p "${1}/etc/bash_completion.d/" || exit 1
+	cp "${ROOT}/release/extra/completion/duniter_completion.bash" "${1}/etc/bash_completion.d/duniter_completion.bash" || exit 1
 }
 
 # Debian package building.
@@ -122,7 +124,7 @@ build_deb_pack() {
 # Install tools needed to build
 # -----------------------------
 
-NODE_VERSION=10.19.0
+NODE_VERSION=10.20.1
 NVER="v${NODE_VERSION}"
 DUNITER_TAG="v${1}"
 DUNITER_DEB_VER=" ${1}"
diff --git a/release/extra/completion/duniter_completion.bash b/release/extra/completion/duniter_completion.bash
new file mode 100644
index 0000000000000000000000000000000000000000..c5af54675d8821699ab872beea44deb39ff0a077
--- /dev/null
+++ b/release/extra/completion/duniter_completion.bash
@@ -0,0 +1,197 @@
+#
+#  The basic options we'll complete.
+#
+DUNITER_ARGUMENTS="config \
+parse-logs \
+wizard \
+reset \
+check-config \
+export-bc \
+reapply-to \
+revert \
+revert-to \
+start \
+stop \
+restart \
+status \
+logs \
+direct_start \
+plug \
+unplug \
+gen-next \
+bc-resolve \
+gen-root \
+gen-root-choose \
+pub \
+sec \
+sync \
+peer \
+import \
+sync-mempool \
+sync-mempool-search \
+sync-mempool-fwd \
+pull \
+forward \
+import-lookup \
+crawl-lookup \
+fwd-pending-ms \
+ws2p \
+current \
+trim-indexes \
+dump \
+search \
+dump-ww \
+webstart \
+webrestart \
+direct_webstart \
+-h \
+-V \
+--home \
+-d \
+--autoconf \
+--addep \
+--remep \
+--cpu \
+--nb-cores \
+--prefix \
+-c \
+--nostdout \
+--noshuffle \
+--socks-proxy \
+--tor-proxy \
+--reaching-clear-ep \
+--force-tor \
+--rm-proxies \
+--timeout \
+--httplogs \
+--nohttplogs \
+--isolate \
+--forksize \
+--notrim \
+--notrimc \
+--memory \
+--store-txs \
+--store-ww \
+--loglevel \
+--sql-traces \
+--show \
+--check \
+--submit-local \
+--submit-host \
+--submit-port \
+--at \
+--salt \
+--passwd \
+--keyN \
+--keyr \
+--keyp \
+--keyprompt \
+--keyfile \
+--nointeractive \
+--nocautious \
+--cautious \
+--nopeers \
+--nop2p \
+--localsync \
+--nosources \
+--nosbx \
+--onlypeers \
+--slow \
+--readfilesystem \
+--minsig \
+--upnp \
+--noupnp \
+--bma \
+--nobma \
+--bma-with-crawler \
+--bma-without-crawler \
+-p \
+--ipv4 \
+--ipv6 \
+--remoteh \
+--remote4 \
+--remote6 \
+--remotep \
+--ws2p-upnp \
+--ws2p-noupnp \
+--ws2p-host \
+--ws2p-port \
+--ws2p-remote-host \
+--ws2p-remote-port \
+--ws2p-remote-path \
+--ws2p-max-private \
+--ws2p-max-public \
+--ws2p-private \
+--ws2p-public \
+--ws2p-noprivate \
+--ws2p-nopublic \
+--ws2p-sync \
+--ws2p-nosync \
+--ws2p-prefered-add \
+--ws2p-prefered-rm \
+--ws2p-prefered-only \
+--ws2p-privileged-add \
+--ws2p-privileged-rm \
+--ws2p-privileged-only \
+--webmhost \
+--webmport
+"
+
+DUNITER_WIZARD_ARGS="key network network-reconfigure currency pow parameters"
+
+DUNITER_RESET_ARGS="config data peers tx stats all"
+
+DUNITER_WS2P_ARGS="list-prefered list-privileged list-nodes show-conf"
+
+DUNITER_REACHING_CLEAR_EP_ARGS="clear tor none"
+
+_duniter_completion() 
+{
+    local cur prev base
+    COMPREPLY=()
+    cur="${COMP_WORDS[COMP_CWORD]}"
+    prev="${COMP_WORDS[COMP_CWORD-1]}"
+
+    #
+    #  Complete the arguments to some of the basic commands.
+    #
+    case "${prev}" in
+        wizard)
+            COMPREPLY=( $(compgen -W "${DUNITER_WIZARD_ARGS}" -- ${cur}) )
+            return 0
+            ;;
+        reset)
+            COMPREPLY=( $(compgen -W "${DUNITER_RESET_ARGS}" -- ${cur}) )
+            return 0
+            ;;
+        ws2p)
+            COMPREPLY=( $(compgen -W "${DUNITER_WS2P_ARGS}" -- ${cur}) )
+            return 0
+            ;;
+        --reaching-clear-ep)
+            COMPREPLY=( $(compgen -W "${DUNITER_REACHING_CLEAR_EP_ARGS}" -- ${cur}) )
+            return 0
+            ;;
+        --home)
+            COMPREPLY=( $(compgen -d -- ${cur}) )
+            return 0
+            ;;
+	--keyfile)
+            COMPREPLY=( $(compgen -f -- ${cur}) )
+            return 0
+            ;;
+
+        *)
+        ;;
+    esac
+
+   # do not complete after mono argument
+   if [ "${#COMP_WORDS[@]}" != "2" ]; then
+     return
+   fi
+
+   COMPREPLY=($(compgen -W "${DUNITER_ARGUMENTS}" -- ${cur}))  
+   return 0
+}
+
+complete -F _duniter_completion duniter