interactivereport / cellxgene_VIP

Enables cellxgene to generate violin, stacked violin, stacked bar, heatmap, volcano, embedding, dot, track, density, 2D density, sankey and dual-gene plot in high-resolution SVG/PNG format. It also performs differential gene expression analysis and provides a Command Line Interface (CLI) for advanced users to perform analysis using python and R.
https://cellxgenevip-ms.bxgenomics.com
MIT License
129 stars 44 forks source link

EDIT: Failure to render VIP interface when using cellxgene_VIP on a remote server #70

Closed haessar closed 2 years ago

haessar commented 2 years ago

I'm able to configure cellxgene_VIP to run successfully with cellxgene-gateway running on localhost, but on a remote server there appears to be some kind of rendering issue occurring in the "Visualisation in Plugin" panel here: All the options on the left-hand-side are present, but the right-hand-side is blank, and there's a bunch of js code underneath it all.

I've attempted to install VIP with both the VIP.yml and VIP_conda_R.yml options (i.e. global vs local R installation) with the same result. I'm configuring a reverse proxy via apache2 using the following templates: https://github.com/mestia/cellxgene-gateway-proxy-example.

Can anyone see what might be the issue here? Thanks

haessar commented 2 years ago

I've since discovered this issue occurs even without running through cellxgene-gateway. I've tried using both apache2 and nginx configs with the same result.

The js console in browser shows the following error: Uncaught ReferenceError: selFun is not defined

As selFun is defined within interface.html, and it is never called outside of interface.html, how can it not be recognised by the server-side js interpreter?

haessar commented 2 years ago

We got it working with an nginx config setting a bunch of headers:

server {
  listen 80;
  listen [::]:80;

  server_name XXXXXXXXXXXX;

  client_max_body_size 20000M;
  location /demo/ {
      proxy_pass http://127.0.0.1:8000/;
      proxy_set_header X-Forwarded-Host $host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Scheme $scheme;

  }
}