diff --git a/.gitignore b/.gitignore
index 19a562dacc2064d4631245eb67195a87b571d0d9..056b5c2ebb090f7f281f564c156a953e2c51b5a7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,7 +6,7 @@
 !/platforms/desktop
 !/platforms/android
 /resources/android/build/local.properties
-/resources/android/build/Cesium.keystore
+/resources/android/build/*.keystore
 /resources/android/build/release-signing.properties
 /plugins/
 .idea/
@@ -14,17 +14,23 @@
 .local/
 .directory
 /*.iml
+/npm-debug.log
+/package-lock.json
+/yarn-error.log
+
 
-/www/lib/
-/www/js/config.js
-/www/dist
 /dist/web
+
 /hooks/playstore-config.json
 /hooks/minify-conf.json
 /hooks/uglify-config.json
 /hooks/after_prepare/ionic-minify.js
 /hooks/after_prepare/uglify.js
 
+/www/js/config.js
+/www/dist
+/www/lib
+
 # Generated CSS
 /www/css/ionic.app.css
 /www/css/ionic.app.min.css
@@ -38,8 +44,6 @@
 /www/css/leaflet.app.min.css
 /www/img/layers*.png
 /www/img/marker*.png
+/www/img/loader.gif
 /www/img/search-icon.png
-
-/npm-debug.log
-/package-lock.json
-/yarn-error.log
+/www/img/search-icon-mobile.png
diff --git a/github.sh b/github.sh
deleted file mode 100755
index 527b839ecac5adb1263f0f69489978caa7c3fb01..0000000000000000000000000000000000000000
--- a/github.sh
+++ /dev/null
@@ -1,131 +0,0 @@
-#!/bin/bash
-
-### Control that the script is run on `dev` branch
-branch=`git rev-parse --abbrev-ref HEAD`
-if [[ ! "$branch" = "master" ]];
-then
-  echo ">> This script must be run under \`master\` branch"
-  exit 1
-fi
-
-### Get version to release
-current=`grep -P "version\": \"\d+.\d+.\d+(\w*)" package.json | grep -m 1 -oP "\d+.\d+.\d+(\w*)"`
-if [[ "_$current" == "_" ]]; then
-  echo "Unable to read the current version in 'package.json'. Please check version format is: x.y.z (x and y should be an integer)."
-  exit 1;
-fi
-echo "Current version: $current"
-
-### Get repo URL
-PROJECT_NAME=cesium
-REPO="duniter/cesium"
-REPO_API_URL=https://api.github.com/repos/$REPO
-REPO_PUBLIC_URL=https://github.com/$REPO
-
-###  get auth token
-GITHUB_TOKEN=`cat ~/.config/${PROJECT_NAME}/.github`
-if [[ "_$GITHUB_TOKEN" != "_" ]]; then
-    GITHUT_AUTH="Authorization: token $GITHUB_TOKEN"
-else
-    echo "ERROR: Unable to find github authentication token file: "
-    echo " - You can create such a token at https://github.com/settings/tokens > 'Generate a new token'."
-    echo " - Then copy the token and paste it in the file '~/.config/${PROJECT_NAME}/.github' using a valid token."
-    exit 1
-fi
-
-case "$1" in
-  del)
-    result=`curl -i "$REPO_API_URL/releases/tags/v$current"`
-    release_url=`echo "$result" | grep -P "\"url\": \"[^\"]+"  | grep -oP "$REPO_API_URL/releases/\d+"`
-    if [[ $release_url != "" ]]; then
-        echo "Deleting existing release..."
-        curl -H 'Authorization: token $GITHUB_TOKEN'  -XDELETE $release_url
-    fi
-  ;;
-
-  pre|rel)
-    if [[ "_$2" != "_" ]]; then
-
-      if [[ $1 = "pre" ]]; then
-        prerelease="true"
-      else
-        prerelease="false"
-      fi
-
-      description=`echo $2`
-      if [[ "_$description" = "_" ]]; then
-          description="Release v$current"
-      fi
-
-      result=`curl -s -H ''"$GITHUT_AUTH"'' "$REPO_API_URL/releases/tags/v$current"`
-      release_url=`echo "$result" | grep -P "\"url\": \"[^\"]+" | grep -oP "https://[A-Za-z0-9/.-]+/releases/\d+"`
-      if [[ "_$release_url" != "_" ]]; then
-        echo "Deleting existing release... $release_url"
-        result=`curl -H ''"$GITHUT_AUTH"'' -s -XDELETE $release_url`
-        if [[ "_$result" != "_" ]]; then
-            error_message=`echo "$result" | grep -P "\"message\": \"[^\"]+" | grep -oP ": \"[^\"]+\""`
-            echo "Delete existing release failed with error$error_message"
-            exit 1
-        fi
-      else
-        echo "Release not exists yet on github."
-      fi
-
-      echo "Creating new release..."
-      echo " - tag: v$current"
-      echo " - description: $description"
-      result=`curl -H ''"$GITHUT_AUTH"'' -s $REPO_API_URL/releases -d '{"tag_name": "v'"$current"'","target_commitish": "master","name": "'"$current"'","body": "'"$description"'","draft": false,"prerelease": '"$prerelease"'}'`
-      #echo "DEBUG - $result"
-      upload_url=`echo "$result" | grep -P "\"upload_url\": \"[^\"]+"  | grep -oP "https://[A-Za-z0-9/.-]+"`
-
-      if [[ "_$upload_url" = "_" ]]; then
-        echo "Failed to create new release for repo $REPO."
-        echo "Server response:"
-        echo "$result"
-        exit 1
-      fi
-
-      ###  Sending files
-      echo "Uploading files to ${upload_url} ..."
-      dirname=$(pwd)
-
-      ZIP_FILE="$dirname/dist/web/build/${PROJECT_NAME}-v$current-web.zip"
-      if [[ -f "${ZIP_FILE}" ]]; then
-        result=$(curl -s -H ''"$GITHUT_AUTH"'' -H 'Content-Type: application/zip' -T "${ZIP_FILE}" "${upload_url}?name=${PROJECT_NAME}-v${current}-web.zip")
-        browser_download_url=$(echo "$result" | grep -P "\"browser_download_url\":[ ]?\"[^\"]+" | grep -oP "\"browser_download_url\":[ ]?\"[^\"]+"  | grep -oP "https://[A-Za-z0-9/.-]+")
-        ZIP_SHA256=$(sha256sum "${ZIP_FILE}")
-        echo " - ${browser_download_url}  | SHA256 Checksum: ${ZIP_SHA256}"
-      else
-        echo " - ERROR: Web release (ZIP) not found! Skipping."
-      fi
-
-      APK_FILE="${dirname}/platforms/android/build/outputs/apk/release/android-release.apk"
-      if [[ -f "${APK_FILE}" ]]; then
-        result=$(curl -s -H ''"$GITHUT_AUTH"'' -H 'Content-Type: application/vnd.android.package-archive' -T "${APK_FILE}" "${upload_url}?name=${PROJECT_NAME}-v${current}-android.apk")
-        browser_download_url=$(echo "$result" | grep -P "\"browser_download_url\":[ ]?\"[^\"]+" | grep -oP "\"browser_download_url\":[ ]?\"[^\"]+"  | grep -oP "https://[A-Za-z0-9/.-]+")
-        APK_SHA256=$(sha256sum "${APK_FILE}")
-        echo " - ${browser_download_url}  | SHA256 Checksum: ${APK_SHA256}"
-      else
-        echo "- ERROR: Android release (APK) not found! Skipping."
-      fi
-
-      echo "-----------------------------------------"
-      echo "Successfully uploading files !"
-      echo " -> Release url: ${REPO_PUBLIC_URL}/releases/tag/v${current}"
-      exit 0
-    else
-      echo "Wrong arguments"
-      echo "Usage:"
-      echo " > ./github.sh del|pre|rel <release_description>"
-      echo "With:"
-      echo " - del: delete existing release"
-      echo " - pre: use for pre-release"
-      echo " - rel: for full release"
-      exit 1
-    fi
-    ;;
-  *)
-    echo "No task given"
-    exit 1
-    ;;
-esac
diff --git a/scripts/env-global.sh b/scripts/env-global.sh
index 4acb1a6ea325d8ed5120bb23bf6321199f43d697..0a2891ca9dc262744aa513b5c3194da96c4a0307 100755
--- a/scripts/env-global.sh
+++ b/scripts/env-global.sh
@@ -21,10 +21,12 @@ ANDROID_SDK_VERSION=r29.0.0
 ANDROID_SDK_TOOLS_VERSION=4333796
 ANDROID_SDK_ROOT=/usr/lib/android-sdk
 ANDROID_SDK_TOOLS_ROOT=${ANDROID_SDK_ROOT}/build-tools
-ANDROID_OUTPUT_APK=platforms/android/build/outputs/apk
+ANDROID_OUTPUT_APK=${PROJECT_DIR}/platforms/android/build/outputs/apk
 ANDROID_OUTPUT_APK_DEBUG=${ANDROID_OUTPUT_APK}/debug
 ANDROID_OUTPUT_APK_RELEASE=${ANDROID_OUTPUT_APK}/release
 
+WEB_OUTPUT=${PROJECT_DIR}/dist/web/build
+
 #JAVA_HOME=
 
 GRADLE_VERSION=4.10.3
diff --git a/scripts/github.sh b/scripts/github.sh
index 415dcb796f51e4e3437199566ab2dda8f7e83a11..ebc8ad25888003868e53a00d98ccb8a6e35c0c09 100755
--- a/scripts/github.sh
+++ b/scripts/github.sh
@@ -7,7 +7,9 @@ if [[ "_" == "_${PROJECT_DIR}" ]]; then
   export PROJECT_DIR
 fi;
 
+# Preparing Android environment
 cd ${PROJECT_DIR}
+. ${PROJECT_DIR}/scripts/env-global.sh
 
 ### Control that the script is run on `dev` branch
 branch=$(git rev-parse --abbrev-ref HEAD)
@@ -31,6 +33,7 @@ REPO="duniter/cesium"
 REPO_API_URL="https://api.github.com/repos/${REPO}"
 REPO_PUBLIC_URL="https://github.com/${REPO}"
 
+
 ###  get auth token
 GITHUB_TOKEN=$(cat ~/.config/${PROJECT_NAME}/.github)
 if [[ "_$GITHUB_TOKEN" != "_" ]]; then
@@ -98,22 +101,25 @@ case "$1" in
       echo "Uploading files to ${upload_url} ..."
       dirname=$(pwd)
 
-      ZIP_FILE="$dirname/dist/web/build/${PROJECT_NAME}-v$current-web.zip"
+      ZIP_FILE="${WEB_OUTPUT}/${PROJECT_NAME}-v$current-web.zip"
       if [[ -f "${ZIP_FILE}" ]]; then
         result=$(curl -s -H ''"$GITHUT_AUTH"'' -H 'Content-Type: application/zip' -T "${ZIP_FILE}" "${upload_url}?name=${PROJECT_NAME}-v${current}-web.zip")
         browser_download_url=$(echo "$result" | grep -P "\"browser_download_url\":[ ]?\"[^\"]+" | grep -oP "\"browser_download_url\":[ ]?\"[^\"]+"  | grep -oP "https://[A-Za-z0-9/.-]+")
         ZIP_SHA256=$(sha256sum "${ZIP_FILE}")
-        echo " - ${browser_download_url}  | SHA256 Checksum: ${ZIP_SHA256}"
+        echo " - ${browser_download_url}  | Checksum: ${ZIP_SHA256}"
       else
         echo " - ERROR: Web release (ZIP) not found! Skipping."
       fi
 
-      APK_FILE="${dirname}/platforms/android/build/outputs/apk/release/android-release.apk"
+      APK_FILE="${ANDROID_OUTPUT_APK_RELEASE}/android-release.apk"
       if [[ -f "${APK_FILE}" ]]; then
-        result=$(curl -s -H ''"$GITHUT_AUTH"'' -H 'Content-Type: application/vnd.android.package-archive' -T "${APK_FILE}" "${upload_url}?name=${PROJECT_NAME}-v${current}-android.apk")
+        mkdir -p ${PROJECT_DIR}/dist/android
+        cp ${APK_FILE} ${PROJECT_DIR}/dist/android/${PROJECT_NAME}-v${current}-android.apk
+        APK_FILE="${PROJECT_DIR}/dist/android/${PROJECT_NAME}-v${current}-android.apk"
+        result=$(curl -s -H ''"$GITHUT_AUTH"'' -H 'Content-Type: application/vnd.android.package-archive' -T "${APK_FILE}" "${upload_url}")
         browser_download_url=$(echo "$result" | grep -P "\"browser_download_url\":[ ]?\"[^\"]+" | grep -oP "\"browser_download_url\":[ ]?\"[^\"]+"  | grep -oP "https://[A-Za-z0-9/.-]+")
         APK_SHA256=$(sha256sum "${APK_FILE}")
-        echo " - ${browser_download_url}  | SHA256 Checksum: ${APK_SHA256}"
+        echo " - ${browser_download_url}  | Checksum: ${APK_SHA256}"
       else
         echo "- ERROR: Android release (APK) not found! Skipping."
       fi
diff --git a/scripts/release.sh b/scripts/release.sh
index a90ebd8ae0b03af7f06e302c2eeda05840928f47..efc1d5e1211dd3e0c5ca39fa01c36f6429848dfd 100755
--- a/scripts/release.sh
+++ b/scripts/release.sh
@@ -9,7 +9,6 @@ fi;
 
 cd ${PROJECT_DIR}
 
-
 ### Control that the script is run on `dev` branch
 branch=$(git rev-parse --abbrev-ref HEAD)
 if [[ ! "$branch" == "master" ]];
@@ -78,20 +77,15 @@ if [[ $? -ne 0 ]]; then
   exit 1
 fi
 
-
 echo "----------------------------------"
 echo "- Compiling sources..."
 echo "----------------------------------"
-# Update config file
-gulp config --env default_fr
 # Compile
-gulp build
+gulp config build --env default_fr
 
 echo "----------------------------------"
 echo "- Building Android artifact..."
 echo "----------------------------------"
-
-
 . scripts/build-android.sh --release
 if [[ $? -ne 0 ]]; then
   exit 1
@@ -101,10 +95,7 @@ fi
 echo "----------------------------------"
 echo "- Building web artifact..."
 echo "----------------------------------"
-
-# Update config file
-gulp config --env default
-gulp webBuild --release
+gulp config webBuild --env default --release
 if [[ $? -ne 0 ]]; then
   exit 1
 fi
@@ -120,7 +111,7 @@ git add package.json config.xml install.sh www/js/config.js www/manifest.json
 if [[ $? -ne 0 ]]; then
   exit 1
 fi
-git commit -m "v$2" && git tag "v$2" && git push
+git commit -m "v$2" && git tag -f "v$2" && git push
 if [[ $? -ne 0 ]]; then
   exit 1
 fi