diff --git a/public_html/deployment/inc_functions.php b/public_html/deployment/inc_functions.php
index c4c33d312b44ef0c4f8fbaf495a8101a7933465b..61f43c33d3b23c372202a8554df0d00afff88e1a 100644
--- a/public_html/deployment/inc_functions.php
+++ b/public_html/deployment/inc_functions.php
@@ -41,22 +41,34 @@ $aParams = array();
             }
         }
     }
-        foreach (array(
-            $aConfig['dataDir'].'/database', 
-            $aConfig['dataDir'].'/projects', 
-            $aConfig['dataDir'].'/sshkeys', 
-            ) as $sDir2Check){
-            if (!is_dir($sDir2Check)){
-                $aErrors[]="* directory not found: $sDir2Check\n";
-            } else {
-                if (!is_writable($sDir2Check)){
-                    $aErrors[]="* $sDir2Check is NOT writable.\n";
-                }
+    foreach (array(
+        $aConfig['dataDir'].'/database', 
+        $aConfig['dataDir'].'/projects', 
+        $aConfig['dataDir'].'/sshkeys', 
+        ) as $sDir2Check){
+        if (!is_dir($sDir2Check)){
+            $aErrors[]="* directory not found: $sDir2Check\n";
+        } else {
+            if (!is_writable($sDir2Check)){
+                $aErrors[]="* $sDir2Check is NOT writable.\n";
             }
         }
-    
-        
-    
+    }
+
+    // check required keys in the config
+    foreach (array(
+        'auth',
+        'hooks',
+        'installPackages',
+        'lang',
+        'phases',
+        'projects',
+    ) as $sKey){
+        if (!array_key_exists($sKey, $aConfig)){
+            $aErrors[]="* missing key directory [$sKey] in config\n";
+        }
+    }
+
     if (count($aErrors)){
         die("FATAL ERROR on config.<br>" . implode("<br>\n", $aErrors));
     }