Hi Jamie,
I think there are two solutions here. I'm first going to describe what I would imagine is the more convenient one: just using voila on the server and viewing it through a browser on your local machine:
-----------------------
This is always generally possible, but it depends on your HPC administrator (if remote server is HPC) and their policies how difficult/tedious it will be. (Note, most of this post copied from an earlier post)
Basically,
In general, from a machine, you may run voila as a public web server,
which will allow external connections, like this:
voila view --host 0.0.0.0 --port 30000
(the --host part is specifying which block of IP addresses to allow, where 0.0.0.0 is "allow from anywhere")
When you run voila, you mention it "stalls out", however, this is the expected behavior ; the web server will keep running until you interrupt it. While it is running, clients (like your local machine) can connect. (unless I am misunderstanding what you mean by 'stalls out', in which case, please post a screenshot of the error)
Now,
if your HPC administrator allows inbound connections to the machine you
are running voila on, on port 30000, you can just go to your web
browser on your laptop, and type
http://<ip_address_of_compute_machine>:30000 and you will see
voila.
If unprotected access is undesirable,
you may also run voila view with the --enable-passcode option, which
will only allow users to connect with a specific, random hash passcode
provided.
Now for example, suppose that port
30000 is blocked on that machine (probably common for most hosts), then you can use an 'ssh tunnel' to
basically forward the port 30000 traffic through the presumably open SSH
port. Open a separate terminal and do something like:
$ ssh -L 30000:localhost:30000 user@server
(note, you should be able to do something like this from git bash/cygwin, but if not, I know for sure that PuTTY has an option to create an SSH tunnel as well. You should be able to find guides online for it, but if you have trouble with this step reach back out and I can articulate something more)
The window should open and log in, just
leave it open, then go to your browser, and type in the address bar,
http://localhost:30000 , and you should get access to voila this way.
In
more difficult cases, you may have to open multiple ssh tunnels, if you
need to go through multiple machines to get to the one where you are
actually running voila. It's usually always possible, but may be
tedious.
Let me know if this helps for remotely viewing voila.
-----------------------
For WSL, I don't have a lot of direct experience with it, but I'm always interested to understand some common issues that will come up. In your case from the screenshots, it is clear what is causing the error:
-HTSLIB_LIBRARIES variable is not set, which would be required if htslib isn't installed on a system level
-Zstd development headers are missing from the system as well
In a common WSL installation, like debian/ubuntu, both of these issues can be solved by installing packages using the package manager in WSL:
$ sudo apt install libhts-dev
$ sudo apt install libzstd-dev
(note: after this, the installation may progress past these errors and show some other library that is missing, which would also probably be installed with $ apt ; welcome to the world of software dependencies x.x)
I am assuming that the WSL version of ubuntu simply has a smaller set of packages than mainline ubuntu/debian.
If you are not using ubuntu/debian on wsl, but some other distro, there will likely be similar packages available in that distro's package manager (if not, let me know, it's also possible to install these manually)
-----------------------
I hope either of these solutions are some utility to you.
Thanks,
-San