Remotely/README.md
2021-07-29 07:53:47 -07:00

4.7 KiB

Remotely

Build Status

A remote control and remote scripting solution, built with .NET Core and SignalR Core.

Repo is "On Pause"

My family and I have recently moved into a new house. Until we've settled in and adjusted to the changes, the repo will be archived. This is for my own peace of mind, as it's rather stressful to see requests/issues come in when I don't have time to address them.

Once I'm ready to resume the project, the archival will be removed.

Also, I'm looking for work. If you might entertain the idea of hiring me, please shoot me an email! :) (translucency@outlook.com)

Build Instructions (Windows 10)

The following steps will configure your Windows 10 machine for building the Remotely server and clients.

  • Install Visual Studio 2019.
  • Install the latest .NET Core SDK.
  • Clone the git repository and open the solution in Visual Studio.
  • Build (in Release configuration) the Remotely_Desktop and Remotely_ScreenCast projects.
    • By default, the screen-sharing desktop app prompts for a host URL and can be changed thereafter. To hard-code a URL, set the ForceHost value in /Remotely_Desktop/ViewModels/MainWindowViewModel.cs to the server's URL.
  • Run Publish.ps1 in the Utilities folder.
    • Example: powershell -f [path]\Publish.ps1 -outdir C:\inetpub\remotely -rid win10-x86
    • The output folder will now contain the server, with the clients in the Downloads folder.

Hosting a Server (Windows)

Hosting a Server (Linux)

Session Recording

  • You can turn on session recording in appsettings.json.
  • The following requirements must be met for it to work:
    • On Linux, libgdiplus must be installed (sudo apt-get install libdgiplus).
    • The process running the app must have access to create and/or modify a folder name "Recordings" in the site's root content folder.
    • FFmpeg must be executable from the process running the Remotely server.
  • Remote control sessions will first be recorded as a series of images, which will then be converted to MP4 using FFmpeg.

Remote Control on Mobile

Ideally, you'd be doing remote control from an actual computer or laptop. However, I've tried to make the remote control at least somewhat usable from a mobile device. Here are the controls:

  • Left-click: Single tap
  • Right-click: Double tap
  • Click-and-drag: Tap and hold with one finger, tap and release a second finger (without pinch-zooming)
    • The click-and-drag operation will begin where finger one is held

.NET Core Deployments

  • .NET Core has two methods of deployment: framework-dependent and self-contained.
    • Framework-dependent deployments require the .NET Core runtime to be installed on the target computers. It must be the same version or higher that was used to build the app.
    • Self-contained deployments include a copy of the runtime, so you don't need to install it on the target computers. As a result, the total file size is much larger.
  • .NET Core uses runtime identifiers that are targeted when building.