An repo for creating an VPS on Heroku
This image is intended to be used for displaying X11 applications from other containers in a browser. A stand-alone demo as well as a Version 2 composition.
-
Xvfb - X11 in a virtual framebuffer
-
x11vnc - A VNC server that scrapes the above X11 server
-
noNVC - A HTML5 canvas vnc viewer
-
Fluxbox - a small window manager
-
socat - for use with other containers
-
xterm - to demo that it works
-
supervisord - to keep it all running
You can specify the following variables:
-
DISPLAY_WIDTH=<width>
(1024) -
DISPLAY_HEIGHT=<height>
(768) -
RUN_XTERM={yes|no}
(yes) -
RUN_FLUXBOX={yes|no}
(yes)
Run:
$ docker run --rm -it -p 8080:8080 theasp/novnc
Open a browser and see the xterm
demo at http://<server>:8080/vnc.html
A version of the V2 docker-compose example is shown below to illustrate how this image can be used to greatly simplify the use of X11 applications in other containers. With just docker-compose up -d
, your favorite IDE can be accessed via a browser.
Some notable features:
-
An
x11
network is defined to link the IDE and novnc containers -
The IDE
DISPLAY
environment variable is set using the novnc container name -
The screen size is adjustable to suit your preferences via environment variables
-
The only exposed port is for HTTP browser connections
version: '2'
services:
ide:
image: psharkey/intellij:latest
# image: psharkey/netbeans-8.1:latest
environment:
- DISPLAY=novnc:0.0
depends_on:
- novnc
networks:
- x11
novnc:
image: theasp/novnc:latest
environment:
# Adjust to your screen size
- DISPLAY_WIDTH=1600
- DISPLAY_HEIGHT=968
- RUN_XTERM=no
ports:
- "8080:8080"
networks:
- x11
networks:
x11:
If the IDE fails to start simply run docker-compose restart <container-name>
.
This is based on the alpine container by @psharkey: https://github.com/psharkey/docker/tree/master/novnc
Based on wine-x11-novnc-docker and octave-x11-novnc-docker.