Cleanup & GPU Support
Some checks failed
Build & Push Docker Image / build-and-publish (push) Failing after 59s
Some checks failed
Build & Push Docker Image / build-and-publish (push) Failing after 59s
This commit is contained in:
19
.dockerignore
Normal file
19
.dockerignore
Normal file
@@ -0,0 +1,19 @@
|
||||
# Version control
|
||||
.git
|
||||
.gitea
|
||||
.github
|
||||
.gitignore
|
||||
|
||||
# Documentation
|
||||
README.md
|
||||
*.md
|
||||
|
||||
# IDE
|
||||
.vscode
|
||||
.idea
|
||||
*.swp
|
||||
*.swo
|
||||
|
||||
# OS files
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
43
Dockerfile
43
Dockerfile
@@ -4,39 +4,34 @@ FROM ghcr.io/linuxserver/baseimage-selkies:ubuntunoble
|
||||
|
||||
# Environment variables for Selkies
|
||||
ENV \
|
||||
# CUSTOM_PORT="8080" \
|
||||
CUSTOM_HTTPS_PORT="8181" \
|
||||
TITLE="RuneLite" \
|
||||
SELKIES_MANUAL_WIDTH="1366" \
|
||||
SELKIES_MANUAL_HEIGHT="768" \
|
||||
SELKIES_FRAMERATE="30" \
|
||||
SELKIES_SCALING_DPI="96" \
|
||||
# SELKIES_AUDIO_ENABLED="false" \
|
||||
SELKIES_GAMEPAD_ENABLED="false" \
|
||||
SELKIES_UI_SIDEBAR_SHOW_GAMEPADS="false"
|
||||
# SELKIES_UI_SIDEBAR_SHOW_AUDIO_SETTINGS="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 \
|
||||
libgl1-mesa-glx \
|
||||
libglx-mesa0 \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Add RuneLite icon for Selkies interface and favicon
|
||||
# Add RuneLite icons and metadata for Selkies interface
|
||||
COPY icons/ /usr/share/selkies/www/
|
||||
|
||||
# Inject iOS webapp meta tags and auth fix into Selkies HTML (if index.html exists)
|
||||
# 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>/i\<!-- RuneLite iOS WebApp Support -->' /usr/share/selkies/www/index.html && \
|
||||
sed -i '/<\/head>/i\<meta name="apple-mobile-web-app-capable" content="yes">' /usr/share/selkies/www/index.html && \
|
||||
sed -i '/<\/head>/i\<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">' /usr/share/selkies/www/index.html && \
|
||||
sed -i '/<\/head>/i\<meta name="apple-mobile-web-app-title" content="RuneLite">' /usr/share/selkies/www/index.html && \
|
||||
sed -i '/<\/head>/i\<link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png">' /usr/share/selkies/www/index.html && \
|
||||
sed -i '/<\/head>/i\<link rel="apple-touch-icon" sizes="152x152" href="apple-touch-icon-152x152.png">' /usr/share/selkies/www/index.html && \
|
||||
sed -i '/<\/head>/i\<link rel="manifest" href="manifest.json">' /usr/share/selkies/www/index.html && \
|
||||
sed -i '/<\/head>/i\<meta name="theme-color" content="#ff6600">' /usr/share/selkies/www/index.html && \
|
||||
echo "<!-- Auth fix temporarily disabled -->" ; \
|
||||
sed -i '/<\/head>/r /usr/share/selkies/www/webapp-meta.html' /usr/share/selkies/www/index.html ; \
|
||||
fi
|
||||
|
||||
|
||||
@@ -48,19 +43,8 @@ RUN wget $RUNELITE_URL -P /usr/local/bin \
|
||||
&& chmod +x /usr/local/bin/runelite
|
||||
|
||||
# Configure window manager to hide title bars and maximize windows
|
||||
RUN mkdir -p /etc/xdg/openbox && \
|
||||
echo '<?xml version="1.0" encoding="UTF-8"?>' > /etc/xdg/openbox/rc.xml && \
|
||||
echo '<openbox_config xmlns="http://openbox.org/3.4/rc">' >> /etc/xdg/openbox/rc.xml && \
|
||||
echo ' <theme>' >> /etc/xdg/openbox/rc.xml && \
|
||||
echo ' <name>Clearlooks</name>' >> /etc/xdg/openbox/rc.xml && \
|
||||
echo ' </theme>' >> /etc/xdg/openbox/rc.xml && \
|
||||
echo ' <applications>' >> /etc/xdg/openbox/rc.xml && \
|
||||
echo ' <application class="*">' >> /etc/xdg/openbox/rc.xml && \
|
||||
echo ' <maximized>true</maximized>' >> /etc/xdg/openbox/rc.xml && \
|
||||
echo ' <decor>no</decor>' >> /etc/xdg/openbox/rc.xml && \
|
||||
echo ' </application>' >> /etc/xdg/openbox/rc.xml && \
|
||||
echo ' </applications>' >> /etc/xdg/openbox/rc.xml && \
|
||||
echo '</openbox_config>' >> /etc/xdg/openbox/rc.xml
|
||||
RUN mkdir -p /etc/xdg/openbox
|
||||
COPY openbox-rc.xml /etc/xdg/openbox/rc.xml
|
||||
|
||||
# Note: PulseAudio configuration handled by Selkies base image
|
||||
|
||||
@@ -79,6 +63,5 @@ RUN mkdir -p /config/.config/autostart && \
|
||||
echo 'Name=RuneLite' >> /config/.config/autostart/runelite.desktop && \
|
||||
chown -R abc:abc /config/.config
|
||||
|
||||
# Expose Selkies web interface ports
|
||||
EXPOSE 8181
|
||||
# EXPOSE 8080 8181
|
||||
# Expose Selkies web interface port
|
||||
EXPOSE 8181
|
||||
26
README.md
26
README.md
@@ -13,6 +13,32 @@ docker run -d \
|
||||
ghcr.io/sethwv/rune-docker:latest
|
||||
```
|
||||
|
||||
### GPU Acceleration (Recommended for Better Performance)
|
||||
|
||||
RuneLite supports GPU rendering via OpenGL, which is enabled by default in this container. For optimal performance with hardware acceleration:
|
||||
|
||||
**NVIDIA GPUs:**
|
||||
```bash
|
||||
docker run -d \
|
||||
--name runelite \
|
||||
--gpus all \
|
||||
-p 8181:8181 \
|
||||
-v /path/to/appdata/.runelite:/config/.runelite:rw \
|
||||
ghcr.io/sethwv/rune-docker:latest
|
||||
```
|
||||
|
||||
**AMD/Intel GPUs:**
|
||||
```bash
|
||||
docker run -d \
|
||||
--name runelite \
|
||||
--device /dev/dri:/dev/dri \
|
||||
-p 8181:8181 \
|
||||
-v /path/to/appdata/.runelite:/config/.runelite:rw \
|
||||
ghcr.io/sethwv/rune-docker:latest
|
||||
```
|
||||
|
||||
**Note:** GPU mode provides significantly better FPS and reduced CPU usage. Software rendering (Mesa) is used as fallback if GPU is unavailable.
|
||||
|
||||
## Access
|
||||
|
||||
Once the container is running, access RuneLite through your web browser:
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
<!-- RuneLite iOS WebApp Support -->
|
||||
|
||||
<!-- iOS Web App Meta Tags -->
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
||||
|
||||
12
openbox-rc.xml
Normal file
12
openbox-rc.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<openbox_config xmlns="http://openbox.org/3.4/rc">
|
||||
<theme>
|
||||
<name>Clearlooks</name>
|
||||
</theme>
|
||||
<applications>
|
||||
<application class="*">
|
||||
<maximized>true</maximized>
|
||||
<decor>no</decor>
|
||||
</application>
|
||||
</applications>
|
||||
</openbox_config>
|
||||
13
runelite
13
runelite
@@ -3,5 +3,14 @@
|
||||
# Ensure we're using the correct home directory
|
||||
export HOME=/config
|
||||
|
||||
# Run RuneLite with proper Java options for containerized environment
|
||||
exec java -jar /usr/local/bin/RuneLite.jar
|
||||
# Set optimal Java options for RuneLite
|
||||
# -Xmx: Maximum heap size (adjust based on container memory)
|
||||
# -Xms: Initial heap size (match Xmx for consistent performance)
|
||||
# -Dsun.java2d.opengl: Enable OpenGL acceleration for Java2D
|
||||
# --mode=AUTO: RuneLite will auto-select GPU mode if available
|
||||
exec java \
|
||||
-Xmx1024m \
|
||||
-Xms1024m \
|
||||
-Dsun.java2d.opengl=true \
|
||||
-jar /usr/local/bin/RuneLite.jar \
|
||||
--mode=AUTO
|
||||
Reference in New Issue
Block a user