remoton
                                
                                 remoton copied to clipboard
                                
                                    remoton copied to clipboard
                            
                            
                            
                        (Go) Own remote desktop platform

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-certgenerate certificates for secure connections
- remoton-serverhandle connections between clients and supports
- remoton-client-desktopGUI version for sharing desktop
- remoton-support-desktopGUI 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-