Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/ISSUE_TEMPLATE/issue.bug.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@ body:
label: CPU architecture
options:
- x86-64
- arm64
validations:
required: true
- type: textarea
Expand Down
150 changes: 135 additions & 15 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,3 +1,110 @@
# syntax=docker/dockerfile:1

FROM ghcr.io/linuxserver/baseimage-selkies:debiantrixie AS buildstage

ARG EDEN_VERSION

RUN \
echo "**** install build deps ****" && \
apt-get update && \
apt-get install -y \
autoconf \
cmake \
g++ \
gcc \
git \
glslang-tools \
libasound2t64 \
libavcodec-dev \
libavfilter-dev \
libboost-context-dev \
libboost-fiber-dev \
libcpp-httplib-dev \
libcpp-jwt-dev \
libcubeb-dev \
libenet-dev \
libfmt-dev \
libglu1-mesa-dev \
libhidapi-dev \
liblz4-dev \
libopus-dev \
libpulse-dev \
libqt6core5compat6 \
libquazip1-qt6-dev \
libsdl2-dev \
libsimpleini-dev \
libssl-dev \
libswscale-dev \
libtool \
libudev-dev \
libusb-1.0-0-dev \
libva-dev \
libvdpau-dev \
libvulkan-dev \
libxcb-icccm4 \
libxcb-image0 \
libxcb-keysyms1 \
libxcb-render-util0 \
libxcb-xinerama0 \
libxcb-xkb1 \
libxext-dev \
libxkbcommon-x11-0 \
libzstd-dev \
mesa-common-dev \
nasm \
ninja-build \
nlohmann-json3-dev \
patch \
pkg-config \
qt6-base-private-dev \
qt6-charts-dev \
qt6-multimedia-dev \
qt6-tools-dev \
qt6-webengine-dev \
spirv-headers \
spirv-tools \
zlib1g-dev

RUN \
echo "**** build eden ****" && \
mkdir /root-out && \
if [ -z ${EDEN_VERSION+x} ]; then \
EDEN_VERSION=$(curl -sX GET 'https://git.eden-emu.dev/api/v1/repos/eden-emu/eden/releases/latest' \
| awk '/tag_name/{print $6;exit}' FS='[""]'); \
fi && \
git clone https://git.eden-emu.dev/eden-emu/eden.git && \
cd eden/ && \
git checkout -f ${EDEN_VERSION} && \
cmake -B build -GNinja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_C_FLAGS="-march=x86-64-v3 -O2" \
-DCMAKE_CXX_FLAGS="-march=x86-64-v3 -O2" \
-DUSE_DISCORD_PRESENCE=ON \
-DYUZU_ENABLE_LTO=OFF \
-DYUZU_USE_CPM=OFF \
-DCPM_USE_LOCAL_PACKAGES=ON \
-DYUZU_USE_BUNDLED_FFMPEG=OFF \
-DYUZU_USE_BUNDLED_SDL2=OFF \
-DYUZU_USE_EXTERNAL_SDL2=OFF \
-DYUZU_USE_BUNDLED_QT=OFF \
-DENABLE_QT_TRANSLATION=ON \
-DYUZU_USE_QT_MULTIMEDIA=ON \
-DYUZU_USE_QT_WEB_ENGINE=ON \
-Dhttplib_FORCE_BUNDLED=ON \
-DTITLE_BAR_FORMAT_RUNNING="eden | ${EDEN_VERSION} {}" \
-DTITLE_BAR_FORMAT_IDLE="eden ${EDEN_VERSION} {}" \
-DYUZU_TESTS=OFF \
-DDYNARMIC_TESTS=OFF \
-DBUILD_TESTING=OFF \
-Wno-dev && \
cmake --build build && \
mv \
build/bin/* \
/root-out/


# Runtime Stage
FROM ghcr.io/linuxserver/baseimage-selkies:debiantrixie

# set version label
Expand All @@ -8,7 +115,7 @@ LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DA
LABEL maintainer="thelamer"

ENV TITLE=Eden \
PIXELFLUX_WAYLAND=true
PIXELFLUX_WAYLAND=true

RUN \
echo "**** add icon ****" && \
Expand All @@ -17,18 +124,30 @@ RUN \
https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/eden-logo.png && \
echo "**** install packages ****" && \
apt-get update && \
DEBIAN_FRONTEND=noninteractive \
echo "**** install eden ****" && \
if [ -z ${EDEN_VERSION+x} ]; then \
EDEN_VERSION=$(curl -sX GET "https://git.eden-emu.dev/api/v1/repos/eden-emu/eden/releases/latest" \
| awk '/tag_name/{print $6;exit}' FS='[""]'); \
fi && \
curl -o \
/tmp/eden.deb -L \
"https://git.eden-emu.dev/eden-emu/eden/releases/download/${EDEN_VERSION}/Eden-Debian-13-${EDEN_VERSION}-amd64.deb" && \
apt-get install -y \
/tmp/eden.deb && \
apt-get install -y --no-install-recommends \
libavcodec61 \
libboost-context1.83.0 \
libboost-filesystem1.83.0 \
libcubeb0 \
libenet7 \
libfmt10 \
liblz4-1 \
libopus0 \
libqt6charts6 \
libqt6multimedia6 \
libqt6webenginewidgets6 \
libquazip1-qt6-1t64 \
libsdl2-2.0-0 \
libsimpleini1t64 \
libssl3t64 \
libusb-1.0-0 \
libxcb-cursor0 \
libzstd1 \
qt6-wayland && \
echo "**** cleanup ****" && \
printf \
"Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" \
> /build_version && \
apt-get autoclean && \
rm -rf \
/config/.cache \
Expand All @@ -37,9 +156,10 @@ RUN \
/var/tmp/* \
/tmp/*

# add local files
COPY /root /
# add local files and files from buildstage
COPY --from=buildstage /root-out/* /usr/bin/
COPY root/ /

# ports and volumes
EXPOSE 3001
VOLUME /config
EXPOSE 3001
45 changes: 0 additions & 45 deletions Dockerfile.aarch64

This file was deleted.

2 changes: 1 addition & 1 deletion Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ pipeline {
DEV_DOCKERHUB_IMAGE = 'lsiodev/eden'
PR_DOCKERHUB_IMAGE = 'lspipepr/eden'
DIST_IMAGE = 'debian'
MULTIARCH = 'true'
MULTIARCH = 'false'
CI = 'true'
CI_WEB = 'true'
CI_PORT = '3001'
Expand Down
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,14 +52,16 @@ The architectures supported by this image are:
| Architecture | Available | Tag |
| :----: | :----: | ---- |
| x86-64 | ✅ | amd64-\<version tag\> |
| arm64 | ✅ | arm64v8-\<version tag\> |
| arm64 | ❌ | |

## Application Setup

The application can be accessed at:

* https://yourhost:3001/

**This image only runs in Wayland mode and should be run with a GPU**

### Strict reverse proxies

This image uses a self-signed certificate by default. This naturally means the scheme is `https`.
Expand Down Expand Up @@ -639,5 +641,6 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64

## Versions

* **05.05.26:** - Rebase to Debian Trixie, build Eden from source, remove arm64 tag.
* **17.03.26:** - Ingest releases from self hosted git.
* **18.02.26:** - Initial Version.
2 changes: 1 addition & 1 deletion jenkins-vars.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ repo_vars:
- DEV_DOCKERHUB_IMAGE = 'lsiodev/eden'
- PR_DOCKERHUB_IMAGE = 'lspipepr/eden'
- DIST_IMAGE = 'debian'
- MULTIARCH = 'true'
- MULTIARCH = 'false'
- CI = 'true'
- CI_WEB = 'true'
- CI_PORT = '3001'
Expand Down
4 changes: 3 additions & 1 deletion readme-vars.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ project_categories: "Games"
# supported architectures
available_architectures:
- {arch: "{{ arch_x86_64 }}", tag: "latest"}
- {arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
# development version
development_versions: false
# container parameters
Expand All @@ -35,6 +34,8 @@ app_setup_block: |
The application can be accessed at:

* https://yourhost:3001/

**This image only runs in Wayland mode and should be run with a GPU**
# init diagram
init_diagram: |
"eden:latest": {
Expand Down Expand Up @@ -107,5 +108,6 @@ init_diagram: |
"eden:latest" <- Base Images
# changelog
changelogs:
- {date: "05.05.26:", desc: "Rebase to Debian Trixie, build Eden from source, remove arm64 tag."}
- {date: "17.03.26:", desc: "Ingest releases from self hosted git."}
- {date: "18.02.26:", desc: "Initial Version."}
2 changes: 1 addition & 1 deletion root/defaults/menu_wayland.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
<openbox_menu xmlns="http://openbox.org/3.4/menu">
<menu id="root-menu" label="MENU">
<item label="foot" icon="/usr/share/icons/hicolor/48x48/apps/foot.png"><action name="Execute"><command>/usr/bin/foot</command></action></item>
<item label="Eden" icon="/usr/share/icons/hicolor/scalable/apps/dev.eden_emu.eden.svg"><action name="Execute"><command>foot -e /usr/bin/eden</command></action></item>
<item label="Eden" icon="/usr/share/selkies/www/icon.png"><action name="Execute"><command>foot -e /usr/bin/eden</command></action></item>
</menu>
</openbox_menu>
3 changes: 3 additions & 0 deletions root/defaults/startwm.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/bash

xterm -e sh -c 'echo "Your platform is not supported, ensure you have a CPU with AVX2 support"; sleep infinity'