Remo on the Cloud¶
Remo has been developed so that it can be served on a remote server to enable team collaboration and remote access.
There are few options available to do this, depending on your installation of Remo. Here we list the main ones:
|Community||Open||Not recommended - easy configuration, no governance on data|
|Community||Limit IP address||Full control on access, requires extra maintenance|
|Community||Port forwarding||Full control on access, requires users to be somewhat technical and performance can be slow|
|Team||Authenticated login||Versioned control on access and easy login|
You have the option to serve Remo on a server and enable access to everyone, e.g. by not restricting access to specific IP addresses.
While this would allow any of your users to just browse to the address and use it, keep in mind that literally anybody could go there and delete / edit your data.
We don't recommend doing this, except for cases where you want to show case some toy datasets / applications, and you are willing to do some manual oversight on the website.
Limit IP address¶
When running Remo on a VM, you can edit your cloud provider admin settings to limit access to the VM to specific IP addresses.
The drawback of this approach is that you would need to know beforehand the user's IP address, and edit the allowed address as the IP address of the user changes (which is quite common because of the prevalence of dynamic IP addresses)
If you installed Remo on a remote server, you could setup an SSH tunnel between the remote server and a local machine to access Remo directly from the browser of that local machine. This approach would require the user to be technical enough to open an SSH tunnel every time it connects.
If you installed Remo on a local machine instead, you could use tools like Ngrok to expose it to the web (and make it accessible to everyone, except if you limit access by IP address)
The main drawback of this approach is that performance can be sluggish due to the extra middle layer.
SSH tunnel example¶
Let's assume that your remote server has IP: 18.104.22.168, and Remo is running on port 8123 (its default value).
You can forward port 8123 of the server to your machine. Details of how to do this depend on how you usually login in to the VM. If you are using a key to authenticate access, you can run the following command on your local machine:
ssh -i your_ssh_key -L 8080:22.214.171.124:8123 email@example.com
You can then access Remo simply by opening your browser, and going to this address http://localhost:8080
For more info about port forwarding you can read this guide.
Ngrok is a tool that allows to expose a local web server to the internet. You can read more about it here: https://ngrok.com/product.
Please note that we have no affiliation with it, and this tutorial is for illustration only.
To setup Remo with ngrok, you will need first to connect to your remote running server using two separate SSH sessions.
1. First session: we use it to launch the Remo app
python -m remo_app no-browser
2. Second session: we use it to install and run ngrok
wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip unzip ngrok-stable-linux-amd64.zip ./ngrok http 8123
After you launch ngrok you will see output similar to this:
Session Status online Session Expires 7 hours, 58 minutes Version 2.3.35 Region United States (us) Web Interface http://127.0.0.1:4040 Forwarding http://366250603cdd.ngrok.io -> http://localhost:8123
Now you can share forwarding link to access Remo with your team: http://366250603cdd.ngrok.io
Remo Team is a paid offering we make available that allows to have easy authenticated login for your users. Compared to the optons above, the main advantages are:
- easy login for each user, using email and password
- secure access, with control over which people have access
- faster processing, because of no tunneling and multi-processing software
- ability to store data on an external S3 bucket (support for other cloud storage providers coming soon)