Create a baseline Archlinux enviroment using KDE Plasma with NoVNC and Webockify pre-configured for other to to use for their docker containers.
How it works:
1) XVFB - X11 in a virtual framebuffer.
2) X11vnc - A VNC server that scrapes the above X11 server.
3) noVNC & websockify - A HTML5 canvas vnc viewer.
4) Dbus + KDE Plamsa - starts the desktop enviroment.
Loose guidelines to check i've got everything I need.
v0.0.0
- archlinux version at build
- arg $arch_version
- Default latest
v0.1.0
- pacman
- ca-certificates
- general tools (example... curl, wget, less, unzip, rsync, bash, bash-completion)
- python
- python-numpy (used for websockify for latancy reduction.)
- ARG $pacman_packages
V0.2.0
- xvfb
v0.3.0
- NOVNC
- Downladed
- Installed
- Configuration
- Setup with default details but configure (ENV & ARG) for password.
- ARG novnc_passwd.
- Websockify
- Downloaded
- Installed
- Configuration
- SSL certificate (allow personal re-defined file?)
- ENV Cert
- ENV Key
v0.4.0
- KDE
- Enable
- Configuration
- Remove un-required packages.
v0.5.0
- Container size reduction.
- xorg
- novnc
- websockify
- KDE-Plasma. Struggling to reduce size of package.
v0.6.0
- Entrypoint additions
- Enable / Disable desktop config
- enable to use GIT themes?
v1.2.0
- noVNC add audio passthrough.
Removed as user can change language from US when they build.
- local Config
- LANG = US default
- ARG $LANG (to change default language. Need to account for language packs.)
This section is to be filled in once at Version 1.
This section is to be filled in once at Version 1.
Password:
root_passwd='root'
novnc_passwd='P@ssw0rd'
expose port:
novnc_port=5900
Display Settings:
DISPLAY=:0.0
DISPLAY_WIDTH=1024
DISPLAY_HEIGHT=768
Websockify SSL:
SSL_CERT="/opt/ssl/cert.pem"
SSL_KEY="/opt/ssl/key.pem"
Build version of arch linux from the docker repositroy.
arch_version='base-20220424.0.54084'
Install additional pacman packages to what is already preset.
pacman_packages='less curl steam'
Get the version of NoVNC by the release version. Excludes any pre-releases.
novnc_version='1.2'
Get the version of websockify by the release version. Excludes any pre-releases.
websockify_version='0.8'