diff --git a/MinimalMetaDesktop-noVNC/Dockerfile b/MinimalMetaDesktop-noVNC/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..1691575ed507ccd7cf66df6f844d626372a9ee05 --- /dev/null +++ b/MinimalMetaDesktop-noVNC/Dockerfile @@ -0,0 +1,112 @@ +FROM ubuntu:18.04 +MAINTAINER Stefano Alberto Russo <stefano.russo@gmail.com> + +#---------------------- +# Basics +#---------------------- + +# Set non-interactive +ENV DEBIAN_FRONTEND noninteractive + +# Update first of all +RUN apt-get update + +# Utilities +RUN apt-get install -y nano telnet unzip wget supervisor build-essential python-dev git-core openjdk-8-jre + + +#------------------------ +# "Meta" user +#------------------------ + +# Add group. We chose GID 65527 to try avoiding conflicts. +RUN groupadd -g 65527 metauser + +# Add user. We chose UID 65527 to try avoiding conflicts. +RUN useradd metauser -d /home/metauser -u 65527 -g 65527 -m -s /bin/bash + +# Add metuaser user to sudoers +RUN adduser metauser sudo + +# Install suodo +RUN apt-get install sudo -y + +# No pass sudo (for everyone, actually) +COPY files/sudoers /etc/sudoers + +#------------------------ +# Supervisor conf +#------------------------ + +# Supervisord conf +COPY files/supervisord.conf /etc/supervisor/ + +#------------------------ +# VNC +#------------------------ + +# Install xvfb that triggers minimal install of X base packages and xterm as sample application +RUN apt-get install xvfb xterm -y + +# Install base packages for VNC server and headless desktop (2) +COPY files/tigervnc-1.8.0.x86_64.tar.gz /opt/tigervnc-1.8.0.x86_64.tar.gz +RUN cd /opt && tar -zxvf tigervnc-1.8.0.x86_64.tar.gz && mv tigervnc-1.8.0.x86_64 tigervnc + +# Supervisord configuration +COPY files/supervisord_vnc.conf /etc/supervisor/conf.d/ +COPY files/run_vnc.sh /etc/supervisor/conf.d/ +COPY files/run_novnc.sh /etc/supervisor/conf.d/ +RUN chmod 755 /etc/supervisor/conf.d/run_vnc.sh +RUN chmod 755 /etc/supervisor/conf.d/run_novnc.sh + +# Web VNC (noVNC) v0.6.1. +# NOTE: this is a custom version from Doro Wu (fcwu.tw@gmail.com). +# TODO: Check differences and maybe move to 0.6.2 +COPY files/noVNC.tar.gz /usr/lib/ +RUN cd /usr/lib/ && tar -zxvf noVNC.tar.gz +COPY files/index.html /usr/lib/noVNC + +RUN apt-get install -y net-tools + +# Supervisord configuration +COPY files/supervisord_novnc.conf /etc/supervisor/conf.d/ + +# X environment setup/startup +RUN apt-get install fluxbox -y +COPY files/xstartup /opt/tigervnc/ +RUN chmod 755 /opt/tigervnc/xstartup + +# Prepare for logs +RUN mkdir /home/metauser/.logs && chown metauser:metauser /home/metauser/.logs + +# Rename metauser home folder as a "vanilla" home folder +RUN mv /home/metauser /metauser_home_vanilla + +# Add fluxbox customisations +COPY files/dot_fluxbox /metauser_home_vanilla/.fluxbox +RUN chown -R metauser:metauser /metauser_home_vanilla/.fluxbox +COPY files/background.jpg /usr/share/images/fluxbox/background.jpg + +# Give write access to anyone to the home folder so the entrypoint will be able +# to copy over the /home/matauser_vanilla into /home/metauser (for Singularity) +RUN chmod 777 /home + + +#---------------------- +# Entrypoint +#---------------------- + +# Copy entrypoint +COPY files/entrypoint.sh / + +# Give right permissions +RUN chmod 755 /entrypoint.sh + +# Set entrypoint +ENTRYPOINT ["/entrypoint.sh"] + +# Set user (mainly for Singularity) +USER metauser + +# To access: expose 8590/tcp and 5900/tcp +ENV CONTAINER_NAME='minimalmetadesktop' diff --git a/MinimalMetaDesktop-noVNC/build.sh b/MinimalMetaDesktop-noVNC/build.sh new file mode 100755 index 0000000000000000000000000000000000000000..eeca537a0634cbaa3c38011f9b9445d72215b941 --- /dev/null +++ b/MinimalMetaDesktop-noVNC/build.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +docker build . -t minimalmetadesktop diff --git a/MinimalMetaDesktop-noVNC/files/background.jpg b/MinimalMetaDesktop-noVNC/files/background.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fe623ec4ddbd6bab4d77dc0f49303d1be040be73 Binary files /dev/null and b/MinimalMetaDesktop-noVNC/files/background.jpg differ diff --git a/MinimalMetaDesktop-noVNC/files/dot_fluxbox/apps b/MinimalMetaDesktop-noVNC/files/dot_fluxbox/apps new file mode 100644 index 0000000000000000000000000000000000000000..7b4aeadb98c6d0d73a3958ab08e83b9b65595e30 --- /dev/null +++ b/MinimalMetaDesktop-noVNC/files/dot_fluxbox/apps @@ -0,0 +1,4 @@ +[app] (name=fbrun) + [Position] (WINCENTER) {0 0} + [Layer] {2} +[end] diff --git a/MinimalMetaDesktop-noVNC/files/dot_fluxbox/init b/MinimalMetaDesktop-noVNC/files/dot_fluxbox/init new file mode 100644 index 0000000000000000000000000000000000000000..bf43e669fc8806be374d772f50fe6a1bbc5c1115 --- /dev/null +++ b/MinimalMetaDesktop-noVNC/files/dot_fluxbox/init @@ -0,0 +1,76 @@ +session.screen0.tabs.usePixmap: true +session.screen0.tabs.maxOver: false +session.screen0.tabs.intitlebar: true +session.screen0.clientMenu.usePixmap: true +session.screen0.iconbar.usePixmap: true +session.screen0.iconbar.iconTextPadding: 10 +session.screen0.iconbar.iconWidth: 128 +session.screen0.iconbar.alignment: Relative +session.screen0.iconbar.mode: {static groups} (workspace) +session.screen0.toolbar.visible: true +session.screen0.toolbar.height: 0 +session.screen0.toolbar.onhead: 1 +session.screen0.toolbar.widthPercent: 100 +session.screen0.toolbar.alpha: 255 +session.screen0.toolbar.maxOver: false +session.screen0.toolbar.autoHide: false +session.screen0.toolbar.layer: Dock +session.screen0.toolbar.placement: BottomCenter +#session.screen0.toolbar.tools: prevworkspace, workspacename, nextworkspace, clock, prevwindow, nextwindow, iconbar, systemtray +session.screen0.toolbar.tools: iconbar, systemtray +session.screen0.menu.alpha: 255 +session.screen0.tab.placement: TopLeft +session.screen0.tab.width: 64 +session.screen0.titlebar.left: Stick +session.screen0.titlebar.right: Minimize Maximize Close +session.screen0.window.focus.alpha: 255 +session.screen0.window.unfocus.alpha: 255 +session.screen0.slit.alpha: 255 +session.screen0.slit.maxOver: false +session.screen0.slit.placement: RightBottom +session.screen0.slit.autoHide: false +session.screen0.slit.acceptKdeDockapps: true +session.screen0.slit.onhead: 0 +session.screen0.slit.layer: Dock +session.screen0.colPlacementDirection: TopToBottom +session.screen0.tabFocusModel: ClickToTabFocus +session.screen0.autoRaise: true +session.screen0.maxDisableMove: false +session.screen0.edgeSnapThreshold: 10 +session.screen0.tooltipDelay: 500 +session.screen0.opaqueMove: true +session.screen0.windowPlacement: RowMinOverlapPlacement +session.screen0.focusNewWindows: true +session.screen0.clickRaises: true +session.screen0.maxDisableResize: false +session.screen0.windowMenu: /home/metauser/.fluxbox/windowmenu +session.screen0.allowRemoteActions: false +session.screen0.strftimeFormat: %d %b, %a %02k:%M:%S +session.screen0.focusSameHead: false +session.screen0.workspacewarping: true +session.screen0.fullMaximization: false +session.screen0.defaultDeco: NORMAL +session.screen0.noFocusWhileTypingDelay: 0 +session.screen0.menuDelay: 200 +session.screen0.workspaceNames: Workspace 1,Workspace 2,Workspace 3,Workspace 4, +session.screen0.rowPlacementDirection: LeftToRight +session.screen0.focusModel: ClickFocus +session.screen0.showwindowposition: false +session.screen0.maxIgnoreIncrement: true +session.screen0.workspaces: 1 +session.styleOverlay: /home/metauser/.fluxbox/overlay +session.keyFile: ~/.fluxbox/keys +session.cacheMax: 200 +session.tabsAttachArea: Window +session.slitlistFile: /home/metauser/.fluxbox/slitlist +session.forcePseudoTransparency: false +session.tabPadding: 0 +session.colorsPerChannel: 4 +session.styleFile: /usr/share/fluxbox/styles//ubuntu-light +session.autoRaiseDelay: 250 +session.cacheLife: 5 +session.appsFile: /home/metauser/.fluxbox/apps +session.ignoreBorder: false +session.configVersion: 13 +session.doubleClickInterval: 250 +session.menuFile: ~/.fluxbox/menu diff --git a/MinimalMetaDesktop-noVNC/files/dot_fluxbox/keys b/MinimalMetaDesktop-noVNC/files/dot_fluxbox/keys new file mode 100644 index 0000000000000000000000000000000000000000..953d08b263a8422903691069977a3aa56472391c --- /dev/null +++ b/MinimalMetaDesktop-noVNC/files/dot_fluxbox/keys @@ -0,0 +1,137 @@ +# click on the desktop to get menus +OnDesktop Mouse1 :HideMenus +OnDesktop Mouse2 :WorkspaceMenu +OnDesktop Mouse3 :RootMenu + +# scroll on the desktop to change workspaces +OnDesktop Mouse4 :PrevWorkspace +OnDesktop Mouse5 :NextWorkspace + +# scroll on the toolbar to change current window +OnToolbar Mouse4 :PrevWindow {static groups} (iconhidden=no) +OnToolbar Mouse5 :NextWindow {static groups} (iconhidden=no) + +# alt + left/right click to move/resize a window +OnWindow Mod1 Mouse1 :MacroCmd {Raise} {Focus} {StartMoving} +OnWindowBorder Move1 :StartMoving + +OnWindow Mod1 Mouse3 :MacroCmd {Raise} {Focus} {StartResizing NearestCorner} +OnLeftGrip Move1 :StartResizing bottomleft +OnRightGrip Move1 :StartResizing bottomright + +# alt + middle click to lower the window +OnWindow Mod1 Mouse2 :Lower + +# control-click a window's titlebar and drag to attach windows +OnTitlebar Control Mouse1 :StartTabbing + +# double click on the titlebar to shade +OnTitlebar Double Mouse1 :Shade + +# left click on the titlebar to move the window +OnTitlebar Mouse1 :MacroCmd {Raise} {Focus} {ActivateTab} +OnTitlebar Move1 :StartMoving + +# middle click on the titlebar to lower +OnTitlebar Mouse2 :Lower + +# right click on the titlebar for a menu of options +OnTitlebar Mouse3 :WindowMenu + +# alt-tab +Mod1 Tab :NextWindow {groups} (workspace=[current]) +Mod1 Shift Tab :PrevWindow {groups} (workspace=[current]) + +# cycle through tabs in the current window +Mod4 Tab :NextTab +Mod4 Shift Tab :PrevTab + +# go to a specific tab in the current window +Mod4 1 :Tab 1 +Mod4 2 :Tab 2 +Mod4 3 :Tab 3 +Mod4 4 :Tab 4 +Mod4 5 :Tab 5 +Mod4 6 :Tab 6 +Mod4 7 :Tab 7 +Mod4 8 :Tab 8 +Mod4 9 :Tab 9 + +# open a terminal +Mod1 F1 :Exec x-terminal-emulator + +# open a dialog to run programs +Mod1 F2 :Exec fbrun + +# volume settings, using common keycodes +# if these don't work, use xev to find out your real keycodes +176 :Exec amixer sset Master,0 1+ +174 :Exec amixer sset Master,0 1- +160 :Exec amixer sset Master,0 toggle + +# current window commands +Mod1 F4 :Close +Mod1 F5 :Kill +Mod1 F9 :Minimize +Mod1 F10 :Maximize +Mod1 F11 :Fullscreen + +# open the window menu +Mod1 space :WindowMenu + +# exit fluxbox +Control Mod1 Delete :Exit + +# change to previous/next workspace +Control Mod1 Left :PrevWorkspace +Control Mod1 Right :NextWorkspace + +# send the current window to previous/next workspace +Mod4 Left :SendToPrevWorkspace +Mod4 Right :SendToNextWorkspace + +# send the current window and follow it to previous/next workspace +Control Mod4 Left :TakeToPrevWorkspace +Control Mod4 Right :TakeToNextWorkspace + +# change to a specific workspace +Control F1 :Workspace 1 +Control F2 :Workspace 2 +Control F3 :Workspace 3 +Control F4 :Workspace 4 +Control F5 :Workspace 5 +Control F6 :Workspace 6 +Control F7 :Workspace 7 +Control F8 :Workspace 8 +Control F9 :Workspace 9 +Control F10 :Workspace 10 +Control F11 :Workspace 11 +Control F12 :Workspace 12 + +# send the current window to a specific workspace +Mod4 F1 :SendToWorkspace 1 +Mod4 F2 :SendToWorkspace 2 +Mod4 F3 :SendToWorkspace 3 +Mod4 F4 :SendToWorkspace 4 +Mod4 F5 :SendToWorkspace 5 +Mod4 F6 :SendToWorkspace 6 +Mod4 F7 :SendToWorkspace 7 +Mod4 F8 :SendToWorkspace 8 +Mod4 F9 :SendToWorkspace 9 +Mod4 F10 :SendToWorkspace 10 +Mod4 F11 :SendToWorkspace 11 +Mod4 F12 :SendToWorkspace 12 + +# send the current window and change to a specific workspace +Control Mod4 F1 :TakeToWorkspace 1 +Control Mod4 F2 :TakeToWorkspace 2 +Control Mod4 F3 :TakeToWorkspace 3 +Control Mod4 F4 :TakeToWorkspace 4 +Control Mod4 F5 :TakeToWorkspace 5 +Control Mod4 F6 :TakeToWorkspace 6 +Control Mod4 F7 :TakeToWorkspace 7 +Control Mod4 F8 :TakeToWorkspace 8 +Control Mod4 F9 :TakeToWorkspace 9 +Control Mod4 F10 :TakeToWorkspace 10 +Control Mod4 F11 :TakeToWorkspace 11 +Control Mod4 F12 :TakeToWorkspace 12 diff --git a/MinimalMetaDesktop-noVNC/files/dot_fluxbox/lastwallpaper b/MinimalMetaDesktop-noVNC/files/dot_fluxbox/lastwallpaper new file mode 100644 index 0000000000000000000000000000000000000000..1d3a812f04583f48292c28f5c7bec1972f75b17e --- /dev/null +++ b/MinimalMetaDesktop-noVNC/files/dot_fluxbox/lastwallpaper @@ -0,0 +1 @@ +$full $full|/usr/share/images/fluxbox/ubuntu-light.png|style|:0.0 diff --git a/MinimalMetaDesktop-noVNC/files/dot_fluxbox/menu b/MinimalMetaDesktop-noVNC/files/dot_fluxbox/menu new file mode 100644 index 0000000000000000000000000000000000000000..ed1edfbbf100ff08ce6cb48b958a8eb01e0520a6 --- /dev/null +++ b/MinimalMetaDesktop-noVNC/files/dot_fluxbox/menu @@ -0,0 +1,3 @@ +[begin] (fluxbox) +[include] (/etc/X11/fluxbox/fluxbox-menu) +[end] diff --git a/MinimalMetaDesktop-noVNC/files/dot_fluxbox/overlay b/MinimalMetaDesktop-noVNC/files/dot_fluxbox/overlay new file mode 100644 index 0000000000000000000000000000000000000000..4ddc46b04c8c8d4b357a950dc0ff246d7960cbad --- /dev/null +++ b/MinimalMetaDesktop-noVNC/files/dot_fluxbox/overlay @@ -0,0 +1,4 @@ +! The following line will prevent styles from setting the background. +! background: none +background: aspect +background.pixmap: /usr/share/images/fluxbox/background.jpg diff --git a/MinimalMetaDesktop-noVNC/files/dot_fluxbox/windowmenu b/MinimalMetaDesktop-noVNC/files/dot_fluxbox/windowmenu new file mode 100644 index 0000000000000000000000000000000000000000..d867b64c2299e4d714323ec3018ce3efe3a4f466 --- /dev/null +++ b/MinimalMetaDesktop-noVNC/files/dot_fluxbox/windowmenu @@ -0,0 +1,15 @@ +[begin] + [shade] + [stick] + [maximize] + [iconify] + [raise] + [lower] + [settitledialog] + [sendto] + [layer] + [alpha] + [extramenus] + [separator] + [close] +[end] diff --git a/MinimalMetaDesktop-noVNC/files/entrypoint.sh b/MinimalMetaDesktop-noVNC/files/entrypoint.sh new file mode 100644 index 0000000000000000000000000000000000000000..fabb3eb723509c77d0613b28060effdcff607dad --- /dev/null +++ b/MinimalMetaDesktop-noVNC/files/entrypoint.sh @@ -0,0 +1,100 @@ +#!/bin/bash + + # Exit on any error. More complex thing could be done in future +# (see https://stackoverflow.com/questions/4381618/exit-a-script-on-error) +set -e + + +if [ "x$SAFE_MODE" == "xTrue" ]; then + echo "" + echo "[INFO] Not executing entrypoint as we are in safe mode, just opening a Bash shell." + exec /bin/bash +else + echo "" + echo "[INFO] Executing entrypoint..." + + if [ "x$BASE_PORT" == "x" ]; then + echo "[INFO] No task base port set, will set noVNC port 8590 and VNC port 5900 with desktop id \"0\"" + else + echo "[INFO] Task base port set, will set noVNC port $BASE_PORT and noVNC port $(($BASE_PORT+1)) with desktop id \"$(($BASE_PORT-5900+1))\"" + fi + + #--------------------- + # Setup home + #--------------------- + + if [ -f "/home/metauser/.initialized" ]; then + : + else + echo "[INFO] Setting up home" + mkdir -p /home/metauser + + # Copy over vanilla home contents + for x in /metauser_home_vanilla/* /metauser_home_vanilla/.[!.]* /metauser_home_vanilla/..?*; do + if [ -e "$x" ]; then cp -a "$x" /home/metauser/; fi + done + + # Mark as initialized + touch /home/metauser/.initialized + fi + + # Manually set home (mainly for Singularity) + echo "[INFO] Setting up HOME env var" + export HOME=/home/metauser + cd /home/metauser + + #--------------------- + # Save env + #--------------------- + echo "[INFO] Dumping env" + + # Save env vars for later usage (e.g. ssh) + + env | \ + while read env_var; do + if [[ $env_var == HOME\=* ]]; then + : # Skip HOME var + elif [[ $env_var == PWD\=* ]]; then + : # Skip PWD var + else + echo "export $env_var" >> /tmp/env.sh + fi + done + + #--------------------- + # Password + #--------------------- + + if [ "x$AUTH_PASS" != "x" ]; then + echo "[INFO] Setting up VNC password..." + mkdir -p /home/metauser/.vnc + /opt/tigervnc/usr/bin/vncpasswd -f <<< $AUTH_PASS > /home/metauser/.vnc/passwd + chmod 600 /home/metauser/.vnc/passwd + export VNC_AUTH=True + else + echo "[INFO] Not setting up any VNC password" + + fi + + echo "[INFO] Setting new prompt @$CONTAINER_NAME container" + echo 'export PS1="${debian_chroot:+($debian_chroot)}\u@$CONTAINER_NAME@\h:\w\$ "' >> /home/metauser/.bashrc + + + + #--------------------- + # Entrypoint command + #--------------------- + + if [ "$@x" == "x" ]; then + DEFAULT_COMMAND="supervisord -c /etc/supervisor/supervisord.conf" + echo -n "[INFO] Executing default entrypoint command: " + echo $DEFAULT_COMMAND + exec $DEFAULT_COMMAND + else + echo -n "[INFO] Executing entrypoint command: " + echo $@ + exec $@ + fi + +fi + diff --git a/MinimalMetaDesktop-noVNC/files/index.html b/MinimalMetaDesktop-noVNC/files/index.html new file mode 100644 index 0000000000000000000000000000000000000000..6a6c57d819e940020afaaef0023fa1a788867147 --- /dev/null +++ b/MinimalMetaDesktop-noVNC/files/index.html @@ -0,0 +1,12 @@ +<html> +<head> +<script type="text/javascript"> +function redirecter(){ + window.location = "./vnc.html?autoconnect=true&resize=remote" +} +</script> +</head> +<body onLoad="redirecter()"> +Access VNC: click <a href="./vnc.html?autoconnect=true&resize=remote">here</a>. +</body> +</html> \ No newline at end of file diff --git a/MinimalMetaDesktop-noVNC/files/noVNC.tar.gz b/MinimalMetaDesktop-noVNC/files/noVNC.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..a531bed617c54af4826c7afd76192bc2736100ba Binary files /dev/null and b/MinimalMetaDesktop-noVNC/files/noVNC.tar.gz differ diff --git a/MinimalMetaDesktop-noVNC/files/run_novnc.sh b/MinimalMetaDesktop-noVNC/files/run_novnc.sh new file mode 100755 index 0000000000000000000000000000000000000000..53198782b7aea92d8cd8c5181a5fefac7fa91b22 --- /dev/null +++ b/MinimalMetaDesktop-noVNC/files/run_novnc.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +# Exec TigerVNC server + +if [ "x$BASE_PORT" == "x" ]; then + /usr/lib/noVNC/utils/launch.sh --listen 8590 + echo "Running noVNC on port 8590" +else + /usr/lib/noVNC/utils/launch.sh --listen $BASE_PORT --vnc localhost:$(($BASE_PORT+1)) + echo "Running noVNC on port $BASE_PORT and connecting to VNC on port $(($BASE_PORT+1))" + +fi diff --git a/MinimalMetaDesktop-noVNC/files/run_vnc.sh b/MinimalMetaDesktop-noVNC/files/run_vnc.sh new file mode 100755 index 0000000000000000000000000000000000000000..ac7daebd51232559545e9bdcf71dbd5e79140cb6 --- /dev/null +++ b/MinimalMetaDesktop-noVNC/files/run_vnc.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +# Exec TigerVNC server + +if [ "x$BASE_PORT" == "x" ]; then + DESKTOP_NUMBER=0 +else + DESKTOP_NUMBER=$(($BASE_PORT-5900+1)) +fi + +if [ "x$VNC_AUTH" == "xTrue" ]; then + /opt/tigervnc/usr/bin/vncserver :$DESKTOP_NUMBER -SecurityTypes vncauth,tlsvnc -xstartup /opt/tigervnc/xstartup +else + /opt/tigervnc/usr/bin/vncserver :$DESKTOP_NUMBER -SecurityTypes None -xstartup /opt/tigervnc/xstartup +fi + + +# Check it is running. If it is not, exit +while true +do + + PSOUT=$(ps -ef | grep /opt/tigervnc/usr/bin/Xvnc | grep SecurityTypes) + + if [[ "x$PSOUT" == "x" ]] ; then + exit 1 + fi + + # Sleep other 10 secs before re-checking + sleep 10 + +done diff --git a/MinimalMetaDesktop-noVNC/files/sudoers b/MinimalMetaDesktop-noVNC/files/sudoers new file mode 100644 index 0000000000000000000000000000000000000000..47ab37c90fdec1df833409f825d2665fe7d1f899 --- /dev/null +++ b/MinimalMetaDesktop-noVNC/files/sudoers @@ -0,0 +1,30 @@ +# +# This file MUST be edited with the 'visudo' command as root. +# +# Please consider adding local content in /etc/sudoers.d/ instead of +# directly modifying this file. +# +# See the man page for details on how to write a sudoers file. +# +Defaults env_reset +Defaults mail_badpass +Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" + +# Host alias specification + +# User alias specification + +# Cmnd alias specification + +# User privilege specification +root ALL=(ALL:ALL) ALL + +# Members of the admin group may gain root privileges +%admin ALL=(ALL) ALL + +# Allow members of group sudo to execute any command +%sudo ALL=(ALL:ALL) NOPASSWD:ALL + +# See sudoers(5) for more information on "#include" directives: + +#includedir /etc/sudoers.d diff --git a/MinimalMetaDesktop-noVNC/files/supervisord.conf b/MinimalMetaDesktop-noVNC/files/supervisord.conf new file mode 100644 index 0000000000000000000000000000000000000000..16827aa904358c924888618a01e2b3026c9db68b --- /dev/null +++ b/MinimalMetaDesktop-noVNC/files/supervisord.conf @@ -0,0 +1,29 @@ +; supervisor config file (modified for our own purpose) + +[unix_http_server] +file=/home/metauser/.supervisor.sock ; (the path to the socket file) +chmod=0700 ; sockef file mode (default 0700) + +[supervisord] +logfile=/home/metauser/.logs/supervisord.log ; (main log file;default $CWD/supervisord.log) +pidfile=/home/metauser/.logs/supervisord.pid ; (supervisord pidfile;default supervisord.pid) +childlogdir=/home/metauser/.logs ; ('AUTO' child log dir, default $TEMP) +nodaemon=true ; Mandatory to run Supervisor in foreground and avoid Docker to exit! + +; The below section must remain in the config file for RPC +; (supervisorctl/web interface) to work, additional interfaces may be +; added by defining them in separate rpcinterface: sections +[rpcinterface:supervisor] +supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface + +[supervisorctl] +serverurl=unix:///home/metauser/.supervisor.sock ; use a unix:// URL for a unix socket + +; The [include] section can just contain the "files" setting. This +; setting can list multiple files (separated by whitespace or +; newlines). It can also contain wildcards. The filenames are +; interpreted as relative to this file. Included files *cannot* +; include files themselves. + +[include] +files = /etc/supervisor/conf.d/*.conf diff --git a/MinimalMetaDesktop-noVNC/files/supervisord_novnc.conf b/MinimalMetaDesktop-noVNC/files/supervisord_novnc.conf new file mode 100644 index 0000000000000000000000000000000000000000..2a4e685fe1aead80d61cd4a5b48b6c981d8348f1 --- /dev/null +++ b/MinimalMetaDesktop-noVNC/files/supervisord_novnc.conf @@ -0,0 +1,23 @@ +;======================================= +; noVNC service +;======================================= + +[program:novnc] + +; General +directory = /usr/lib/noVNC/ +command = /etc/supervisor/conf.d/run_novnc.sh +numprocs = 1 +autostart = true +autorestart = true +startsecs = 10 +stopwaitsecs = 30 +process_name = novnc + +; Standard out / error +stdout_logfile = /home/metauser/.logs/%(program_name)s.log +stdout_logfile_maxbytes = 5MB +stdout_logfile_backups = 10 +stderr_logfile = /home/metauser/.logs/%(program_name)s.log +stderr_logfile_maxbytes = 5MB +stderr_logfile_backups = 10 diff --git a/MinimalMetaDesktop-noVNC/files/supervisord_vnc.conf b/MinimalMetaDesktop-noVNC/files/supervisord_vnc.conf new file mode 100644 index 0000000000000000000000000000000000000000..42aa37b339d52d8bddfd8a974c70446e51cfc786 --- /dev/null +++ b/MinimalMetaDesktop-noVNC/files/supervisord_vnc.conf @@ -0,0 +1,23 @@ +;======================================= +; VNC service +;======================================= + +[program:vnc] + +; General +directory = / +command = /etc/supervisor/conf.d/run_vnc.sh +numprocs = 1 +autostart = true +autorestart = true +startsecs = 10 +stopwaitsecs = 30 +process_name = vnc + +; Standard out / error +stdout_logfile = /home/metauser/.logs/%(program_name)s.log +stdout_logfile_maxbytes = 5MB +stdout_logfile_backups = 10 +stderr_logfile = /home/metauser/.logs/%(program_name)s.log +stderr_logfile_maxbytes = 5MB +stderr_logfile_backups = 10 diff --git a/MinimalMetaDesktop-noVNC/files/tigervnc-1.8.0.x86_64.tar.gz b/MinimalMetaDesktop-noVNC/files/tigervnc-1.8.0.x86_64.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..c10ec390662aaa9c4fcb38d4bc3ac321dc9a41ee Binary files /dev/null and b/MinimalMetaDesktop-noVNC/files/tigervnc-1.8.0.x86_64.tar.gz differ diff --git a/MinimalMetaDesktop-noVNC/files/xstartup b/MinimalMetaDesktop-noVNC/files/xstartup new file mode 100644 index 0000000000000000000000000000000000000000..0e58b35be8ad2dabf72090f0c66aa55126340acc --- /dev/null +++ b/MinimalMetaDesktop-noVNC/files/xstartup @@ -0,0 +1,29 @@ +#!/bin/sh + +cd /home/metauser + +unset SESSION_MANAGER +unset DBUS_SESSION_BUS_ADDRESS +OS=`uname -s` +if [ $OS = 'Linux' ]; then + case "$WINDOWMANAGER" in + *gnome*) + if [ -e /etc/SuSE-release ]; then + PATH=$PATH:/opt/gnome/bin + export PATH + fi + ;; + esac +fi +if [ -x /etc/X11/xinit/xinitrc ]; then + exec /etc/X11/xinit/xinitrc +fi +if [ -f /etc/X11/xinit/xinitrc ]; then + exec sh /etc/X11/xinit/xinitrc +fi +[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources +#xsetroot -solid grey +xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" /bin/bash & + +#twm & +fluxbox & diff --git a/MinimalMetaDesktop-noVNC/metauser_home/.Xauthority b/MinimalMetaDesktop-noVNC/metauser_home/.Xauthority new file mode 100644 index 0000000000000000000000000000000000000000..8bed6f6a0900534f1e0e0c4f4a449d6b1dd061fa Binary files /dev/null and b/MinimalMetaDesktop-noVNC/metauser_home/.Xauthority differ diff --git a/MinimalMetaDesktop-noVNC/metauser_home/.bash_logout b/MinimalMetaDesktop-noVNC/metauser_home/.bash_logout new file mode 100644 index 0000000000000000000000000000000000000000..de4f5f75d7ccd3a5b62bd2ce683ed678a5cb72c2 --- /dev/null +++ b/MinimalMetaDesktop-noVNC/metauser_home/.bash_logout @@ -0,0 +1,7 @@ +# ~/.bash_logout: executed by bash(1) when login shell exits. + +# when leaving the console clear the screen to increase privacy + +if [ "$SHLVL" = 1 ]; then + [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q +fi diff --git a/MinimalMetaDesktop-noVNC/metauser_home/.bashrc b/MinimalMetaDesktop-noVNC/metauser_home/.bashrc new file mode 100644 index 0000000000000000000000000000000000000000..53576e250ebc970bfa87dc9d342592627649baa1 --- /dev/null +++ b/MinimalMetaDesktop-noVNC/metauser_home/.bashrc @@ -0,0 +1,119 @@ +# ~/.bashrc: executed by bash(1) for non-login shells. +# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) +# for examples + +# If not running interactively, don't do anything +case $- in + *i*) ;; + *) return;; +esac + +# don't put duplicate lines or lines starting with space in the history. +# See bash(1) for more options +HISTCONTROL=ignoreboth + +# append to the history file, don't overwrite it +shopt -s histappend + +# for setting history length see HISTSIZE and HISTFILESIZE in bash(1) +HISTSIZE=1000 +HISTFILESIZE=2000 + +# check the window size after each command and, if necessary, +# update the values of LINES and COLUMNS. +shopt -s checkwinsize + +# If set, the pattern "**" used in a pathname expansion context will +# match all files and zero or more directories and subdirectories. +#shopt -s globstar + +# make less more friendly for non-text input files, see lesspipe(1) +[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" + +# set variable identifying the chroot you work in (used in the prompt below) +if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then + debian_chroot=$(cat /etc/debian_chroot) +fi + +# set a fancy prompt (non-color, unless we know we "want" color) +case "$TERM" in + xterm-color|*-256color) color_prompt=yes;; +esac + +# uncomment for a colored prompt, if the terminal has the capability; turned +# off by default to not distract the user: the focus in a terminal window +# should be on the output of commands, not on the prompt +#force_color_prompt=yes + +if [ -n "$force_color_prompt" ]; then + if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then + # We have color support; assume it's compliant with Ecma-48 + # (ISO/IEC-6429). (Lack of such support is extremely rare, and such + # a case would tend to support setf rather than setaf.) + color_prompt=yes + else + color_prompt= + fi +fi + +if [ "$color_prompt" = yes ]; then + PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' +else + PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' +fi +unset color_prompt force_color_prompt + +# If this is an xterm set the title to user@host:dir +case "$TERM" in +xterm*|rxvt*) + PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" + ;; +*) + ;; +esac + +# enable color support of ls and also add handy aliases +if [ -x /usr/bin/dircolors ]; then + test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" + alias ls='ls --color=auto' + #alias dir='dir --color=auto' + #alias vdir='vdir --color=auto' + + alias grep='grep --color=auto' + alias fgrep='fgrep --color=auto' + alias egrep='egrep --color=auto' +fi + +# colored GCC warnings and errors +#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' + +# some more ls aliases +alias ll='ls -alF' +alias la='ls -A' +alias l='ls -CF' + +# Add an "alert" alias for long running commands. Use like so: +# sleep 10; alert +alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' + +# Alias definitions. +# You may want to put all your additions into a separate file like +# ~/.bash_aliases, instead of adding them here directly. +# See /usr/share/doc/bash-doc/examples in the bash-doc package. + +if [ -f ~/.bash_aliases ]; then + . ~/.bash_aliases +fi + +# enable programmable completion features (you don't need to enable +# this, if it's already enabled in /etc/bash.bashrc and /etc/profile +# sources /etc/bash.bashrc). +if ! shopt -oq posix; then + if [ -f /usr/share/bash-completion/bash_completion ]; then + . /usr/share/bash-completion/bash_completion + elif [ -f /etc/bash_completion ]; then + . /etc/bash_completion + fi +fi +export PS1="${debian_chroot:+($debian_chroot)}\u@$CONTAINER_NAME@\h:\w\$ " +export PS1="${debian_chroot:+($debian_chroot)}\u@$CONTAINER_NAME@\h:\w\$ " diff --git a/MinimalMetaDesktop-noVNC/metauser_home/.fehbg b/MinimalMetaDesktop-noVNC/metauser_home/.fehbg new file mode 100755 index 0000000000000000000000000000000000000000..19c17c731c587be673abcc13f30f62dff5962770 --- /dev/null +++ b/MinimalMetaDesktop-noVNC/metauser_home/.fehbg @@ -0,0 +1,2 @@ +#!/bin/sh +'feh' '--bg-fill' '/usr/share/images/fluxbox/background.jpg' diff --git a/MinimalMetaDesktop-noVNC/metauser_home/.fluxbox/apps b/MinimalMetaDesktop-noVNC/metauser_home/.fluxbox/apps new file mode 100644 index 0000000000000000000000000000000000000000..7b4aeadb98c6d0d73a3958ab08e83b9b65595e30 --- /dev/null +++ b/MinimalMetaDesktop-noVNC/metauser_home/.fluxbox/apps @@ -0,0 +1,4 @@ +[app] (name=fbrun) + [Position] (WINCENTER) {0 0} + [Layer] {2} +[end] diff --git a/MinimalMetaDesktop-noVNC/metauser_home/.fluxbox/init b/MinimalMetaDesktop-noVNC/metauser_home/.fluxbox/init new file mode 100644 index 0000000000000000000000000000000000000000..bf43e669fc8806be374d772f50fe6a1bbc5c1115 --- /dev/null +++ b/MinimalMetaDesktop-noVNC/metauser_home/.fluxbox/init @@ -0,0 +1,76 @@ +session.screen0.tabs.usePixmap: true +session.screen0.tabs.maxOver: false +session.screen0.tabs.intitlebar: true +session.screen0.clientMenu.usePixmap: true +session.screen0.iconbar.usePixmap: true +session.screen0.iconbar.iconTextPadding: 10 +session.screen0.iconbar.iconWidth: 128 +session.screen0.iconbar.alignment: Relative +session.screen0.iconbar.mode: {static groups} (workspace) +session.screen0.toolbar.visible: true +session.screen0.toolbar.height: 0 +session.screen0.toolbar.onhead: 1 +session.screen0.toolbar.widthPercent: 100 +session.screen0.toolbar.alpha: 255 +session.screen0.toolbar.maxOver: false +session.screen0.toolbar.autoHide: false +session.screen0.toolbar.layer: Dock +session.screen0.toolbar.placement: BottomCenter +#session.screen0.toolbar.tools: prevworkspace, workspacename, nextworkspace, clock, prevwindow, nextwindow, iconbar, systemtray +session.screen0.toolbar.tools: iconbar, systemtray +session.screen0.menu.alpha: 255 +session.screen0.tab.placement: TopLeft +session.screen0.tab.width: 64 +session.screen0.titlebar.left: Stick +session.screen0.titlebar.right: Minimize Maximize Close +session.screen0.window.focus.alpha: 255 +session.screen0.window.unfocus.alpha: 255 +session.screen0.slit.alpha: 255 +session.screen0.slit.maxOver: false +session.screen0.slit.placement: RightBottom +session.screen0.slit.autoHide: false +session.screen0.slit.acceptKdeDockapps: true +session.screen0.slit.onhead: 0 +session.screen0.slit.layer: Dock +session.screen0.colPlacementDirection: TopToBottom +session.screen0.tabFocusModel: ClickToTabFocus +session.screen0.autoRaise: true +session.screen0.maxDisableMove: false +session.screen0.edgeSnapThreshold: 10 +session.screen0.tooltipDelay: 500 +session.screen0.opaqueMove: true +session.screen0.windowPlacement: RowMinOverlapPlacement +session.screen0.focusNewWindows: true +session.screen0.clickRaises: true +session.screen0.maxDisableResize: false +session.screen0.windowMenu: /home/metauser/.fluxbox/windowmenu +session.screen0.allowRemoteActions: false +session.screen0.strftimeFormat: %d %b, %a %02k:%M:%S +session.screen0.focusSameHead: false +session.screen0.workspacewarping: true +session.screen0.fullMaximization: false +session.screen0.defaultDeco: NORMAL +session.screen0.noFocusWhileTypingDelay: 0 +session.screen0.menuDelay: 200 +session.screen0.workspaceNames: Workspace 1,Workspace 2,Workspace 3,Workspace 4, +session.screen0.rowPlacementDirection: LeftToRight +session.screen0.focusModel: ClickFocus +session.screen0.showwindowposition: false +session.screen0.maxIgnoreIncrement: true +session.screen0.workspaces: 1 +session.styleOverlay: /home/metauser/.fluxbox/overlay +session.keyFile: ~/.fluxbox/keys +session.cacheMax: 200 +session.tabsAttachArea: Window +session.slitlistFile: /home/metauser/.fluxbox/slitlist +session.forcePseudoTransparency: false +session.tabPadding: 0 +session.colorsPerChannel: 4 +session.styleFile: /usr/share/fluxbox/styles//ubuntu-light +session.autoRaiseDelay: 250 +session.cacheLife: 5 +session.appsFile: /home/metauser/.fluxbox/apps +session.ignoreBorder: false +session.configVersion: 13 +session.doubleClickInterval: 250 +session.menuFile: ~/.fluxbox/menu diff --git a/MinimalMetaDesktop-noVNC/metauser_home/.fluxbox/keys b/MinimalMetaDesktop-noVNC/metauser_home/.fluxbox/keys new file mode 100644 index 0000000000000000000000000000000000000000..953d08b263a8422903691069977a3aa56472391c --- /dev/null +++ b/MinimalMetaDesktop-noVNC/metauser_home/.fluxbox/keys @@ -0,0 +1,137 @@ +# click on the desktop to get menus +OnDesktop Mouse1 :HideMenus +OnDesktop Mouse2 :WorkspaceMenu +OnDesktop Mouse3 :RootMenu + +# scroll on the desktop to change workspaces +OnDesktop Mouse4 :PrevWorkspace +OnDesktop Mouse5 :NextWorkspace + +# scroll on the toolbar to change current window +OnToolbar Mouse4 :PrevWindow {static groups} (iconhidden=no) +OnToolbar Mouse5 :NextWindow {static groups} (iconhidden=no) + +# alt + left/right click to move/resize a window +OnWindow Mod1 Mouse1 :MacroCmd {Raise} {Focus} {StartMoving} +OnWindowBorder Move1 :StartMoving + +OnWindow Mod1 Mouse3 :MacroCmd {Raise} {Focus} {StartResizing NearestCorner} +OnLeftGrip Move1 :StartResizing bottomleft +OnRightGrip Move1 :StartResizing bottomright + +# alt + middle click to lower the window +OnWindow Mod1 Mouse2 :Lower + +# control-click a window's titlebar and drag to attach windows +OnTitlebar Control Mouse1 :StartTabbing + +# double click on the titlebar to shade +OnTitlebar Double Mouse1 :Shade + +# left click on the titlebar to move the window +OnTitlebar Mouse1 :MacroCmd {Raise} {Focus} {ActivateTab} +OnTitlebar Move1 :StartMoving + +# middle click on the titlebar to lower +OnTitlebar Mouse2 :Lower + +# right click on the titlebar for a menu of options +OnTitlebar Mouse3 :WindowMenu + +# alt-tab +Mod1 Tab :NextWindow {groups} (workspace=[current]) +Mod1 Shift Tab :PrevWindow {groups} (workspace=[current]) + +# cycle through tabs in the current window +Mod4 Tab :NextTab +Mod4 Shift Tab :PrevTab + +# go to a specific tab in the current window +Mod4 1 :Tab 1 +Mod4 2 :Tab 2 +Mod4 3 :Tab 3 +Mod4 4 :Tab 4 +Mod4 5 :Tab 5 +Mod4 6 :Tab 6 +Mod4 7 :Tab 7 +Mod4 8 :Tab 8 +Mod4 9 :Tab 9 + +# open a terminal +Mod1 F1 :Exec x-terminal-emulator + +# open a dialog to run programs +Mod1 F2 :Exec fbrun + +# volume settings, using common keycodes +# if these don't work, use xev to find out your real keycodes +176 :Exec amixer sset Master,0 1+ +174 :Exec amixer sset Master,0 1- +160 :Exec amixer sset Master,0 toggle + +# current window commands +Mod1 F4 :Close +Mod1 F5 :Kill +Mod1 F9 :Minimize +Mod1 F10 :Maximize +Mod1 F11 :Fullscreen + +# open the window menu +Mod1 space :WindowMenu + +# exit fluxbox +Control Mod1 Delete :Exit + +# change to previous/next workspace +Control Mod1 Left :PrevWorkspace +Control Mod1 Right :NextWorkspace + +# send the current window to previous/next workspace +Mod4 Left :SendToPrevWorkspace +Mod4 Right :SendToNextWorkspace + +# send the current window and follow it to previous/next workspace +Control Mod4 Left :TakeToPrevWorkspace +Control Mod4 Right :TakeToNextWorkspace + +# change to a specific workspace +Control F1 :Workspace 1 +Control F2 :Workspace 2 +Control F3 :Workspace 3 +Control F4 :Workspace 4 +Control F5 :Workspace 5 +Control F6 :Workspace 6 +Control F7 :Workspace 7 +Control F8 :Workspace 8 +Control F9 :Workspace 9 +Control F10 :Workspace 10 +Control F11 :Workspace 11 +Control F12 :Workspace 12 + +# send the current window to a specific workspace +Mod4 F1 :SendToWorkspace 1 +Mod4 F2 :SendToWorkspace 2 +Mod4 F3 :SendToWorkspace 3 +Mod4 F4 :SendToWorkspace 4 +Mod4 F5 :SendToWorkspace 5 +Mod4 F6 :SendToWorkspace 6 +Mod4 F7 :SendToWorkspace 7 +Mod4 F8 :SendToWorkspace 8 +Mod4 F9 :SendToWorkspace 9 +Mod4 F10 :SendToWorkspace 10 +Mod4 F11 :SendToWorkspace 11 +Mod4 F12 :SendToWorkspace 12 + +# send the current window and change to a specific workspace +Control Mod4 F1 :TakeToWorkspace 1 +Control Mod4 F2 :TakeToWorkspace 2 +Control Mod4 F3 :TakeToWorkspace 3 +Control Mod4 F4 :TakeToWorkspace 4 +Control Mod4 F5 :TakeToWorkspace 5 +Control Mod4 F6 :TakeToWorkspace 6 +Control Mod4 F7 :TakeToWorkspace 7 +Control Mod4 F8 :TakeToWorkspace 8 +Control Mod4 F9 :TakeToWorkspace 9 +Control Mod4 F10 :TakeToWorkspace 10 +Control Mod4 F11 :TakeToWorkspace 11 +Control Mod4 F12 :TakeToWorkspace 12 diff --git a/MinimalMetaDesktop-noVNC/metauser_home/.fluxbox/lastwallpaper b/MinimalMetaDesktop-noVNC/metauser_home/.fluxbox/lastwallpaper new file mode 100644 index 0000000000000000000000000000000000000000..a807c16b90a3f6fbcd584b9db4650ca6954215fb --- /dev/null +++ b/MinimalMetaDesktop-noVNC/metauser_home/.fluxbox/lastwallpaper @@ -0,0 +1 @@ +$aspect $full|/usr/share/images/fluxbox/background.jpg|style|:0.0 diff --git a/MinimalMetaDesktop-noVNC/metauser_home/.fluxbox/menu b/MinimalMetaDesktop-noVNC/metauser_home/.fluxbox/menu new file mode 100644 index 0000000000000000000000000000000000000000..ed1edfbbf100ff08ce6cb48b958a8eb01e0520a6 --- /dev/null +++ b/MinimalMetaDesktop-noVNC/metauser_home/.fluxbox/menu @@ -0,0 +1,3 @@ +[begin] (fluxbox) +[include] (/etc/X11/fluxbox/fluxbox-menu) +[end] diff --git a/MinimalMetaDesktop-noVNC/metauser_home/.fluxbox/overlay b/MinimalMetaDesktop-noVNC/metauser_home/.fluxbox/overlay new file mode 100644 index 0000000000000000000000000000000000000000..4ddc46b04c8c8d4b357a950dc0ff246d7960cbad --- /dev/null +++ b/MinimalMetaDesktop-noVNC/metauser_home/.fluxbox/overlay @@ -0,0 +1,4 @@ +! The following line will prevent styles from setting the background. +! background: none +background: aspect +background.pixmap: /usr/share/images/fluxbox/background.jpg diff --git a/MinimalMetaDesktop-noVNC/metauser_home/.fluxbox/windowmenu b/MinimalMetaDesktop-noVNC/metauser_home/.fluxbox/windowmenu new file mode 100644 index 0000000000000000000000000000000000000000..d867b64c2299e4d714323ec3018ce3efe3a4f466 --- /dev/null +++ b/MinimalMetaDesktop-noVNC/metauser_home/.fluxbox/windowmenu @@ -0,0 +1,15 @@ +[begin] + [shade] + [stick] + [maximize] + [iconify] + [raise] + [lower] + [settitledialog] + [sendto] + [layer] + [alpha] + [extramenus] + [separator] + [close] +[end] diff --git a/MinimalMetaDesktop-noVNC/metauser_home/.initialized b/MinimalMetaDesktop-noVNC/metauser_home/.initialized new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/MinimalMetaDesktop-noVNC/metauser_home/.profile b/MinimalMetaDesktop-noVNC/metauser_home/.profile new file mode 100644 index 0000000000000000000000000000000000000000..d89ea5a6e83a2956d7461b547fa0d7d68103b9c9 --- /dev/null +++ b/MinimalMetaDesktop-noVNC/metauser_home/.profile @@ -0,0 +1,27 @@ +# ~/.profile: executed by the command interpreter for login shells. +# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login +# exists. +# see /usr/share/doc/bash/examples/startup-files for examples. +# the files are located in the bash-doc package. + +# the default umask is set in /etc/profile; for setting the umask +# for ssh logins, install and configure the libpam-umask package. +#umask 022 + +# if running bash +if [ -n "$BASH_VERSION" ]; then + # include .bashrc if it exists + if [ -f "$HOME/.bashrc" ]; then + . "$HOME/.bashrc" + fi +fi + +# set PATH so it includes user's private bin if it exists +if [ -d "$HOME/bin" ] ; then + PATH="$HOME/bin:$PATH" +fi + +# set PATH so it includes user's private bin if it exists +if [ -d "$HOME/.local/bin" ] ; then + PATH="$HOME/.local/bin:$PATH" +fi diff --git a/MinimalMetaDesktop-noVNC/metauser_home/.vnc/config b/MinimalMetaDesktop-noVNC/metauser_home/.vnc/config new file mode 100644 index 0000000000000000000000000000000000000000..d67d45dd976cdb898480b1d6f2448ecef8db108b --- /dev/null +++ b/MinimalMetaDesktop-noVNC/metauser_home/.vnc/config @@ -0,0 +1,9 @@ +## Supported server options to pass to vncserver upon invocation can be listed +## in this file. See the following manpages for more: vncserver(1) Xvnc(1). +## Several common ones are shown below. Uncomment and modify to your liking. +## +# securitytypes=vncauth,tlsvnc +# desktop=sandbox +# geometry=2000x1200 +# localhost +# alwaysshared diff --git a/MinimalMetaDesktop-noVNC/metauser_home/logs/novnc.log b/MinimalMetaDesktop-noVNC/metauser_home/logs/novnc.log new file mode 100644 index 0000000000000000000000000000000000000000..5c0c6e6c49982b772841fb7dd14dc85f41d6b13f --- /dev/null +++ b/MinimalMetaDesktop-noVNC/metauser_home/logs/novnc.log @@ -0,0 +1,31 @@ +Warning: could not find self.pem +Using local websockify at /usr/lib/noVNC/utils/websockify/run +Starting webserver and WebSockets proxy on port 8590 +/usr/lib/noVNC/utils/websockify/websockify/websocket.py:30: UserWarning: no 'numpy' module, HyBi protocol will be slower + warnings.warn("no 'numpy' module, HyBi protocol will be slower") +WebSocket server settings: + - Listen on :8590 + - Web server. Web root: /usr/lib/noVNC + - No SSL/TLS support (no cert file) + - proxying from :8590 to localhost:5900 +172.17.0.1 - - [14/May/2020 15:23:37] 172.17.0.1: Plain non-SSL (ws://) WebSocket connection +172.17.0.1 - - [14/May/2020 15:23:37] 172.17.0.1: Path: '/websockify' +172.17.0.1 - - [14/May/2020 15:23:37] connecting to: localhost:5900 +172.17.0.1: ignoring socket not ready +172.17.0.1: ignoring socket not ready +Warning: could not find self.pem +Using local websockify at /usr/lib/noVNC/utils/websockify/run +Starting webserver and WebSockets proxy on port 8590 +/usr/lib/noVNC/utils/websockify/websockify/websocket.py:30: UserWarning: no 'numpy' module, HyBi protocol will be slower + warnings.warn("no 'numpy' module, HyBi protocol will be slower") +WebSocket server settings: + - Listen on :8590 + - Web server. Web root: /usr/lib/noVNC + - No SSL/TLS support (no cert file) + - proxying from :8590 to localhost:5900 +172.17.0.1: ignoring socket not ready +172.17.0.1 - - [14/May/2020 15:24:09] 172.17.0.1: Plain non-SSL (ws://) WebSocket connection +172.17.0.1 - - [14/May/2020 15:24:09] 172.17.0.1: Path: '/websockify' +172.17.0.1 - - [14/May/2020 15:24:09] connecting to: localhost:5900 +172.17.0.1: ignoring socket not ready +172.17.0.1: ignoring socket not ready diff --git a/MinimalMetaDesktop-noVNC/metauser_home/logs/supervisord.log b/MinimalMetaDesktop-noVNC/metauser_home/logs/supervisord.log new file mode 100644 index 0000000000000000000000000000000000000000..5eefce5a8c889cd291eb8631fe6d0a777ec3d950 --- /dev/null +++ b/MinimalMetaDesktop-noVNC/metauser_home/logs/supervisord.log @@ -0,0 +1,28 @@ +2020-05-14 15:23:25,726 INFO Included extra file "/etc/supervisor/conf.d/supervisord_novnc.conf" during parsing +2020-05-14 15:23:25,727 INFO Included extra file "/etc/supervisor/conf.d/supervisord_vnc.conf" during parsing +2020-05-14 15:23:25,743 INFO RPC interface 'supervisor' initialized +2020-05-14 15:23:25,744 CRIT Server 'unix_http_server' running without any HTTP authentication checking +2020-05-14 15:23:25,748 INFO supervisord started with pid 1 +2020-05-14 15:23:26,758 INFO spawned: 'novnc' with pid 18 +2020-05-14 15:23:26,768 INFO spawned: 'vnc' with pid 19 +2020-05-14 15:23:29,884 INFO reaped unknown pid 44 +2020-05-14 15:23:36,915 INFO success: novnc entered RUNNING state, process has stayed up for > than 10 seconds (startsecs) +2020-05-14 15:23:36,917 INFO success: vnc entered RUNNING state, process has stayed up for > than 10 seconds (startsecs) +2020-05-14 15:23:53,706 WARN received SIGINT indicating exit request +2020-05-14 15:23:53,712 INFO waiting for novnc, vnc to die +2020-05-14 15:23:54,721 INFO stopped: vnc (terminated by SIGTERM) +2020-05-14 15:23:54,723 INFO stopped: novnc (terminated by SIGTERM) +2020-05-14 15:23:57,760 INFO Included extra file "/etc/supervisor/conf.d/supervisord_novnc.conf" during parsing +2020-05-14 15:23:57,761 INFO Included extra file "/etc/supervisor/conf.d/supervisord_vnc.conf" during parsing +2020-05-14 15:23:57,776 INFO RPC interface 'supervisor' initialized +2020-05-14 15:23:57,777 CRIT Server 'unix_http_server' running without any HTTP authentication checking +2020-05-14 15:23:57,783 INFO supervisord started with pid 1 +2020-05-14 15:23:58,799 INFO spawned: 'novnc' with pid 11 +2020-05-14 15:23:58,808 INFO spawned: 'vnc' with pid 12 +2020-05-14 15:24:01,917 INFO reaped unknown pid 37 +2020-05-14 15:24:09,051 INFO success: novnc entered RUNNING state, process has stayed up for > than 10 seconds (startsecs) +2020-05-14 15:24:09,057 INFO success: vnc entered RUNNING state, process has stayed up for > than 10 seconds (startsecs) +2020-05-14 15:24:17,133 WARN received SIGINT indicating exit request +2020-05-14 15:24:17,136 INFO waiting for novnc, vnc to die +2020-05-14 15:24:18,140 INFO stopped: vnc (terminated by SIGTERM) +2020-05-14 15:24:18,145 INFO stopped: novnc (terminated by SIGTERM) diff --git a/MinimalMetaDesktop-noVNC/metauser_home/logs/vnc.log b/MinimalMetaDesktop-noVNC/metauser_home/logs/vnc.log new file mode 100644 index 0000000000000000000000000000000000000000..f7f02bebf021867c4fa4089c403107bc5f843f03 --- /dev/null +++ b/MinimalMetaDesktop-noVNC/metauser_home/logs/vnc.log @@ -0,0 +1,14 @@ +xauth: file /home/metauser/.Xauthority does not exist + +New '8424db806320:0 ()' desktop is 8424db806320:0 + +Creating default config /home/metauser/.vnc/config +Starting applications specified in /opt/tigervnc/xstartup +Log file is /home/metauser/.vnc/8424db806320:0.log + + +New 'f4fd1f7a7af8:0 ()' desktop is f4fd1f7a7af8:0 + +Starting applications specified in /opt/tigervnc/xstartup +Log file is /home/metauser/.vnc/f4fd1f7a7af8:0.log + diff --git a/MinimalMetaDesktop-noVNC/push.sh b/MinimalMetaDesktop-noVNC/push.sh new file mode 100755 index 0000000000000000000000000000000000000000..d683726e14e7e0ef1d0d0299dbd2624981d0746d --- /dev/null +++ b/MinimalMetaDesktop-noVNC/push.sh @@ -0,0 +1,3 @@ +#!/bin/bash +docker tag minimalmetadesktop sarusso/minimalmetadesktop +dind push sarusso/minimalmetadesktop diff --git a/MinimalMetaDesktop-noVNC/run.sh b/MinimalMetaDesktop-noVNC/run.sh new file mode 100755 index 0000000000000000000000000000000000000000..5ec2cd93a2fc8abd5b307c970127ea6296332ac3 --- /dev/null +++ b/MinimalMetaDesktop-noVNC/run.sh @@ -0,0 +1,2 @@ +#!/bin/bash +docker run -v$PWD/:/data -p5900:5900 -p8590:8590 -it minimalmetadesktop