Hello HN!<p>Today we officially launch our first SaaS - Shellhook, a service to turn any shell command into a HTTP API.<p>We've been working on it on late nights and weekends for almost a year, with some breaks here and there. It's built on top of .NET for (almost) all hosted services while the CLI is written in Go. The backend services consists of a little bit of Postgres and a little bit of RabbitMQ.<p>How it works (basic edition):
- the CLI connects to a WebSocket with a unique user token and waits.
- the incoming API takes the request, matches it to one or more connected CLI clients, and distributes the input to their WebSocket connections.
- each CLI client takes the input and executes whatever command the user specified when starting while having the HTTP POST body in the standard input, and then returns the output back on the WebSocket.
- the WebSocket service then makes sure the incoming API request gets the CLI output from all clients as a structured JSON response.<p>It's a little bit more involved due to supporting load balancing etc, but I'm happy to answer any questions either about using Shellhook or how it's built!<p>Also, even though it's free to try - if you do choose to subscribe, feel free to use coupon code HN50 to get 50% off forever.