{"id":13587374,"url":"https://github.com/JAremko/docker-x11-bridge","last_synced_at":"2025-04-07T21:33:51.159Z","repository":{"id":43026154,"uuid":"74101706","full_name":"JAremko/docker-x11-bridge","owner":"JAremko","description":"Simple Xpra X11 bridge to enable GUI with any docker image","archived":true,"fork":false,"pushed_at":"2023-10-16T09:49:21.000Z","size":1175,"stargazers_count":180,"open_issues_count":8,"forks_count":38,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-04-01T19:55:09.068Z","etag":null,"topics":["docker","docker-image","dockerfile","gui","ssh","tcp","x11","xpra"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JAremko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2016-11-18T06:27:00.000Z","updated_at":"2025-03-20T07:29:09.000Z","dependencies_parsed_at":"2024-03-17T07:42:43.193Z","dependency_job_id":null,"html_url":"https://github.com/JAremko/docker-x11-bridge","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JAremko%2Fdocker-x11-bridge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JAremko%2Fdocker-x11-bridge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JAremko%2Fdocker-x11-bridge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JAremko%2Fdocker-x11-bridge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JAremko","download_url":"https://codeload.github.com/JAremko/docker-x11-bridge/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247732915,"owners_count":20986955,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-image","dockerfile","gui","ssh","tcp","x11","xpra"],"created_at":"2024-08-01T15:06:10.967Z","updated_at":"2025-04-07T21:33:50.123Z","avatar_url":"https://github.com/JAremko.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"## Pluggable X11 GUI for docker images  \n\n*Run GUI applications in Docker with the same client([Xpra](https://xpra.org/)) on Windows, GNU/Linux, MacOS or web-browser over ssh or tcp.*\n\n**(clickable!)**\n[![img/demo.jpg](https://github.com/JAremko/docker-x11-bridge/raw/master/img/demo.jpg)](https://github.com/JAremko/docker-x11-bridge/raw/master/img/demoHD.jpg)\n\n### Try It!\n``` bash\ndocker run -d \\\n --name x11-bridge \\\n -e MODE=\"tcp\" \\\n -e XPRA_HTML=\"yes\" \\\n -e DISPLAY=:14 \\\n -e XPRA_PASSWORD=111 \\\n --net=host \\\n jare/x11-bridge\n\ndocker run -d \\\n --name emacs-1 \\\n --volumes-from x11-bridge \\\n -e DISPLAY=:14 \\\n jare/emacs emacs\n\ndocker run -d \\\n --name emacs-2 \\\n --volumes-from x11-bridge \\\n -e DISPLAY=:14 \\\n jare/emacs emacs\n```\nThen visit `http://localhost:10000/index.html?encoding=rgb32\u0026password=111`\nSee `http://localhost:10000/connect.html` for options\n\n### Or via ssh:\n``` bash\ndocker run -d \\\n --name x11-bridge \\\n -e MODE=\"ssh\" \\\n -v ~/.ssh/pub_rsa:/etc/pub-keys/me.pub \\\n -e DISPLAY=:14 \\\n --net=host \\\n jare/x11-bridge\n\ndocker run -d \\\n --name emacs-1 \\\n --volumes-from x11-bridge \\\n -e DISPLAY=:14 \\\n jare/emacs emacs\n\ndocker run -d \\\n --name emacs-2 \\\n --volumes-from x11-bridge \\\n -e DISPLAY=:14 \\\n jare/emacs emacs\n```\nThen attach to the Xpra server via cmd tool or Xpra's GUI app:\n`xpra attach --encoding=rgb --ssh=\"ssh -o StrictHostKeyChecking=no -p 22\" ssh:xpra@localhost:14`\n\n - Note `-o StrictHostKeyChecking=no` - it allows us to ignore server's identity instead adding it to `known_hosts`. If you want to rely on the identity you should use a privately built image.\n - All names of the pub keys should end with `.pub` i.e. `/etc/pub-keys/\u003ckey_name\u003e.pub`\n - If Xpra lags, select `Lowest Bandwidth` when using Xpra app with a local Xpra host.\n - With Windows client you'll need [`Pageant`](http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) you can convert your rsa keys to `Pageant`'s format with [`PuTTYgen`](http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)\n - GUI app in your image may require`libGL.so.1` (provided by libgl1-mesa-glx on Ubuntu) and font\n - It is good idea to use [ssl proxy](https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion) or mount a certificate (see Xpra start-up message) if you want to use tcp or html mode beyond local network\n - You can [modify the user](https://github.com/JAremko/docker-x11-bridge/blob/master/Dockerfile#L172)\n - To use Xpra mmap(Linux): `docker run ... -v /tmp/spacemacs-mmap/:/tmp/spacemacs-mmap/ ... jare/x11-bridge` and attach with `TMPDIR=/tmp/spacemacs-mmap/ xpra attach --mmap=yes --encoding=rgb --ssh=\"ssh -o StrictHostKeyChecking=no -p 22\" ssh:xpra@localhost:14`\n\n\n*Webcam and sound are currently disabled*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJAremko%2Fdocker-x11-bridge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FJAremko%2Fdocker-x11-bridge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJAremko%2Fdocker-x11-bridge/lists"}