packages/remote/README.md
This package implements functionality to connect to remote systems using Theia.
This facilitates features similar to the features offered by Microsoft's popular Remote-SSH, Dev Containers or WSL extensions for VSCode.
The following explains the basic flow of any remote connection. It will be exemplified using the remote SSH feature:
SSH: Connect to Host... command, we send the host info to the local backend.
The corresponding RemoteSSHConnectionProvider is scoped to the current connection and can request additional information from the user, such as SSH key passphrases.RemoteSSHConnectionProvider has every information it needs, it creates a SSH connection and registers this connection to the general RemoteConnectionService.
Every RemoteConnection type implements an interface that is able to handle 3 kinds of messages to the remote system:
RemoteCopyContribution binding to copy certain files from the current system.
This contribution point is used for files that are used in all operating systems.RemoteNativeDependencyContribution bindings to download and copy native dependencies for the remote system.
The downloaded files are on a per-platform basis.main.js of the backend application.
We start the backend with --port=0, so that it searches for any available port. It will print the port to the console.
The setup either returns with a setup error or the port of the remote server on the remote system.RemoteConnection object to forward any HTTP request to this proxy server to the remote server."Theia" is a trademark of the Eclipse Foundation https://www.eclipse.org/theia