Skip to content

ssh, sftp client running in the browser powered by golan and wasm

Notifications You must be signed in to change notification settings

ax-jmckenzie/ssheasy

 
 

Repository files navigation

ssheasy

Source repositorty of the online ssh, sftp client ssheasy.com

Building, running locally

docker-compose up

This will compile the wasm ssh, sftp client, the proxy component that proxies tcp connections for the client running in the browser through websocket and sets up nginx server serving the web frontend. Additionaly prometheus and grafana is set up as well to monitor the connections proxied. An sshd is also started in a container for testing.

Testing

For testing docker-compose sets up an sshd in a separate container. After starting up the stack with docker-compose up open http://localhost:8080 in your browser and use the host testssh with user root and password root.

Project structure

  • nginx: web server config, Dockerfile for building the wasm ssh/sftp client
  • proxy: golang proxy service for tunneling tcp connections through websocket
  • web: source of the ssh, sftp wasm client, and the httml for the frontend

Filemanager UI

The filemanager is based on forked version) of angular-filemanager. The fork replaces the backend api calls with calls to the wasm sftp client. The fork has to be built separately and copied to the web/html/node_modules directory.

Golang Net fork

The wasm client has a local patched copy of golangs net package in web/gonet directory. This was necessary as the golang wasm http client implementation doesn't allow proxying connections (explained here).

About

ssh, sftp client running in the browser powered by golan and wasm

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 81.8%
  • HTML 17.2%
  • Other 1.0%