Skip to content
This repository has been archived by the owner on Jun 11, 2022. It is now read-only.

bit4bit/remoton

Repository files navigation

Logo Remoton

DEV STAGE

(Go) Own secure remote desktop multi-platform, own platform for sharing your desktop with software libre

  • do support
  • get desktop access to remote user
  • upload/download files
  • chat

Remoton desktop it's proof concept of Remoton Library

Commands

  • remoton-server-cert generate certificates for secure connections
  • remoton-server handle connections between clients and supports
  • remoton-client-desktop GUI version for sharing desktop
  • remoton-support-desktop GUI version for handling remote desktop

Help

Email me [email protected]

Contributing

What ever you like

Release

See Releases

Install from release

Please check at Releases

Install from source

Install Go 1.4+ and

remoton-server

go get -u github.com/bit4bit/remoton/cmd/remoton-server
go install github.com/bit4bit/remoton/cmd/remoton-server

remoton-server-cert

go get -u github.com/bit4bit/remoton/cmd/remoton-server-cert
go install github.com/bit4bit/remoton/cmd/remoton-server-cert

remoton-client-desktop

go get -u github.com/bit4bit/remoton/cmd/remoton-client-desktop
go install github.com/bit4bit/remoton/cmd/remoton-client-desktop

remoton-support-desktop

go get -u github.com/bit4bit/remoton/cmd/remoton-support-desktop
go install github.com/bit4bit/remoton/cmd/remoton-support-desktop

Usage

Before start, generate the self-signed certificate and key for server and clients. Just run:

~$ remoton-server-cert -host="myipserver.org"

copy cert.pem and key.pem to restricted folder, cert.pem will be shared with terminals -client/support-.

Start a server example: 192.168.57.11

~$ remoton-server -listen="192.168.57.11:9934" -cert "path/cert.pem" -key="path/key.pem"-auth-token="public"

Transfer cert.pem their users.

Now you can connect -terminal- a client (share desktop) or support (connect to shared desktop) we can use the GUI version, just run remoton-client-desktop or remoton-support-desktop

The will need the cert.pem for connect to server.

TODO

  • upnp/pmp only works on GNU/Linux, windows xpra --auth=file not work

POWERED BY

Library

Remoton it's a library for building programmatically tunnels. See Doc

  • Now only support Websocket -Binary- and TCP.

Listener

You can listen inbound connections on remoton server

	import "github.com/bit4bit/remoton"
	....
	
	
	rclient := remoton.Client{Prefix: "/remoton", TLSConfig: &tls.Config{
		InsecureSkipVerify: true,
	}}
	session, err := rclient.NewSession("https://miserver.com:9934", "public")
	if err != nil {
		log.Fatal(err)
	}
	defer session.Destroy()
	
	//now can create a listener for every service you want
	//example
	listener := session.Listen("chat")
	go func(){
		 for {
			conn, err := listener.Accept()
			//now you use conn -net.Conn-
		 }
	}()
	
	listener = session.Listen("rpc")
	//or use it example RPC
	srvRpc := rpc.NewServer()
	srvRpc.Register(&Api)
	go srvRpc.Accept(listener)

Dial

You can dial a active session.

    import "github.com/bit4bit/remoton"

	rclient := remoton.Client{Prefix: "/remoton", TLSConfig: &tls.Config{
		InsecureSkipVerify: true,
	}}
	session := &remoton.SessionClient{Client: rclient,
		ID: "misessionid", AuthToken: "mitoken",
		APIURL: "https://miserver.com:9934"}
	
	//now you can dial any service
	conn, err := session.Dial("chat")
	//use conn -net.Conn-