Github Repo: https://github.com/Oranda-IO/Shed
I'm building a mobile IDE that needs to remotely execute commands on a Docker container from code.
I made the switch to containerized development, but CDE tools (like Codespaces) don't always provide Docker host access, so Docker Exec is not an option.
SSH is an option.. but managing SSH connections for one-off commands is costly, and I found the developer experience frustrating (e.g. need an SSH client lib, need to manage connection state). It felt especially counter-intuitive in a Lambda.
So (possibly against my better judgment) I built a small Go daemon (~9MB built) I'm calling "SHED" for Secure HTTP Execution Daemon.
You can drop it into a container and run remote kernel commands with stateless HTTPS fetch calls instead of opening a stateful SSH terminal session.
Shed exposes an /exec endpoint over HTTPS with bearer token auth. You POST a JSON command, and you get JSON back with stdout, stderr, and the exit code.
I know I'm reinventing a wheel. SSH is reliable and trustworthy, but it does come with baggage that adds resistance for the modern web.
I did my best to defend it technically in the motivation section here: https://github.com/Oranda-IO/Shed#motivation
This is early and experimental, but I wanted to share in case anyone else has this problem or finds this approach useful.
All feedback is appreciated
Top comments (0)