diff --git a/bbb-lti/grails-app/conf/lti-config.properties b/bbb-lti/grails-app/conf/lti-config.properties
index d4f937b8156b0dd6b983e6a67f51b1940c9d9c85..d5fb778cbf33a03276985189c431b93641568cf4 100644
--- a/bbb-lti/grails-app/conf/lti-config.properties
+++ b/bbb-lti/grails-app/conf/lti-config.properties
@@ -24,6 +24,8 @@
 bigbluebuttonURL=http://localhost/bigbluebutton
 # Salt which is used by 3rd-party apps to authenticate api calls
 bigbluebuttonSalt=bbb_salt
+# The application name to use in URL path /lti
+appName=lti
 
 # LTI basic information
 #----------------------------------------------------
@@ -68,3 +70,5 @@ beans.ltiService.restrictedAccess=${ltiRestrictedAccess}
 beans.ltiService.recordedByDefault=${ltiAllRecordedByDefault}
 beans.ltiService.canvasPlacements=${ltiCanvasPlacements}
 beans.ltiService.canvasPlacementName=${ltiCanvasPlacementName}
+
+beans.toolService.appName=${appName}
\ No newline at end of file
diff --git a/bbb-lti/grails-app/controllers/org/bigbluebutton/lti/UrlMappings.groovy b/bbb-lti/grails-app/controllers/org/bigbluebutton/lti/UrlMappings.groovy
index c4292d9c7f1b5574867731be686b583184620f0f..d92ee3c36cce034e9a4d04d6ae690a55b7865be2 100644
--- a/bbb-lti/grails-app/controllers/org/bigbluebutton/lti/UrlMappings.groovy
+++ b/bbb-lti/grails-app/controllers/org/bigbluebutton/lti/UrlMappings.groovy
@@ -21,13 +21,13 @@ package org.bigbluebutton.lti
 class UrlMappings {
 
   static mappings = {
-    "/$controller/$action?/$id?(.$format)?" {
+    "/lti/$controller/$action?/$id?(.$format)?" {
       constraints {
         // apply constraints here
       }
     }
 
-    "/"(controller: "tool")
+    "/lti/"(controller: "tool")
     "500"(view: '/error')
   }
 }
diff --git a/bbb-lti/grails-app/controllers/org/bigbluebutton/lti/controllers/ToolController.groovy b/bbb-lti/grails-app/controllers/org/bigbluebutton/lti/controllers/ToolController.groovy
index fed200c8a0a93c54cf8adb03e644df6995212a5b..96fa401152acefa94f430d81a43c3e12a163521d 100644
--- a/bbb-lti/grails-app/controllers/org/bigbluebutton/lti/controllers/ToolController.groovy
+++ b/bbb-lti/grails-app/controllers/org/bigbluebutton/lti/controllers/ToolController.groovy
@@ -27,9 +27,11 @@ import java.text.DateFormat
 */
 
 import java.text.SimpleDateFormat
-import java.util.*
 
 class ToolController {
+
+    def appName = "lti"
+
     private static final String CONTROLLER_NAME = 'ToolController'
     private static final String RESP_CODE_SUCCESS = 'SUCCESS'
     private static final String RESP_CODE_FAILED = 'FAILED'
@@ -59,7 +61,7 @@ class ToolController {
         // On post request proceed with the launch.
         def schemeHeader = request.getHeader("X-Forwarded-Proto")
         def scheme = schemeHeader == null ? ltiService.getScheme(request) : schemeHeader
-        def endPoint = scheme + "://" + ltiService.endPoint + "/" + grailsApplication.metadata['app.name'] + "/" + params.get("controller") + (params.get("format") != null ? "." + params.get("format") : "")
+        def endPoint = scheme + "://" + ltiService.endPoint + "/" + appName + "/" + params.get("controller") + (params.get("format") != null ? "." + params.get("format") : "")
         log.info "endPoint: " + endPoint
         ArrayList<String> missingParams = new ArrayList<String>()
 
@@ -362,7 +364,7 @@ class ToolController {
     }
 
     private String getCartridgeXML(){
-        def lti_endpoint = ltiService.retrieveBasicLtiEndpoint() + '/' + grailsApplication.metadata['app.name']
+        def lti_endpoint = ltiService.retrieveBasicLtiEndpoint() + '/' + appName
         def launch_url = 'http://' + lti_endpoint + '/tool'
         def secure_launch_url = 'https://' + lti_endpoint + '/tool'
         def icon = 'http://' + lti_endpoint + '/assets/icon.ico'
diff --git a/bbb-lti/lti.nginx b/bbb-lti/lti.nginx
index 205906ab8536675dbc4fdf82feae46b835585e04..7ef18a09a38a38c3c06575c2ed30f71e65c18996 100644
--- a/bbb-lti/lti.nginx
+++ b/bbb-lti/lti.nginx
@@ -21,3 +21,28 @@
 
            include    fastcgi_params;
        }
+
+	   location /lti/assets/ {
+	        proxy_pass         http://127.0.0.1:8181/assets/;
+			proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;
+
+			# Workaround IE refusal to set cookies in iframe
+		        add_header P3P 'CP="No P3P policy available"';
+
+			# Allow 30M uploaded presentation document.
+		        client_max_body_size       30m;
+			client_body_buffer_size    128k;
+
+			proxy_connect_timeout      90;
+			proxy_send_timeout         90;
+			proxy_read_timeout         90;
+
+			proxy_buffer_size          4k;
+			proxy_buffers              4 32k;
+			proxy_busy_buffers_size    64k;
+			proxy_temp_file_write_size 64k;
+
+			include    fastcgi_params;
+
+			proxy_request_buffering off;
+		}
\ No newline at end of file
diff --git a/bbb-lti/grails-app/assets/images/bbb.jpg b/bbb-lti/src/main/webapp/assets/bbb.jpg
similarity index 100%
rename from bbb-lti/grails-app/assets/images/bbb.jpg
rename to bbb-lti/src/main/webapp/assets/bbb.jpg
diff --git a/bbb-lti/grails-app/assets/images/bbb_logo.jpg b/bbb-lti/src/main/webapp/assets/bbb_logo.jpg
similarity index 100%
rename from bbb-lti/grails-app/assets/images/bbb_logo.jpg
rename to bbb-lti/src/main/webapp/assets/bbb_logo.jpg
diff --git a/bbb-lti/grails-app/assets/images/favicon.ico b/bbb-lti/src/main/webapp/assets/favicon.ico
similarity index 100%
rename from bbb-lti/grails-app/assets/images/favicon.ico
rename to bbb-lti/src/main/webapp/assets/favicon.ico
diff --git a/bbb-lti/src/main/webapp/images/icon.ico b/bbb-lti/src/main/webapp/assets/icon.ico
similarity index 100%
rename from bbb-lti/src/main/webapp/images/icon.ico
rename to bbb-lti/src/main/webapp/assets/icon.ico