diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 6ab33b0c360e83d7b8c3400e7a6804b2db1b755c..32fa50d0ec78d10094edd17ad3b53f7f4be2e7d7 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -164,7 +164,7 @@ releases:x64:
     - docker info
   script:
     - docker pull $CI_REGISTRY_IMAGE:$IMAGE_TAG || true
-    - docker build --cache-from $CI_REGISTRY_IMAGE:$IMAGE_TAG --pull -t "$CI_REGISTRY_IMAGE:$IMAGE_TAG" -f release/docker/Dockerfile .
+    - docker build --cache-from $CI_REGISTRY_IMAGE:$IMAGE_TAG --pull -t "$CI_REGISTRY_IMAGE:$IMAGE_TAG" --build-arg="INSTALL_DEX=$INSTALL_DEX" -f release/docker/Dockerfile .
     #- docker login -u "gitlab-ci-token" -p "$CI_BUILD_TOKEN" $CI_REGISTRY
     #- docker push "$CI_REGISTRY_IMAGE:$IMAGE_TAG"
     # Temporary push on dockerhub 
@@ -183,6 +183,7 @@ package:test:docker-test-image:
     - when: manual
   variables:
     IMAGE_TAG: "test-image"
+    INSTALL_DEX: "yes"
 
 package:dev:docker:
   extends: .docker-build-app-image
@@ -192,6 +193,7 @@ package:dev:docker:
     - if: $CI_COMMIT_BRANCH == "dev"
   variables:
     IMAGE_TAG: "dev"
+    INSTALL_DEX: "yes"
 
 package:prod:docker:
   stage: package
diff --git a/release/Makefile b/release/Makefile
index 4a2cec18204b78e6f54dc0fe3622eca9faa5955b..6efcb75d8a35af1a74fff5d121edea23c34a7299 100644
--- a/release/Makefile
+++ b/release/Makefile
@@ -37,6 +37,7 @@ ARCH = $(shell uname -m | sed -e "s/86_//")
 PLATFORM = $(shell uname -s | tr A-Z a-z)
 ADD_DEBUG = Y
 DEST =
+INSTALL_DEX = no
 
 # Keep all intermediate targets
 .SECONDARY:
@@ -84,9 +85,11 @@ base-gui: $(call nodedep,duniter-ui) base
 
 # Build the base
 .PHONY: base
+base: install_dex=$(filter yes,$(INSTALL_DEX))
 base: | node_modules
-	@cargo build --release -p duniter-cli
+	@cargo build --release -p duniter-cli $(if $(install_dex),-p duniter-dbex,)
 	@mv target/release/duniter bin/duniter
+	@$(if $(install_dex),mv target/release/dex bin/dex,:)
 
 index.html: $(call nodedep,duniter-ui) $(addprefix node_modules/,$(leveldown.COMPILED) $(sqlite3.COMPILED))
 	@sed -i "s/\"main\": \"index.js\",/\"main\": \"index.html\",/" package.json
diff --git a/release/docker/Dockerfile b/release/docker/Dockerfile
index a4689d4acc1eab50e550dd69f48d4b7679ce0feb..edac20d7cc7f331fc4bd353c01fa41d48946fc06 100644
--- a/release/docker/Dockerfile
+++ b/release/docker/Dockerfile
@@ -9,6 +9,7 @@ LABEL version="0.1.0"
 LABEL description="Duniter server (Crypto-currency software to manage libre currency such as Äž1)"
 
 ARG DUNITER_UI_VER="1.7.x"
+ARG INSTALL_DEX="no"
 
 RUN apk update && \
 	apk add ca-certificates curl && \
@@ -25,8 +26,8 @@ RUN curl https://sh.rustup.rs -sSf | sh -s -- -y
 
 # build duniter
 RUN PATH=${HOME}/.cargo/bin:${PATH} \
-	RUSTFLAGS="-C target-feature=-crt-static" \
-	make -C release ADD_DEBUG=N server-gui clean \
+	RUSTFLAGS="-C target-feature=-crt-static -L/usr/lib" \
+	make -C release ADD_DEBUG=N INSTALL_DEX=${INSTALL_DEX} server-gui clean \
 	&& rm -rf work/extra
 
 # ------------------------------------------------------------------------------
@@ -35,6 +36,8 @@ RUN PATH=${HOME}/.cargo/bin:${PATH} \
 
 FROM node:10-alpine
 
+ARG INSTALL_DEX="no"
+
 # install jq
 RUN apk add jq
 
@@ -46,8 +49,10 @@ RUN mkdir -p /var/lib/duniter /etc/duniter && chown duniter:duniter /var/lib/dun
 # copy the build artifact from the build stage
 COPY --from=build --chown=duniter:duniter /duniter/work /duniter
 
-# copy duniter wrapper
+# copy wrappers
 COPY release/docker/duniter.sh /usr/bin/duniter
+COPY release/docker/dex.sh /usr/bin/dex
+RUN [ "$INSTALL_DEX" = yes ] || rm /usr/bin/dex
 
 # copy entrypoint
 COPY release/docker/docker-entrypoint.sh /
diff --git a/release/docker/dex.sh b/release/docker/dex.sh
new file mode 100755
index 0000000000000000000000000000000000000000..48edbd2045a137d813e87d8d46bc9d791240e1ec
--- /dev/null
+++ b/release/docker/dex.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+if [ "$1" != --home ]; then
+  set -- --home /var/lib/duniter "$@"
+fi
+exec /duniter/bin/dex "$@"