Compare commits
19 Commits
master
...
kasmvnc-in
Author | SHA1 | Date | |
---|---|---|---|
dd43e7b262 | |||
4c01d07b37 | |||
50e53f752f | |||
f846447fa7 | |||
5735a7c8cd | |||
251bebffe9 | |||
2ff9ec6dea | |||
11ecf799d6 | |||
5841b8518a | |||
890c5c034e | |||
37f9566ac9 | |||
a007eacf73 | |||
a3c8d86bd5 | |||
e412d25920 | |||
7bf7d4acc6 | |||
48dc8084df | |||
5ff86ff318 | |||
1c9d9966f6 | |||
94f6829b48 |
43
Dockerfile
43
Dockerfile
@@ -1,4 +1,4 @@
|
||||
FROM ich777/novnc-baseimage
|
||||
FROM ich777/kasmvnc-baseimage
|
||||
|
||||
LABEL org.opencontainers.image.authors="admin@minenet.at"
|
||||
LABEL org.opencontainers.image.source="https://github.com/ich777/docker-debian-bookworm"
|
||||
@@ -7,19 +7,20 @@ RUN export TZ=Europe/Rome && \
|
||||
apt-get update && \
|
||||
ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && \
|
||||
echo $TZ > /etc/timezone && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -y install xfce4 xfce4-terminal xfce4-taskmanager dbus-x11 iputils-ping xarchiver bzip2 xz-utils unzip unrar zip binutils bash-completion procps traceroute telnet gvfs-backends gvfs-common gvfs-fuse gvfs firefox-esr curl unzip gedit ffmpeg flameshot jq fonts-vlgothic ttf-wqy-zenhei fonts-wqy-microhei fonts-takao fonts-arphic-uming fonts-noto-cjk msttcorefonts remmina nano libxdo3 ssh peek && \
|
||||
apt-get -y remove zutty pavucontrol && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -y install xfce4 xfce4-terminal xfce4-taskmanager dbus-x11 iputils-ping xarchiver bzip2 xz-utils unzip unrar zip binutils bash-completion procps traceroute telnet gvfs-backends gvfs-common gvfs-fuse gvfs firefox-esr curl unzip gedit ffmpeg flameshot jq fonts-vlgothic ttf-wqy-zenhei fonts-wqy-microhei fonts-takao fonts-arphic-uming fonts-noto-cjk msttcorefonts remmina nano libxdo3 ssh peek x11vnc git && \
|
||||
apt-get -y remove vim zutty pavucontrol && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN mkdir -p /tmp/rustdesk && \
|
||||
RUSTDESK_V="$(wget -qO- https://api.github.com/repos/rustdesk/rustdesk/releases/latest | grep tag_name | cut -d '"' -f4)" && \
|
||||
wget -O /tmp/rustdesk/rustdesk.tar.zst https://github.com/rustdesk/rustdesk/releases/download/${RUSTDESK_V}/rustdesk-${RUSTDESK_V}-0-x86_64.pkg.tar.zst && \
|
||||
tar -C /tmp/rustdesk -xvf /tmp/rustdesk/rustdesk.tar.zst && \
|
||||
mv /tmp/rustdesk/usr/lib/rustdesk /opt/ && mv /tmp/rustdesk/usr/share/icons/hicolor/256x256/apps/rustdesk.png /opt/rustdesk && \
|
||||
mv /tmp/rustdesk/usr/share/rustdesk/files/rustdesk.desktop /usr/share/applications/ && \
|
||||
mv /tmp/rustdesk/usr/share/rustdesk /opt/ && mv /tmp/rustdesk/usr/share/icons/hicolor/256x256/apps/rustdesk.png /opt/rustdesk && \
|
||||
mv /opt/rustdesk/files/rustdesk.desktop /usr/share/applications/ && \
|
||||
sed -i "/^Icon=/c\Icon=\/opt\/rustdesk\/rustdesk.png" /usr/share/applications/rustdesk.desktop && \
|
||||
sed -i "/^Exec=/c\Exec=env LD_PRELOAD=\/opt\/rustdesk\/lib \/opt\/rustdesk\/rustdesk" /usr/share/applications/rustdesk.desktop && \
|
||||
rm -rf /tmp/rustdesk
|
||||
sed -i '/Desktop Action new-window/,$d' /usr/share/applications/rustdesk.desktop && \
|
||||
rm -rf /tmp/rustdesk /opt/rustdesk/files
|
||||
|
||||
RUN cd /tmp && \
|
||||
wget -O /tmp/axiom.tar.gz https://github.com/ich777/docker-debian-bookworm/raw/master/90145-axiom.tar.gz && \
|
||||
@@ -29,17 +30,15 @@ RUN cd /tmp && \
|
||||
cd /usr/share/locale && \
|
||||
wget -O /usr/share/locale/locale.7z https://github.com/ich777/docker-debian-bookworm/raw/master/locale.7z && \
|
||||
p7zip -d -f /usr/share/locale/locale.7z && \
|
||||
chmod -R 755 /usr/share/locale/ && \
|
||||
sed -i '/ document.title =/c\ document.title = "DebianBookworm - noVNC";' /usr/share/novnc/app/ui.js && \
|
||||
mkdir /tmp/config && \
|
||||
rm /usr/share/novnc/app/images/icons/*
|
||||
sed -i '/ document.title =/c\ document.title = "DebianBookworm - KasmVNC";' /usr/share/kasmvnc/www/app/ui.js && \
|
||||
chmod -R 755 /usr/share/locale/
|
||||
|
||||
RUN wget -O /usr/share/keyrings/element-io-archive-keyring.gpg https://packages.element.io/debian/element-io-archive-keyring.gpg && \
|
||||
echo "deb [signed-by=/usr/share/keyrings/element-io-archive-keyring.gpg] https://packages.element.io/debian/ default main" | tee /etc/apt/sources.list.d/element-io.list && \
|
||||
apt-get update && \
|
||||
apt-get -y install element-desktop && \
|
||||
rm -rf /var/lib/apt/lists/* && \
|
||||
sed -i "s/Exec=\/opt\/Element\/element-desktop.*/Exec=\/opt\/Element\/element-desktop --no-sandbox --disable-accelerated-video --disable-gpu --disable-seccomp-filter-sandbox --dbus-stub %U/g" /usr/share/applications/element-desktop.desktop
|
||||
sed -i "s/Exec=\/opt\/Element\/element-desktop.*/Exec=\/opt\/Element\/element-desktop --no-sandbox --disable-seccomp-filter-sandbox --dbus-stub %U/g" /usr/share/applications/element-desktop.desktop
|
||||
|
||||
RUN mkdir -p /tmp/pinta && cd /tmp/pinta && \
|
||||
wget -O /tmp/pinta/Pinta-x86-64.AppImage https://github.com/ich777/docker-debian-bookworm/raw/master/Pinta-x86-64.AppImage && \
|
||||
@@ -52,20 +51,21 @@ RUN mkdir -p /tmp/pinta && cd /tmp/pinta && \
|
||||
sed -i '/^TryExec=/d' /usr/share/applications/pinta.desktop && \
|
||||
rm -rf /tmp/pinta
|
||||
|
||||
RUN echo "NoDisplay=true" >> /usr/share/applications/x11vnc.desktop && \
|
||||
echo "NoDisplay=true" >> /usr/share/applications/tvncviewer.desktop
|
||||
RUN systemctl set-default multi-user.target
|
||||
|
||||
ENV DATA_DIR=/debian
|
||||
ENV FORCE_UPDATE=""
|
||||
ENV CUSTOM_RES_W=1280
|
||||
ENV CUSTOM_RES_H=720
|
||||
ENV CUSTOM_DEPTH=16
|
||||
ENV NOVNC_PORT=8080
|
||||
ENV DEPTH=24
|
||||
ENV HW3D="true"
|
||||
ENV DRINODE="/dev/dri/renderD128"
|
||||
ENV FRAMERATE=30
|
||||
ENV KASMVNC_PORT=8080
|
||||
ENV KASMVNC_PARAMS="-DisableBasicAuth -PreferBandwidth -FreeKeyMappings -DLP_ClipDelay=0"
|
||||
ENV KASM_AMDIN_PASSWD="password"
|
||||
ENV X11VNC="false"
|
||||
ENV X11VNC_PARAMS="-forever -shared"
|
||||
ENV RFB_PORT=5900
|
||||
ENV TURBOVNC_PARAMS="-securitytypes none"
|
||||
ENV NOVNC_RESIZE=""
|
||||
ENV NOVNC_QUALITY=""
|
||||
ENV NOVNC_COMPRESSION=""
|
||||
ENV RECT_THREADS=1
|
||||
ENV UMASK=000
|
||||
ENV UID=99
|
||||
ENV GID=100
|
||||
@@ -81,7 +81,6 @@ RUN mkdir $DATA_DIR && \
|
||||
ulimit -n 2048
|
||||
|
||||
ADD /scripts/ /opt/scripts/
|
||||
COPY /icons/* /usr/share/novnc/app/images/icons/
|
||||
COPY /config/ /tmp/config/
|
||||
RUN chmod -R 770 /opt/scripts/
|
||||
|
||||
|
@@ -40,6 +40,20 @@ if [ ! -f ${DATA_DIR}/.config/autostart/light-locker.desktop ]; then
|
||||
echo "[Desktop Entry]
|
||||
Hidden=true" > ${DATA_DIR}/.config/autostart/light-locker.desktop
|
||||
fi
|
||||
if [ "${HW3D}" == "true" ]; then
|
||||
HWACCELL="-hw3d -drinode ${DRINODE} "
|
||||
fi
|
||||
if [ ! -f ${DATA_DIR}/.kasmpasswd ]; then
|
||||
echo -e "${KASM_AMDIN_PASSWD}\n${KASM_AMDIN_PASSWD}\n" | kasmvncpasswd -u admin -w
|
||||
fi
|
||||
unset KASM_AMDIN_PASSWD
|
||||
|
||||
if [ ! -f ${DATA_DIR}/.vnc/.de-was-selected ]; then
|
||||
if [ ! -d ${DATA_DIR}/.vnc ]; then
|
||||
mkdir -p ${DATA_DIR}/.vnc
|
||||
fi
|
||||
touch ${DATA_DIR}/.vnc/.de-was-selected
|
||||
fi
|
||||
|
||||
echo "---Checking for old logfiles---"
|
||||
find ${DATA_DIR}/.logs -name "XvfbLog.*" -exec rm -f {} \;
|
||||
@@ -47,12 +61,11 @@ find ${DATA_DIR}/.logs -name "x11vncLog.*" -exec rm -f {} \;
|
||||
echo "---Checking for old lock files---"
|
||||
rm -rf /tmp/.X99*
|
||||
rm -rf /tmp/.X11*
|
||||
rm -rf ${DATA_DIR}/.vnc/*.log ${DATA_DIR}/.vnc/*.pid
|
||||
rm -rf ${DATA_DIR}/.vnc/*.log ${DATA_DIR}/.vnc/*.pid
|
||||
chmod -R ${DATA_PERM} ${DATA_DIR}
|
||||
if [ -f ${DATA_DIR}/.vnc/passwd ]; then
|
||||
chmod 600 ${DATA_DIR}/.vnc/passwd
|
||||
fi
|
||||
screen -wipe 2&>/dev/null
|
||||
chmod 600 ${DATA_DIR}/.kasmpasswd
|
||||
chown ${UID}:${GID} ${DATA_DIR}/.kasmpasswd
|
||||
|
||||
find /var/run/dbus -name "pid" -exec rm -f {} \;
|
||||
|
||||
echo "---Starting dbus service---"
|
||||
@@ -64,17 +77,21 @@ else
|
||||
fi
|
||||
sleep 2
|
||||
|
||||
echo "---Starting TurboVNC server---"
|
||||
vncserver -geometry ${CUSTOM_RES_W}x${CUSTOM_RES_H} -depth ${CUSTOM_DEPTH} :99 -rfbport ${RFB_PORT} -noxstartup ${TURBOVNC_PARAMS} 2>/dev/null
|
||||
echo "---Starting KasmVNC---"
|
||||
vncserver ${DISPLAY} ${HWACCELL}-FrameRate=${FRAMERATE} -interface 0.0.0.0 -depth ${DEPTH} -RectThreads ${RECT_THREADS} -noxstartup ${KASMVNC_PARAMS} >/dev/null 2>&1
|
||||
sleep 2
|
||||
|
||||
echo "---Starting noVNC server---"
|
||||
websockify -D --web=/usr/share/novnc/ --cert=/etc/ssl/novnc.pem ${NOVNC_PORT} localhost:${RFB_PORT}
|
||||
sleep 2
|
||||
if [ "${X11VNC}" == "true" ]; then
|
||||
echo "---Starting x11vnc on port: ${RFB_PORT}---"
|
||||
/opt/scripts/start-x11.sh >/dev/null 2>&1 &
|
||||
if [ -f ${DATA_DIR}/.vnc/passwd ]; then
|
||||
chmod 600 ${DATA_DIR}/.vnc/passwd
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "---Starting Desktop---"
|
||||
if [ "${DEV}" == "true" ]; then
|
||||
xfce4-session
|
||||
xfce4-session --display=${DISPLAY}
|
||||
else
|
||||
xfce4-session 2> /dev/null
|
||||
fi
|
||||
xfce4-session --display=${DISPLAY} 2> /dev/null
|
||||
fi
|
4
scripts/start-x11.sh
Normal file
4
scripts/start-x11.sh
Normal file
@@ -0,0 +1,4 @@
|
||||
until x11vnc -display ${DISPLAY} -rfbport ${RFB_PORT} ${X11VNC_PARAMS}; do
|
||||
echo "x11vnc server crashed with exit code $?. Respawning.." >&2
|
||||
sleep 1
|
||||
done
|
@@ -45,8 +45,7 @@ else
|
||||
echo "---Locales set correctly, continuing---"
|
||||
fi
|
||||
|
||||
echo "---Checking configuration for noVNC---"
|
||||
novnccheck
|
||||
sed -i "/^ websocket_port: /c\\ websocket_port: ${KASMVNC_PORT}" /usr/share/kasmvnc/kasmvnc_defaults.yaml
|
||||
|
||||
echo "---Taking ownership of data...---"
|
||||
rm -R ${DATA_DIR}/.dbus/session-bus/* 2> /dev/null
|
||||
|
Reference in New Issue
Block a user