# Create a RuneLite docker image with Selkies support. FROM ghcr.io/linuxserver/baseimage-selkies:ubuntunoble # Environment variables for Selkies ENV \ CUSTOM_HTTPS_PORT="8181" \ TITLE="RuneLite" \ SELKIES_MANUAL_WIDTH="1366" \ SELKIES_MANUAL_HEIGHT="768" \ SELKIES_FRAMERATE="30" \ SELKIES_SCALING_DPI="96" \ SELKIES_GAMEPAD_ENABLED="false" \ SELKIES_UI_SIDEBAR_SHOW_GAMEPADS="false" # Install Java, tools, and GPU libraries for RuneLite GPU plugin support RUN apt-get update && apt-get install -y --no-install-recommends \ default-jre \ wget \ libnotify-bin \ notification-daemon \ # GPU/OpenGL libraries for RuneLite GPU plugin mesa-utils \ libgl1-mesa-dri \ libglx-mesa0 \ && rm -rf /var/lib/apt/lists/* # Add RuneLite icons and metadata for Selkies interface COPY icons/ /usr/share/selkies/www/ # Inject iOS webapp meta tags using prepared file (cleaner than multiple sed commands) RUN if [ -f /usr/share/selkies/www/index.html ]; then \ sed -i '/<\/head>/r /usr/share/selkies/www/webapp-meta.html' /usr/share/selkies/www/index.html ; \ fi ENV RUNELITE_URL="https://github.com/runelite/launcher/releases/latest/download/RuneLite.jar" ADD runelite /usr/local/bin RUN wget $RUNELITE_URL -P /usr/local/bin \ && chmod +x /usr/local/bin/RuneLite.jar \ && chmod +x /usr/local/bin/runelite # Configure window manager to hide title bars and maximize windows RUN mkdir -p /etc/xdg/openbox COPY openbox-rc.xml /etc/xdg/openbox/rc.xml # Note: PulseAudio configuration handled by Selkies base image # Use LinuxServer.io's autostart mechanism instead of custom cont-init.d RUN mkdir -p /defaults && \ echo '/usr/local/bin/runelite' > /defaults/autostart # Also create desktop autostart as backup RUN mkdir -p /config/.config/autostart && \ echo '[Desktop Entry]' > /config/.config/autostart/runelite.desktop && \ echo 'Type=Application' >> /config/.config/autostart/runelite.desktop && \ echo 'Exec=/usr/local/bin/runelite' >> /config/.config/autostart/runelite.desktop && \ echo 'Hidden=false' >> /config/.config/autostart/runelite.desktop && \ echo 'NoDisplay=false' >> /config/.config/autostart/runelite.desktop && \ echo 'X-GNOME-Autostart-enabled=true' >> /config/.config/autostart/runelite.desktop && \ echo 'Name=RuneLite' >> /config/.config/autostart/runelite.desktop && \ chown -R abc:abc /config/.config # Expose Selkies web interface port EXPOSE 8181