xpra icon
Bug tracker and wiki

Version 31 (modified by Antoine Martin, 3 weeks ago) (diff)

--

HTML5 Client

The xpra-html5 package should have been installed automatically when you installed xpra.

To setup your xpra server with HTML5 support, simply start a server with a TCP socket (bind-tcp=...) or a websocket (bind-ws=...), ie:

xpra start --bind-tcp=0.0.0.0:10000 --start=xterm

You can then point your browser to http://localhost:10000/ and the xterm should appear in your browser window.

You can also access the latest version of the HTML5 client here: https://xpra.org/html5/connect.html.

Proxying


SELinux and Proxies

On some distributions (ie: Fedora, RHEL / CentOS), SELinux may block the connection from the web server to the xpra server port. There are at least 3 solutions to this problem, from the most secure to the least:

  • add a policy to allow apache to connect only to the xpra port:
    require {
    	type httpd_t;
    	type xpra_port_t;
    	class tcp_socket name_connect;
    }
    allow httpd_t xpra_port_t:tcp_socket name_connect;
    
  • allow apache to connect to all ports:
    setsebool -P httpd_can_network_connect on
    
  • disable SELinux

Source

The source can be found:

Password Authentication

You can use authentication by supplying the values on the URL.

Connecting to a server started with:

echo -n 123456 > ./password.txt
$ xpra start --bind-tcp=0.0.0.0:10000 --start=xterm --html=on \
    --tcp-auth=file:filename=./password.txt

As user test, you can then connect with the following URL:

http://localhost:10000/index.html?username=test&password=123456

When using the connect page, the credentials are not sent to the server. The javascript client handles authentication client side using HMAC.

Encryption

The easiest and safest way to encrypt traffic is to use SSL (https / wss)

AES

Alternative: the following commands will setup an HTML5 server with AES encryption and password authentication then launch a browser and connect to it:

PASSWORD=YOURPASSWORD
AES_KEY=0123456789ABCDEF
echo -n $PASSWORD > password.txt
echo -n $AES_KEY > aes.txt
xpra start :10 --bind-tcp=0.0.0.0:10000 --html=on --start=xterm \
    --tcp-auth=file:filename=./password.txt \
    --tcp-encryption=AES --tcp-encryption-keyfile=`pwd`/aes.txt
sleep 5
xdg-open "http://localhost:10000/index.html?username=$USER&password=$PASSWORD&encryption=AES&key=$AES_KEY"

Resources

Tickets

Features planned or in progress:

  • #1471 toolbar
  • #1463 html5 native video decoding support
  • #1359 webcam and microphone forwarding

Existing Features:

  • #1376 file upload support
  • #1484 - #1487 better language support
  • #1473 re-connection etc
  • #1491 more complete window management
  • #1520 mobile on-screen keyboard
  • #1461 clipboard synchronization
  • #1491 many updates (2.1 release)
  • #1424 faster network layer, input devices, etc
  • #1390 trackpad input device support
  • #845 sound support
  • #1341 many updates (1.0 release)
  • #1484 better keyboard layout support
  • #1432 paint scroll events
  • #1473 re-connection, event hooks, "steal" option
  • #1376 drag-n-drop upload, download files
  • #933 encryption
  • #913 printing
  • #858 numlock sync
  • #850 improvements: login page, etc
  • #842 clipboard support
  • #838 auto-connect
  • #689 html server built-in
  • #473 original html feature ticket
  • #474 port multiplexing

Issues: