diff --git a/Dockerfile b/Dockerfile
index b295ac2..54f6377 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -15,7 +15,7 @@ RUN \
https://github.com/selkies-project/selkies.git \
/src && \
cd /src && \
- git checkout -f 7d7b28c83ae46ac79f42c90e052d6dbe7b147e2f
+ git checkout -f 8e38076a0f0fc2e9b66c8906b5f2da29683bfd30
RUN \
echo "**** build frontend ****" && \
@@ -63,6 +63,7 @@ RUN \
linux-headers \
libx11-dev \
libxext-dev \
+ libxfixes-dev \
x264-dev \
python3-dev \
py3-pip \
@@ -170,7 +171,7 @@ RUN \
pip3 install pixelflux --break-system-packages && \
curl -o \
/tmp/selkies.tar.gz -L \
- "https://github.com/selkies-project/selkies/archive/7d7b28c83ae46ac79f42c90e052d6dbe7b147e2f.tar.gz" && \
+ "https://github.com/selkies-project/selkies/archive/8e38076a0f0fc2e9b66c8906b5f2da29683bfd30.tar.gz" && \
cd /tmp && \
tar xf selkies.tar.gz && \
cd selkies-* && \
diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64
index 15182e0..4839e50 100644
--- a/Dockerfile.aarch64
+++ b/Dockerfile.aarch64
@@ -15,7 +15,7 @@ RUN \
https://github.com/selkies-project/selkies.git \
/src && \
cd /src && \
- git checkout -f 7d7b28c83ae46ac79f42c90e052d6dbe7b147e2f
+ git checkout -f 8e38076a0f0fc2e9b66c8906b5f2da29683bfd30
RUN \
echo "**** build frontend ****" && \
@@ -63,6 +63,7 @@ RUN \
linux-headers \
libx11-dev \
libxext-dev \
+ libxfixes-dev \
x264-dev \
python3-dev \
py3-pip \
@@ -166,7 +167,7 @@ RUN \
pip3 install pixelflux --break-system-packages && \
curl -o \
/tmp/selkies.tar.gz -L \
- "https://github.com/selkies-project/selkies/archive/7d7b28c83ae46ac79f42c90e052d6dbe7b147e2f.tar.gz" && \
+ "https://github.com/selkies-project/selkies/archive/8e38076a0f0fc2e9b66c8906b5f2da29683bfd30.tar.gz" && \
cd /tmp && \
tar xf selkies.tar.gz && \
cd selkies-* && \
diff --git a/Dockerfile.aarch64t b/Dockerfile.aarch64t
new file mode 100644
index 0000000..15182e0
--- /dev/null
+++ b/Dockerfile.aarch64t
@@ -0,0 +1,242 @@
+# syntax=docker/dockerfile:1
+FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.22 AS frontend
+
+RUN \
+ echo "**** install build packages ****" && \
+ apk add --no-cache \
+ cmake \
+ git \
+ nodejs \
+ npm
+
+RUN \
+ echo "**** ingest code ****" && \
+ git clone \
+ https://github.com/selkies-project/selkies.git \
+ /src && \
+ cd /src && \
+ git checkout -f 7d7b28c83ae46ac79f42c90e052d6dbe7b147e2f
+
+RUN \
+ echo "**** build frontend ****" && \
+ cd /src && \
+ cd addons/gst-web-core && \
+ npm install && \
+ npm run build && \
+ cd ../selkies-dashboard && \
+ npm install && \
+ npm run build && \
+ mkdir dist/src dist/nginx && \
+ cp ../gst-web-core/dist/selkies-core.js dist/src/ && \
+ cp ../universal-touch-gamepad/universalTouchGamepad.js dist/src/ && \
+ cp ../gst-web-core/nginx/* dist/nginx/ && \
+ mkdir /buildout && \
+ cp -ar dist/* /buildout/
+
+
+# Runtime stage
+FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.22
+
+# set version label
+ARG BUILD_DATE
+ARG VERSION
+LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
+LABEL maintainer="thelamer"
+
+# env
+ENV DISPLAY=:1 \
+ PERL5LIB=/usr/local/bin \
+ HOME=/config \
+ START_DOCKER=true \
+ PULSE_RUNTIME_PATH=/defaults \
+ SELKIES_INTERPOSER=/usr/lib/selkies_joystick_interposer.so \
+ DISABLE_ZINK=false \
+ TITLE=Selkies
+
+RUN \
+ echo "**** install build deps ****" && \
+ apk add --no-cache --virtual .build-deps \
+ alpine-sdk \
+ musl-dev \
+ libev-dev \
+ libjpeg-turbo-dev \
+ linux-headers \
+ libx11-dev \
+ libxext-dev \
+ x264-dev \
+ python3-dev \
+ py3-pip \
+ py3-setuptools \
+ py3-wheel && \
+ echo "**** install runtime deps ****" && \
+ apk add --no-cache \
+ bash \
+ ca-certificates \
+ cmake \
+ kbd \
+ docker \
+ docker-cli-compose \
+ dbus-x11 \
+ dunst \
+ file \
+ linux-firmware-none \
+ font-noto-cjk \
+ font-noto-emoji \
+ font-noto \
+ git \
+ gst-plugins-base \
+ gst-plugins-good \
+ gst-plugins-bad \
+ gst-plugins-ugly \
+ libev \
+ libfontenc \
+ freetype \
+ mesa-gbm \
+ libgcrypt \
+ gobject-introspection \
+ mesa-dri-gallium \
+ mesa-gl \
+ gnutls \
+ gstreamer \
+ libjpeg-turbo \
+ nginx-mod-http-fancyindex \
+ libnotify \
+ p11-kit \
+ linux-pam \
+ libtasn1 \
+ vulkan-loader \
+ libx11 \
+ x264-libs \
+ libxau \
+ libxcb \
+ libxcursor \
+ libxdmcp \
+ libxext \
+ xfconf \
+ libxfixes \
+ libxfont2 \
+ libxinerama \
+ libxshmfence \
+ libxtst \
+ lang \
+ musl-utils \
+ mesa-va-gallium \
+ mesa-vulkan-ati \
+ mesa-vulkan-swrast \
+ nginx \
+ openbox \
+ openssh-client \
+ openssl \
+ pciutils \
+ procps \
+ pulseaudio \
+ pulseaudio-utils \
+ python3 \
+ py3-gobject3 \
+ py3-gst \
+ py3-setuptools \
+ st \
+ sudo \
+ shadow \
+ tar \
+ util-linux \
+ vulkan-tools \
+ xprop \
+ xset \
+ setxkbmap \
+ xkbcomp \
+ xrandr \
+ xauth \
+ libxcvt \
+ xdg-utils \
+ xdotool \
+ font-misc-misc \
+ font-adobe-100dpi \
+ font-adobe-75dpi \
+ xkeyboard-config \
+ xsel \
+ xorg-server \
+ xf86-video-amdgpu \
+ xf86-video-ati \
+ xf86-video-nouveau \
+ xterm \
+ xvfb \
+ zlib && \
+ echo "**** install selkies ****" && \
+ pip3 install pixelflux --break-system-packages && \
+ curl -o \
+ /tmp/selkies.tar.gz -L \
+ "https://github.com/selkies-project/selkies/archive/7d7b28c83ae46ac79f42c90e052d6dbe7b147e2f.tar.gz" && \
+ cd /tmp && \
+ tar xf selkies.tar.gz && \
+ cd selkies-* && \
+ pip3 install . --break-system-packages && \
+ echo "**** install selkies interposer ****" && \
+ cd addons/js-interposer && \
+ gcc -shared -fPIC -ldl \
+ -o selkies_joystick_interposer.so \
+ joystick_interposer.c && \
+ mv \
+ selkies_joystick_interposer.so \
+ /usr/lib/selkies_joystick_interposer.so && \
+ echo "**** install selkies fake udev ****" && \
+ cd ../fake-udev && \
+ make && \
+ mkdir /opt/lib && \
+ mv \
+ libudev.so.1.0.0-fake \
+ /opt/lib/ && \
+ echo "**** add icon ****" && \
+ mkdir -p \
+ /usr/share/selkies/www && \
+ curl -o \
+ /usr/share/selkies/www/icon.png \
+ https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/selkies-logo.png && \
+ curl -o \
+ /usr/share/selkies/www/favicon.ico \
+ https://raw.githubusercontent.com/linuxserver/docker-templates/refs/heads/master/linuxserver.io/img/selkies-icon.ico && \
+ echo "**** openbox tweaks ****" && \
+ sed -i \
+ -e 's/NLIMC/NLMC/g' \
+ -e 's|| yes00\n|' \
+ -e 's|| \n|' \
+ /etc/xdg/openbox/rc.xml && \
+ echo "**** user perms ****" && \
+ echo "abc:abc" | chpasswd && \
+ usermod -s /bin/bash abc && \
+ echo '%wheel ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/wheel && \
+ adduser abc wheel && \
+ echo "**** proot-apps ****" && \
+ mkdir /proot-apps/ && \
+ PAPPS_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/proot-apps/releases/latest" \
+ | awk '/tag_name/{print $4;exit}' FS='[""]') && \
+ curl -L https://github.com/linuxserver/proot-apps/releases/download/${PAPPS_RELEASE}/proot-apps-aarch64.tar.gz \
+ | tar -xzf - -C /proot-apps/ && \
+ echo "${PAPPS_RELEASE}" > /proot-apps/pversion && \
+ echo "**** dind support ****" && \
+ addgroup -S dockremap && \
+ adduser -S -G dockremap dockremap && \
+ echo 'dockremap:165536:65536' >> /etc/subuid && \
+ echo 'dockremap:165536:65536' >> /etc/subgid && \
+ curl -o \
+ /usr/local/bin/dind -L \
+ https://raw.githubusercontent.com/moby/moby/master/hack/dind && \
+ chmod +x /usr/local/bin/dind && \
+ usermod -aG docker abc && \
+ echo 'hosts: files dns' > /etc/nsswitch.conf && \
+ echo "**** theme ****" && \
+ curl -s https://raw.githubusercontent.com/thelamer/lang-stash/master/theme.tar.gz \
+ | tar xzvf - -C /usr/share/themes/Clearlooks/openbox-3/ && \
+ echo "**** cleanup ****" && \
+ apk del .build-deps && \
+ rm -rf \
+ /config/.cache \
+ /tmp/*
+
+# add local files
+COPY /root /
+COPY --from=frontend /buildout /usr/share/selkies/www
+
+# ports and volumes
+EXPOSE 3000 3001
+VOLUME /config
diff --git a/Dockerfilet b/Dockerfilet
new file mode 100644
index 0000000..b295ac2
--- /dev/null
+++ b/Dockerfilet
@@ -0,0 +1,246 @@
+# syntax=docker/dockerfile:1
+FROM ghcr.io/linuxserver/baseimage-alpine:3.22 AS frontend
+
+RUN \
+ echo "**** install build packages ****" && \
+ apk add --no-cache \
+ cmake \
+ git \
+ nodejs \
+ npm
+
+RUN \
+ echo "**** ingest code ****" && \
+ git clone \
+ https://github.com/selkies-project/selkies.git \
+ /src && \
+ cd /src && \
+ git checkout -f 7d7b28c83ae46ac79f42c90e052d6dbe7b147e2f
+
+RUN \
+ echo "**** build frontend ****" && \
+ cd /src && \
+ cd addons/gst-web-core && \
+ npm install && \
+ npm run build && \
+ cd ../selkies-dashboard && \
+ npm install && \
+ npm run build && \
+ mkdir dist/src dist/nginx && \
+ cp ../gst-web-core/dist/selkies-core.js dist/src/ && \
+ cp ../universal-touch-gamepad/universalTouchGamepad.js dist/src/ && \
+ cp ../gst-web-core/nginx/* dist/nginx/ && \
+ mkdir /buildout && \
+ cp -ar dist/* /buildout/
+
+
+# Runtime stage
+FROM ghcr.io/linuxserver/baseimage-alpine:3.22
+
+# set version label
+ARG BUILD_DATE
+ARG VERSION
+LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
+LABEL maintainer="thelamer"
+
+# env
+ENV DISPLAY=:1 \
+ PERL5LIB=/usr/local/bin \
+ HOME=/config \
+ START_DOCKER=true \
+ PULSE_RUNTIME_PATH=/defaults \
+ SELKIES_INTERPOSER=/usr/lib/selkies_joystick_interposer.so \
+ DISABLE_ZINK=false \
+ TITLE=Selkies
+
+RUN \
+ echo "**** install build deps ****" && \
+ apk add --no-cache --virtual .build-deps \
+ alpine-sdk \
+ musl-dev \
+ libev-dev \
+ libjpeg-turbo-dev \
+ linux-headers \
+ libx11-dev \
+ libxext-dev \
+ x264-dev \
+ python3-dev \
+ py3-pip \
+ py3-setuptools \
+ py3-wheel && \
+ echo "**** install runtime deps ****" && \
+ apk add --no-cache \
+ bash \
+ ca-certificates \
+ cmake \
+ kbd \
+ docker \
+ docker-cli-compose \
+ dbus-x11 \
+ dunst \
+ file \
+ linux-firmware-none \
+ font-noto-cjk \
+ font-noto-emoji \
+ font-noto \
+ git \
+ gst-plugins-base \
+ gst-plugins-good \
+ gst-plugins-bad \
+ gst-plugins-ugly \
+ intel-media-driver \
+ libev \
+ libfontenc \
+ freetype \
+ mesa-gbm \
+ libgcrypt \
+ gobject-introspection \
+ mesa-dri-gallium \
+ mesa-gl \
+ gnutls \
+ gstreamer \
+ libjpeg-turbo \
+ nginx-mod-http-fancyindex \
+ libnotify \
+ p11-kit \
+ linux-pam \
+ libtasn1 \
+ vulkan-loader \
+ libx11 \
+ x264-libs \
+ libxau \
+ libxcb \
+ libxcursor \
+ libxdmcp \
+ libxext \
+ xfconf \
+ libxfixes \
+ libxfont2 \
+ libxinerama \
+ libxshmfence \
+ libxtst \
+ lang \
+ musl-utils \
+ mesa-va-gallium \
+ mesa-vulkan-intel \
+ mesa-vulkan-ati \
+ mesa-vulkan-swrast \
+ nginx \
+ openbox \
+ openssh-client \
+ openssl \
+ pciutils \
+ procps \
+ pulseaudio \
+ pulseaudio-utils \
+ python3 \
+ py3-gobject3 \
+ py3-gst \
+ py3-setuptools \
+ st \
+ sudo \
+ shadow \
+ tar \
+ util-linux \
+ vulkan-tools \
+ xprop \
+ xset \
+ setxkbmap \
+ xkbcomp \
+ xrandr \
+ xauth \
+ libxcvt \
+ xdg-utils \
+ xdotool \
+ font-misc-misc \
+ font-adobe-100dpi \
+ font-adobe-75dpi \
+ xkeyboard-config \
+ xsel \
+ xorg-server \
+ xf86-video-amdgpu \
+ xf86-video-ati \
+ xf86-video-intel \
+ xf86-video-nouveau \
+ xf86-video-qxl \
+ xterm \
+ xvfb \
+ zlib && \
+ echo "**** install selkies ****" && \
+ pip3 install pixelflux --break-system-packages && \
+ curl -o \
+ /tmp/selkies.tar.gz -L \
+ "https://github.com/selkies-project/selkies/archive/7d7b28c83ae46ac79f42c90e052d6dbe7b147e2f.tar.gz" && \
+ cd /tmp && \
+ tar xf selkies.tar.gz && \
+ cd selkies-* && \
+ pip3 install . --break-system-packages && \
+ echo "**** install selkies interposer ****" && \
+ cd addons/js-interposer && \
+ gcc -shared -fPIC -ldl \
+ -o selkies_joystick_interposer.so \
+ joystick_interposer.c && \
+ mv \
+ selkies_joystick_interposer.so \
+ /usr/lib/selkies_joystick_interposer.so && \
+ echo "**** install selkies fake udev ****" && \
+ cd ../fake-udev && \
+ make && \
+ mkdir /opt/lib && \
+ mv \
+ libudev.so.1.0.0-fake \
+ /opt/lib/ && \
+ echo "**** add icon ****" && \
+ mkdir -p \
+ /usr/share/selkies/www && \
+ curl -o \
+ /usr/share/selkies/www/icon.png \
+ https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/selkies-logo.png && \
+ curl -o \
+ /usr/share/selkies/www/favicon.ico \
+ https://raw.githubusercontent.com/linuxserver/docker-templates/refs/heads/master/linuxserver.io/img/selkies-icon.ico && \
+ echo "**** openbox tweaks ****" && \
+ sed -i \
+ -e 's/NLIMC/NLMC/g' \
+ -e 's|| yes00\n|' \
+ -e 's|| \n|' \
+ /etc/xdg/openbox/rc.xml && \
+ echo "**** user perms ****" && \
+ echo "abc:abc" | chpasswd && \
+ usermod -s /bin/bash abc && \
+ echo '%wheel ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/wheel && \
+ adduser abc wheel && \
+ echo "**** proot-apps ****" && \
+ mkdir /proot-apps/ && \
+ PAPPS_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/proot-apps/releases/latest" \
+ | awk '/tag_name/{print $4;exit}' FS='[""]') && \
+ curl -L https://github.com/linuxserver/proot-apps/releases/download/${PAPPS_RELEASE}/proot-apps-x86_64.tar.gz \
+ | tar -xzf - -C /proot-apps/ && \
+ echo "${PAPPS_RELEASE}" > /proot-apps/pversion && \
+ echo "**** dind support ****" && \
+ addgroup -S dockremap && \
+ adduser -S -G dockremap dockremap && \
+ echo 'dockremap:165536:65536' >> /etc/subuid && \
+ echo 'dockremap:165536:65536' >> /etc/subgid && \
+ curl -o \
+ /usr/local/bin/dind -L \
+ https://raw.githubusercontent.com/moby/moby/master/hack/dind && \
+ chmod +x /usr/local/bin/dind && \
+ usermod -aG docker abc && \
+ echo 'hosts: files dns' > /etc/nsswitch.conf && \
+ echo "**** theme ****" && \
+ curl -s https://raw.githubusercontent.com/thelamer/lang-stash/master/theme.tar.gz \
+ | tar xzvf - -C /usr/share/themes/Clearlooks/openbox-3/ && \
+ echo "**** cleanup ****" && \
+ apk del .build-deps && \
+ rm -rf \
+ /config/.cache \
+ /tmp/*
+
+# add local files
+COPY /root /
+COPY --from=frontend /buildout /usr/share/selkies/www
+
+# ports and volumes
+EXPOSE 3000 3001
+VOLUME /config