diff --git a/NodeApp/src/Config/Config.ts b/NodeApp/src/Config/Config.ts
index a2c6c5bd7558d29bd8502c05a6a19596379b1fd9..c6361d96e8d5a92f601c351406839b98ac183b20 100644
--- a/NodeApp/src/Config/Config.ts
+++ b/NodeApp/src/Config/Config.ts
@@ -1,10 +1,11 @@
-import * as os from 'os';
+import * as os     from 'os';
+import HttpManager from '../managers/HttpManager';
 
 
 class Config {
     private static _instance: Config;
 
-    public readonly apiURL: string;
+    private _apiURL!: string;
 
     public readonly localConfig: {
         folder: string; file: string;
@@ -19,6 +20,16 @@ class Config {
         };
     }
 
+    get apiURL(): string {
+        return this._apiURL;
+    }
+
+    set apiURL(url: string) {
+        this._apiURL = url;
+
+        HttpManager.API_BASE_URL = this._apiURL;
+    }
+
     public static get instance(): Config {
         if ( !Config._instance ) {
             Config._instance = new Config();
diff --git a/NodeApp/src/commander/CommanderApp.ts b/NodeApp/src/commander/CommanderApp.ts
index 488f42842899180156b4742e5363e7354d617263..48717ddc617ec57db0bd29d81bb7971f61c29c96 100644
--- a/NodeApp/src/commander/CommanderApp.ts
+++ b/NodeApp/src/commander/CommanderApp.ts
@@ -5,6 +5,7 @@ import SessionManager from '../managers/SessionManager';
 import axios          from 'axios';
 import HttpManager    from '../managers/HttpManager';
 import logger         from '../shared/logging/WinstonLogger';
+import Config         from '../Config/Config';
 
 
 class CommanderApp {
@@ -12,9 +13,20 @@ class CommanderApp {
 
     constructor() {
         this.program
-        .name('Dojo CLI')
+        .name('dojo_cli')
         .description('CLI for the Dojo application')
-        .version('1.0.0Ɑ');
+        .version('1.0.0Ɑ')
+        .showHelpAfterError()
+        .configureHelp({
+                           showGlobalOptions: true,
+                           sortOptions      : true,
+                           sortSubcommands  : true
+                       })
+        .option('-H, --host <string>', 'override the Dojo API endpoint.', Config.apiURL);
+
+        this.program.on('option:host', () => {
+            Config.apiURL = this.program.opts().host;
+        });
 
         this.loginCommand();
         this.testSessionCommand();
@@ -25,8 +37,8 @@ class CommanderApp {
     loginCommand() {
         this.program.command('login')
         .description('Login into the application')
-        .requiredOption('-u, --user <string>', '[Required] Username to use when connecting to server.')
-        .option('-p, --password <string>', 'Password to use when connecting to server. If password is not given it\'s asked.')
+        .requiredOption('-u, --user <string>', '[required] username to use when connecting to server.')
+        .option('-p, --password <string>', 'password to use when connecting to server. If password is not given it\'s asked.')
         .action(async (options) => {
             const passwordPromise = new Promise((resolve, reject) => {
                 if ( !options.password ) {
diff --git a/NodeApp/src/managers/HttpManager.ts b/NodeApp/src/managers/HttpManager.ts
index 47091dda02fd3e79f564f930a1abdc8f0ccbe1ef..06f3cd21c9496c86462c5d34ed522ce2894b16f0 100644
--- a/NodeApp/src/managers/HttpManager.ts
+++ b/NodeApp/src/managers/HttpManager.ts
@@ -6,10 +6,9 @@ import logger                         from '../shared/logging/WinstonLogger';
 
 
 class HttpManager {
-    private readonly API_BASE_URL: string = Config.apiURL;
-
-    public readonly LOGIN_URL: string = `${ this.API_BASE_URL }/login`;
-    public readonly TEST_SESSION_URL: string = `${ this.API_BASE_URL }/test_session`;
+    private _API_BASE_URL!: string;
+    public LOGIN_URL!: string;
+    public TEST_SESSION_URL!: string;
 
     private static _instance: HttpManager;
 
@@ -21,6 +20,17 @@ class HttpManager {
         return HttpManager._instance;
     }
 
+    private constructor() {
+        
+    }
+
+    set API_BASE_URL(url: string) {
+        this._API_BASE_URL = url;
+
+        this.LOGIN_URL = `${ this._API_BASE_URL }/login`;
+        this.TEST_SESSION_URL = `${ this._API_BASE_URL }/test_session`;
+    }
+
     registerAxiosInterceptor() {
         this.registerRequestInterceptor();
         this.registerResponseInterceptor();
@@ -49,17 +59,23 @@ class HttpManager {
 
             return response;
         }, (error) => {
-            switch ( error.response.status ) {
-                case 401:   // Unauthorized
-                    logger.error('Session expired or inexistent. Please login again.');
-                    process.exit(1);
-                    break;
-                case 403:   // Forbidden
-                    logger.error('Forbidden access.');
-                    process.exit(1);
-                    break;
+            if ( error.response ) {
+                switch ( error.response.status ) {
+                    case 401:   // Unauthorized
+                        logger.error('Session expired or inexistent. Please login again.');
+                        process.exit(1);
+                        break;
+                    case 403:   // Forbidden
+                        logger.error('Forbidden access.');
+                        process.exit(1);
+                        break;
+                }
+            } else {
+                logger.error('Error connecting to the server.');
+                process.exit(1);
             }
 
+
             return Promise.reject(error);
         });
     }