diff --git a/vbcms-admin/includes/navbar.php b/vbcms-admin/includes/navbar.php
index 7d79e8f19fc69a7a8768b2dc1cb7229a541b9b23..909049392c30a71d238db69a49d01abcfacec30e 100644
--- a/vbcms-admin/includes/navbar.php
+++ b/vbcms-admin/includes/navbar.php
@@ -39,8 +39,8 @@ $vbcmsVer = $bdd->query("SELECT value FROM `vbcms-settings` WHERE name='vbcmsVer
 						<span class="brand-name">VBcms</span><small class="ml-1"><?=$vbcmsVer?></small>
 					</div>
 					
-					<a class="dropdown-item" target="_blank" href="https://vbcms.net/manager/myaccount"><?=translate("myProfil")?></a>
-				    <a class="dropdown-item" target="_blank" href="https://vbcms.net/manager/myliscence"><?=translate("manageliscence")?></a>
+					<!--<a class="dropdown-item" target="_blank" href="https://vbcms.net/manager/myaccount"><?=translate("myProfil")?></a>
+				    <a class="dropdown-item" target="_blank" href="https://vbcms.net/manager/myliscence"><?=translate("manageliscence")?></a>-->
 				    <a class="dropdown-item" href="?logout"><?=translate("disconnect")?></a>
 				</div>
 			</div>
diff --git a/vbcms-admin/updater.php b/vbcms-admin/updater.php
index deb39dd0c078c10abdf3e55723cd582b927dd365..9c2597fc1c27c5e421be66d7cd5791bf2d931923 100644
--- a/vbcms-admin/updater.php
+++ b/vbcms-admin/updater.php
@@ -24,8 +24,7 @@ if (!$hasNewUpdate) {
 
     <!-- Contenu -->
     <div class="dashboardTopCard" leftSidebar="240" rightSidebar="0">
-        <h3><?=translate("updateVBcms")?></h3>
-        <div class="d-flex mt-5">
+        <div class="d-flex">
             <div class="vbcms-logo">
                 <img src="<?=VBcmsGetSetting("websiteUrl")?>vbcms-admin/images/vbcms-logo/raccoon-in-box-512x.png">
             </div>
@@ -36,8 +35,8 @@ if (!$hasNewUpdate) {
 
                 <?php
                     if ($hasNewUpdate) {
-                        echo '<p>Test</p>';
-                        echo '<button type="button" onclick="$(\'#updateModal\').modal(\'toggle\');" class="btn btn-light">'.translate("downloadAndInstall").'</button>';
+                        //echo '<p>Test</p>';
+                        echo '<button type="button" onclick="$(\'#updateModal\').modal(\'toggle\');" class="btn btn-sm btn-light">'.translate("downloadAndInstall").'</button>';
                     }
                     
                 ?>
@@ -79,24 +78,24 @@ if (!$hasNewUpdate) {
                 <a class="text-dark" target="_blank" href="https://discord.gg/DpfF8Kz"><i class="fab fa-discord"></i> Notre discord</a>
             </div>
         </div>
-
-        <div class="modal fade" id="updateModal" tabindex="-1">
-			<div class="modal-dialog">
-				<div class="modal-content">
-					<div class="modal-header">
-						<h5>Mettre à jour VBcms</h5>
-	      			</div>
-			      	<div class="modal-body">
-			        	<p>Vous êtes sur le point de télécharger et d'installer une mise à jour. Tout se fera automatiquement, vous serez automatiquement redirigé après l'installation effectuée.</p>
+        
+        <div class="modal fade" id="updateModal">
+            <div class="modal-dialog">
+                <div class="modal-content">
+                    <div class="modal-header bg-brown text-white">
+                        <h5 id="extensionActivationModalTitle" class="modal-title"><?=translate('updateVBcms')?></h5>
+                    </div>
+                    <div class="modal-body">
+			        	<p>Vous êtes sur le point de télécharger et d'installer une mise à jour. Tout se fera automatiquement, vous serez automatiquement redirigé une fois l'installation effectuée.</p>
 			        	<p><strong>Note : Il se peut que d'autres mises à jours suivent celle-ci, référez-vous à notre documentation pour en savoir plus.</strong></p>
 			      	</div>
-	      			<div class="modal-footer">
-				        <button type="button" class="btn btn-secondary" data-dismiss="modal">Peut-être plus-tard</button>
-				        <button type="button" data-dismiss="modal" onclick="updateVBcms()" class="btn btn-success">Faire la mise à jour</button>
-	      			</div>
-	    		</div>
-	  		</div>
-		</div>
+                    <div class="modal-footer">
+                        <button type="button" class="btn btn-outline-brown" data-dismiss="modal"><?=translate("later")?></button>
+                        <button type="button" data-dismiss="modal" onclick="updateVBcms()" class="btn btn-brown"><?=translate("doTheUpdate")?></button>
+                    </div>
+                </div>
+            </div>
+        </div>
 
     </div>
     <script type="text/javascript">
@@ -113,7 +112,19 @@ if (!$hasNewUpdate) {
         ?>
     });
     	async function updateVBcms(){
-    		$.get("<?=VBcmsGetSetting("websiteUrl")?>backTasks?updateVBcms", function(data) {
+            <?php
+            $updateKey = getRandomString(5);
+            $query=$bdd->query("SELECT * FROM `vbcms-settings` WHERE name = 'updateKey'")->fetch(PDO::FETCH_ASSOC);
+            if(empty($query)){
+                $query=$bdd->prepare("INSERT INTO `vbcms-settings` (`name`, `value`) VALUES ('updateKey', ?)");
+                $query->execute([$updateKey]);
+            }else{
+                $query=$bdd->prepare("UPDATE `vbcms-settings` SET `value` = ? WHERE `name` = 'updateKey'");
+                $query->execute([$updateKey]);
+            }
+            
+            ?>
+    		$.get("<?=VBcmsGetSetting("websiteUrl")?>backTasks?updateVBcms=<?=$updateKey?>", function(data) {
 				if (data=="") {
 					SnackBar({
                         message: "backTasks ne retourne rien: "+data,
@@ -121,22 +132,29 @@ if (!$hasNewUpdate) {
                         timeout: false
                     });
 				}else{
+                    console.log(data);
 					details = JSON.parse(data);
                     if (details.success == true) {
                         window.location.replace(details.link);
                     } else {
-                        if (details.code == 0) {
+                        if (details.code == "WRONG_CODE") {
                             SnackBar({
-                                message: "Impossible de télécharger la mise à jour",
+                                message: "Erreur, le code de mise à jour généré n'est pas valide.",
                                 status: "danger",
                                 timeout: false
                             });
-                        } else if(details.code == 1) {
+                        } else if(details.code == "CANT_OPEN_ARCHIVE") {
                             SnackBar({
                                 message: "Impossible d'ouvrir l'archive de la mise à jour",
                                 status: "danger",
                                 timeout: false
                             });
+                        } else if(details.code == "CANT_DOWNLOAD_UPDATE") {
+                            SnackBar({
+                                message: "Impossible de télécharger la mise à jour",
+                                status: "danger",
+                                timeout: false
+                            });
                         }
                     }
 				}
diff --git a/vbcms-content/translations/FR.php b/vbcms-content/translations/FR.php
index 691c9adc64eaf037a220f948a84105d1c91d100a..91501cc692275e780492f8bb8611b97efcfe2f71 100644
--- a/vbcms-content/translations/FR.php
+++ b/vbcms-content/translations/FR.php
@@ -55,6 +55,14 @@ $translation["visualize"] = "Visualiser";
 $translation["commands"] = "Commandes";
 $translation["rename"] = "Renommer";
 $translation["error"] = "Erreur";
+$translation["later"] = "Plus-tard";
+$translation["doTheUpdate"] = "Faire la mise à jour";
+$translation["sample"] = "sample";
+$translation["sample"] = "sample";
+$translation["sample"] = "sample";
+$translation["sample"] = "sample";
+$translation["sample"] = "sample";
+$translation["sample"] = "sample";
 $translation["sample"] = "sample";
 $translation["sample"] = "sample";
 $translation["sample"] = "sample";
diff --git a/vbcms-core/clientBackTasks.php b/vbcms-core/clientBackTasks.php
index dd93470846272a8d398b14483f8e857d5010d3ec..29d9fc4ede893ff8ead9f2dd04f8abd1d9201f5c 100644
--- a/vbcms-core/clientBackTasks.php
+++ b/vbcms-core/clientBackTasks.php
@@ -1,65 +1,35 @@
 <?php
-if (isset($_GET["netAccess"]) && !empty($_GET["netAccess"])) {
-	$decryption_iv = '1106737252181743';
-	$ciphering = "AES-128-CTR";
-	$iv_length = openssl_cipher_iv_length($ciphering);
-	$options = 0;
-    $decryption_key = VBcmsGetSetting('encryptionKey');
-    $instructions= openssl_decrypt($_GET["netAccess"], $ciphering,  $decryption_key, $options, $decryption_iv);
+if (isset($_GET["updateVBcms"])&&!empty($_GET["updateVBcms"])) {
+	$updateKey=$bdd->query("SELECT * FROM `vbcms-settings` WHERE name = 'updateKey'")->fetch(PDO::FETCH_ASSOC);
+	if($_GET["updateVBcms"]==$updateKey){
+		$newUpdateInfos = checkVBcmsUpdates();
 
-    // On a réussi la connexion à distance, on va créer une session superadmin
-
-    if (isJson($instructions)) {
-    	$instructions = json_decode($instructions, true);
-    	switch ($instructions["command"]) {
-    		case 'getVersionInfo':
-    			echo VBcmsGetSetting('vbcmsVersion');
-    			break;
-
-            case 'autoUpdate':
-                $autoUpdate = $bdd->query("SELECT value FROM `vbcms-settings` WHERE name = 'autoUpdate'")->fetchColumn();
-                if ($autoUpdate=="1") {
-                    $updateState = json_decode(file_get_contents(VBcmsGetSetting("websiteUrl")."backTasks/?updateVBcms"), true);
-                    if ($updateState["success"]==true) {
-                        file_get_contents(VBcmsGetSetting("websiteUrl")."update.php?silentUpdate");
-                        $result["result"] = "success";
-                        echo json_encode($result);
-                    } else {
-                        $result["result"] = "error";
-                        $result["code"] = $updateState["code"];
-                        $result["message"] = $updateState["error"];
-                        echo json_encode($result);
-                    }
-                    
-                } else {
-                   echo "Auto update is not enabled";
-                }
-                break;
-            
-            case 'criticalUpdate':
-                $response=$bdd->prepare("UPDATE `vbcms-settings` SET value = ? WHERE name = 'updateCanal'");
-                $response->execute(["release"]);
-
-                $updateState = json_decode(file_get_contents(VBcmsGetSetting("websiteUrl")."backTasks/?updateVBcms"), true);
-                if ($updateState["success"]==true) {
-                    file_get_contents(VBcmsGetSetting("websiteUrl")."update.php?silentUpdate");
-                    $result["result"] = "success";
-                    echo json_encode($result);
-                } else {
-                    $result["result"] = "error";
-                    $result["code"] = $updateState["code"];
-                    $result["message"] = $updateState["error"];
-                    echo json_encode($result);
-                } 
-                
-                break;
-
-    		default:
-    			echo "unrecognized command";
-    			break;
-    	}
-    }
-} elseif (isset($_GET["updateVBcms"])) {
+		$updateFilename = $GLOBALS['vbcmsRootPath']."/vbcms-content/updates/".basename($newUpdateInfos['zip']);
+		if (!file_exists($GLOBALS['vbcmsRootPath']."/vbcms-content/updates")) mkdir($GLOBALS['vbcmsRootPath']."/vbcms-content/updates", 0755);
+		//echo $updateInfosData["downloadLink"]."?serverId=".VBcmsGetSetting("serverId")."&key=".$key;
+		file_put_contents($updateFilename, file_get_contents($newUpdateInfos["zip"]));
+		if (file_exists($updateFilename)) {
+			$zip = new ZipArchive;
+			if ($zip->open($updateFilename) === TRUE) {
+				$zip->extractTo($GLOBALS['vbcmsRootPath']);
+				$zip->close();
+	
+				$response["success"] = true;
+				$response["link"] = VBcmsGetSetting("websiteUrl")."update.php";
+			} else {
+				$response["success"] = false;
+				$response["code"] = "CANT_OPEN_ARCHIVE"; // Impossible d'ouvrir l'archive
+			}
+		} else {
+			$response["success"] = false;
+			$response["code"] = "CANT_DOWNLOAD_UPDATE"; // Impossible de télécharger la màj
+		}
+	}else{
+		$response["success"] = false;
+		$response["code"] = "WRONG_CODE"; // Impossible d'ouvrir l'archive
+	}
+	echo json_encode($response);
+	/*
 	$updateInfos = file_get_contents("https://api.vbcms.net/updater/lastest?serverId=".VBcmsGetSetting("serverId")."&key=".VBcmsGetSetting('encryptionKey')."&version=".VBcmsGetSetting('vbcmsVersion')."&canal=".VBcmsGetSetting('updateCanal'));
 	if(isJson($updateInfos)){
 		$updateInfosData = json_decode($updateInfos, true);
@@ -88,6 +58,6 @@ if (isset($_GET["netAccess"]) && !empty($_GET["netAccess"])) {
 	} else {
 		$response["success"] = false;
 		$response["code"] = 0; // Impossible de lire la réponse -> !JSON
-	}
+	}*/
     
 } 
\ No newline at end of file
diff --git a/vbcms-core/functions.php b/vbcms-core/functions.php
index 5c1b614092171b2f75cb773ee46270ad0a08af06..2ccbc674dfd74d81f51c7353ec82c96804ca4939 100644
--- a/vbcms-core/functions.php
+++ b/vbcms-core/functions.php
@@ -196,13 +196,16 @@ function checkVBcmsUpdates(){
                 $updateInfos['name'] = "Commit ".substr($updateInfosData[0]['sha'], 0, 7);
                 $updateInfos['description'] = $updateInfosData[0]['commit']['message'];
                 $updateInfos['date'] = $remoteUpdateDate->format("Y-m-d H:i:s");
+                $updateInfos['zip'] = "https://api.github.com/repos/SofianeLasri/VBcms-2.0/zipball";
+                $updateInfos['type'] = "dev";
             }else{
-                if($updateInfosData[0]['prerelease']){
-                    $remoteUpdateDate = new DateTime($updateInfosData[0]['published_at']);
-                    $updateInfos['name'] = $updateInfosData[0]['name'];
-                    $updateInfos['description'] = $updateInfosData[0]['body'];
-                    $updateInfos['date'] = $remoteUpdateDate->format("Y-m-d H:i:s");
-                }
+                $remoteUpdateDate = new DateTime($updateInfosData[0]['published_at']);
+                $updateInfos['name'] = $updateInfosData[0]['name'];
+                $updateInfos['description'] = $updateInfosData[0]['body'];
+                $updateInfos['date'] = $remoteUpdateDate->format("Y-m-d H:i:s");
+                $updateInfos['zip'] = $updateInfosData[0]['zipball_url'];
+                if($updateInfosData[0]['prerelease']) $updateInfos['type'] = "nightly";
+                else $updateInfos['type'] = "stable";
                 
             }
             
@@ -212,7 +215,7 @@ function checkVBcmsUpdates(){
         
                 $response = $bdd->query("SELECT COUNT(*) FROM `vbcms-notifications` WHERE origin = '[\"vbcms-updater\", \"notifyUpdate\"]'")->fetchColumn();
                 if ($response!=1) {
-                    $response = $bdd->prepare("INSERT INTO `vbcms-notifications` (`id`, `origin`, `link`, `content`, `removable`, `date`, `userId`) VALUES (NULL, '[\"vbcms-updater\", \"notifyUpdate\"]', '/vbcms-admin/updater\"', ?, '0', ?, 0)");
+                    $response = $bdd->prepare("INSERT INTO `vbcms-notifications` (`id`, `origin`, `link`, `content`, `dismissible`, `date`, `userId`) VALUES (NULL, '[\"vbcms-updater\", \"notifyUpdate\"]', '/vbcms-admin/updater\"', ?, '0', ?, 0)");
                     $response->execute([translate("isNotUpToDate"), date("Y-m-d H:i:s")]);
                 }
                 return $updateInfos;