diff --git a/ExpressAPI/src/config/Config.ts b/ExpressAPI/src/config/Config.ts
index b85336bc7f4b8b8d5c95de5d6d931d3aee0ddc33..acf4e9d6de7341f7100d1e6c13814f3bd2be1a8a 100644
--- a/ExpressAPI/src/config/Config.ts
+++ b/ExpressAPI/src/config/Config.ts
@@ -1,3 +1,6 @@
+import GitlabVisibility from '../shared/types/Gitlab/GitlabVisibility';
+
+
 class Config {
     public readonly api: {
         port: number
@@ -20,7 +23,7 @@ class Config {
     };
 
     public exercice: {
-        maxSameName: number; default: { description: string; visibility: string; };
+        maxSameName: number; resultsFolder: string; default: { description: string; visibility: string; };
     };
 
     public readonly userPasswordLength: number;
@@ -28,59 +31,58 @@ class Config {
 
     constructor() {
         this.api = {
-            port: Number(process.env.API_PORT)
+            port: Number(process.env.API_PORT || 30992)
         };
 
         this.jwtConfig = {
-            secret   : process.env.JWT_SECRET_KEY,
-            expiresIn: Number(process.env.SESSION_TIMEOUT)
+            secret   : process.env.JWT_SECRET_KEY || '',
+            expiresIn: Number(process.env.SESSION_TIMEOUT || 0)
         };
 
         this.permissions = {
-            teachingStaff: JSON.parse(process.env.ROLES_WITH_TEACHING_STAFF_PERMISSIONS)
+            teachingStaff: JSON.parse(process.env.ROLES_WITH_TEACHING_STAFF_PERMISSIONS || '[]')
         };
 
         this.gitlab = {
-            apiURL : process.env.GITLAB_API_URL,
+            apiURL : process.env.GITLAB_API_URL || '',
             urls   : JSON.parse(process.env.GITLAB_URLS || '[]'),
             account: {
-                id      : Number(process.env.GITLAB_DOJO_ACCOUNT_ID),
-                username: process.env.GITLAB_DOJO_ACCOUNT_USERNAME,
-                token   : process.env.GITLAB_DOJO_ACCOUNT_TOKEN
+                id      : Number(process.env.GITLAB_DOJO_ACCOUNT_ID || 0),
+                username: process.env.GITLAB_DOJO_ACCOUNT_USERNAME || '',
+                token   : process.env.GITLAB_DOJO_ACCOUNT_TOKEN || ''
             },
             group  : {
-                root     : Number(process.env.GITLAB_GROUP_ROOT_ID),
-                templates: Number(process.env.GITLAB_GROUP_TEMPLATES_ID),
-                enonces  : Number(process.env.GITLAB_GROUP_ENONCES_ID),
-                exercices: Number(process.env.GITLAB_GROUP_EXERCICES_ID)
+                root     : Number(process.env.GITLAB_GROUP_ROOT_ID || 0),
+                templates: Number(process.env.GITLAB_GROUP_TEMPLATES_ID || 0),
+                enonces  : Number(process.env.GITLAB_GROUP_ENONCES_ID || 0),
+                exercices: Number(process.env.GITLAB_GROUP_EXERCICES_ID || 0)
             }
         };
 
         this.enonce = {
             default  : {
-                description         : process.env.ENONCE_DEFAULT_DESCRIPTION,
-                initReadme          : process.env.ENONCE_DEFAULT_INIT_README.toBoolean(),
-                sharedRunnersEnabled: process.env.ENONCE_DEFAULT_SHARED_RUNNERS_ENABLED.toBoolean(),
-                visibility          : process.env.ENONCE_DEFAULT_VISIBILITY,
-                wikiEnabled         : process.env.ENONCE_DEFAULT_WIKI_ENABLED.toBoolean(),
-                template            : process.env.ENONCE_DEFAULT_TEMPLATE.replace('{{USERNAME}}', this.gitlab.account.username).replace('{{TOKEN}}', this.gitlab.account.token)
+                description         : process.env.ENONCE_DEFAULT_DESCRIPTION?.convertWithEnvVars() ?? '',
+                initReadme          : process.env.ENONCE_DEFAULT_INIT_README?.toBoolean() ?? false,
+                sharedRunnersEnabled: process.env.ENONCE_DEFAULT_SHARED_RUNNERS_ENABLED?.toBoolean() ?? true,
+                visibility          : process.env.ENONCE_DEFAULT_VISIBILITY || GitlabVisibility.PRIVATE,
+                wikiEnabled         : process.env.ENONCE_DEFAULT_WIKI_ENABLED?.toBoolean() ?? false,
+                template            : process.env.ENONCE_DEFAULT_TEMPLATE?.replace('{{USERNAME}}', this.gitlab.account.username).replace('{{TOKEN}}', this.gitlab.account.token) ?? ''
             },
             baseFiles: JSON.parse(process.env.ENONCE_BASE_FILES || '[]'),
             filename : process.env.ENONCE_FILENAME || ''
         };
 
         this.exercice = {
-            maxSameName: Number(process.env.EXERCICE_MAX_SAME_NAME),
-            default    : {
-                description: process.env.EXERCICE_DEFAULT_DESCRIPTION,
-                visibility : process.env.EXERCICE_DEFAULT_VISIBILITY
+            maxSameName  : Number(process.env.EXERCICE_MAX_SAME_NAME || 0),
+            resultsFolder: process.env.EXERCICE_RESULTS_FOLDER ?? '', //Do not use convertWithEnvVars() because it is used in the exercice creation and muste be interpreted at exercice runtime
+            default      : {
+                description: process.env.EXERCICE_DEFAULT_DESCRIPTION?.convertWithEnvVars() ?? '',
+                visibility : process.env.EXERCICE_DEFAULT_VISIBILITY || GitlabVisibility.PRIVATE
             }
         };
 
-        this.userPasswordLength = Number(process.env.USER_PASSWORD_LENGTH);
-        this.userPasswordSaltRounds = Number(process.env.USER_PASSWORD_SALT_ROUNDS);
-
-
+        this.userPasswordLength = Number(process.env.USER_PASSWORD_LENGTH || 0);
+        this.userPasswordSaltRounds = Number(process.env.USER_PASSWORD_SALT_ROUNDS || 10);
     }
 }