Skip to content

Paperboard-dev/Crane

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Crane

Persistent remote access for devices on the local network


This is Paperboard's backend, written in Go. Its purpose is to execute terminal commands and transfer files remotely, similar to SSH. However, Crane is designed to separate multiple processes into their own respective directories, while also being relatively lightweight on its own.

A benefit of using Crane over normal SSH is uptime. When a client disconnects, Crane keeps its process running and allows the client to reconnect any time. Additionally, a client can send ad-hoc requests without creating a new instance.

Crane is not a replacement or competitor for SSH. Its purpose is more-so to be integrated with software than to be used via a CLI, unless you want to type JSON manually, which you don't.

Crane uses WebSockets and HTTP for data transfer. A client for Crane would have to be created separately, which is what I'm working on and what this entire project is for (Paperboard).


Fortunately-unfortunately, Crane was "vibe-coded" in a few hours with my specific design with only a very quick code review. Therefore, Crane is nowhere near a state where using it seriously, even on a local network, can be considered "safe". Wait for a 1.0 release.

Crane is young, it lacks many features.

To-Do SOON

  • Most basic functionality complete!
  • File transfer over HTTP
  • Killing processes via the client
  • Local network discovery (mDNS?)

How To Use

Compiling and running

There are no releases for Crane available yet. You have to compile it. It's Go, though, so compiling is super easy.

git clone https://github.com/Paperboard-dev/Crane.git
cd Crane
go build

Once compiled, you can run the Crane binary normally, or with your own specified port. Running Crane without a port specified will make it default to port 28342.

./crane
./crane --port 6767

From here, you need a way to send WebSockets, like Insomnia. For some basic AI-generated documentation on how to actually use Crane, take a look at guide.md.

If you have any questions, comments, or problems, you can submit an Issue, contact me on Discord (@pxltail) or send me an email at tails@pxltail.com.

About

Persistent remote access for devices on the local network

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages