asophila / vohvelo

Run a linux process on another machine

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

vohvelo


Logo

VOHVELO

Vohvelo [βo̞ʰ ve̞lo̞ʰ] aims to be a simple and widely usable tool to run processes on a remote machine. Although is quite simple to do just by SSH'ing into another machine and running a process, that manual work of copying, waiting the process to finish and bringing the results back (and cleaning up the remote host) can be a little bit frustrating.
The original use case comes from trying to transcode from x265 in a Raspberry Pi, failing to do so, and trying to automate the outsourced process into my main computer.
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact

About The Project

gh.mp4

Run your process (with the files needed) on another machine and bring back the results.

(back to top)

Built With Bash

(back to top)

Getting Started

Just clone the project and run it in your local machine. The process to be run must be already installed on the remote machine.

Prerequisites

What you'll need:

  • bash
  • ssh
  • scp

Installation

  1. Clone the repo
    git clone https://github.com/asophila/vohvelo.git
  2. Done

(back to top)

Usage

Usage is simple:

./vohvelo.sh <file to process> <remote user> <remote host> <local output filename>

Example: Suppose we have a video file in a low power machine, a Raspberry Pi or something like that, and we need to do the transcoding from x265 to x264 to make it easier for de Rpi to playback that file. The transcoding could take many hours in the Raspberry, but only 5 minutes in another machine in the network. To send the video file and ask the other machine to transcode, and send back the transcoded file would need something like:

./vohvelo.sh morbius.mkv remote_user 192.168.0.45 morbius.mp4

This will:

  • Copy the original file to the remote machine using the user and host provided
  • Trigger the ffmpeg transcoding process (currently the process is hardcoded, maybe later we could make it run anything)
  • Wait for the transcoding to finish
  • Copy the resulting file back to the local machine
  • Cleanup the remote folders

(back to top)

Roadmap

  • Process files with full input and output paths
  • Accept filenames containing spaces
  • Accept any process (with arguments) as an input
    • Recognize filenames in the command
    • Check if those filenames exist as files in the local machine
    • Copy those files to the remote machine
    • Identify non existant files in the command as output filenames

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Contact

Your Name - @asophila - asophila ARR0BA pm.me

Project Link: https://github.com/asophila/vohvelo

(back to top)

(back to top)

About

Run a linux process on another machine


Languages

Language:Shell 100.0%