Skip to content

Commit a4c6b2b

Browse files
committed
Initial description of the architecture
1 parent 5c9261d commit a4c6b2b

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

ARCHITECTURE.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Architecture of the container #
2+
3+
Components
4+
============
5+
6+
The container contains the following components :
7+
- An Ubuntu base system
8+
- The tini + supervisord startup and daemon control system
9+
- Nginx Web server
10+
- A backend ("novnc2") Python Web app providing an API (written with
11+
Flask) on port 6079
12+
- A frontend VueJS Web app displayed to the user, which will wrap noVNC
13+
- noVNC + WebSockify providing the Web VNC client in an HTML5 canvas
14+
- Xvfb running the X11 server in memory
15+
- x11vnc exporting the X11 display through VNC
16+
- and all regular X applications, like the LXDE desktop and apps
17+
18+
Wiring them all
19+
------------------
20+
21+
Internally, Xvfb will be started in DISPLAY :1, then x11vnc will
22+
provide access to it on the default VNC port (5900).
23+
24+
noVNC will be started listening to HTTP requests on port 6081.
25+
It is possible to connect directly to port 6081 of the container, to
26+
only use the regular noVNC Web interface (provided it is exported by
27+
the container).
28+
29+
Above noVNC stands the VueJS frontend Web app provided by nginx, which
30+
will proxy the noVNC canvas, and will add some useful features over
31+
noVNC.
32+
33+
User-oriented features
34+
==========================
35+
36+
The Web frontend adds the following features :
37+
- upon display of the Web page, the app will detect the size of the
38+
Web browser's window, and will invoke the backend API so as to make
39+
sure the noVNC rendering ajusts to that size
40+
- provide a flash video rendering transporting the sound (???)
41+

0 commit comments

Comments
 (0)