Closed PhMemmel closed 3 years ago
Could you please give some more hints how to implement LTI with scalelite. I am now trying for hours, I can connect to the Standard-API, but /lti/tools always gives me 502 error (Bad Gateway).
I have put the standard /etc/bigbluebutton/nginx/lti.nginx into the scalelite-nginx container (location /etc/nginx/conf.d/scalelite). Do you also leave the proxy pass to localhost:8181 untouched?
Where do I put the directory /usr/share/bbb-lti? Into scalelite-api? Or scalelite-nginx? And also to /usr/share?
Thank you very much for some help. Wolfgang
I copied the /usr/share/bbb-lti
directory to somewhere (shouldn't matter where) on the scalelite machine and ran ./run-prod.sh
inside this directory (install openjdk first). This starts up the LTI application on localhost:8181 to handle all LTI requests.
For the LTI endpoint to be accessible you still need to forward LTI requests to localhost:8181
by nginx. I'm running the scalelite dockers behind an additional nginx proxy on my scalelite host, so i just forward all traffic towards /lti
and /lti/assets
to localhost:8181
by this nginx before it even gets to the scalelite nginx. I did this by adding the nginx LTI location blocks from /etc/bigbluebutton/nginx/lti.nginx
from a standard BBB server installation with LTI plugin installed to my scalelite host's nginx-config:
location /lti {
proxy_pass http://127.0.0.1:8181;
proxy_redirect default;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 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;
}
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;
}
If LTI support gets added to standard scalelite deployment it would probably be easier to add this somewhere directly to the scalelite-nginx docker image, I just didn't want to build my own docker image there as I'm running a separate nginx on my scalelite machine anyway. Hope this helps!
Philipp
EDIT: Forgot to mention: Before you start up the LTI application you need to change the BBB endpoint and secret in $BBB_LTI_DIR/WEB-INF/classes/lti.properties
to the scalelite server's endpoint and secret.
Thank you very much! After fighting some other problems it's now working an we can use 6 BBB servers in our LMS.
Wolfgang
It's currently not possible to access scalelite via LTI interface as far as I figured out. In fact, it's not a big of a deal (bbb-lti appears just to be a java grails app). So it might be considered adding this at least to standard scalelite documentation or even adding it to scalelite-api by default or when configured to do so.
Following steps are required:
LTI module then successfully uses scalelite to create a meeting.
WARNING: I just did this the quick and dirty style. This needs to be tested in production environment. To be honest I don't see any big problems though...
possibly fixes #245