From bc63c15943ed034177a5077234a633b71f6c0dd2 Mon Sep 17 00:00:00 2001 From: thelamer Date: Fri, 29 Dec 2023 23:58:50 -0800 Subject: [PATCH] rebase to alpine 3.19 add option to disable IPFS --- Dockerfile | 8 ++++---- Dockerfile.aarch64 | 8 ++++---- README.md | 3 ++- readme-vars.yml | 3 ++- root/etc/s6-overlay/s6-rc.d/init-emulatorjs-config/run | 2 +- root/etc/s6-overlay/s6-rc.d/svc-ipfs/run | 4 ++++ 6 files changed, 17 insertions(+), 11 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8854e88..7f8a6c3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,7 +20,7 @@ RUN \ cd .. ; \ done -FROM ghcr.io/linuxserver/baseimage-alpine:3.18 as binbuilder +FROM ghcr.io/linuxserver/baseimage-alpine:3.19 as binbuilder RUN \ echo "**** install build packages ****" && \ @@ -54,14 +54,14 @@ RUN \ mkdir /build-out/usr/bin && \ git clone https://github.com/ipfs/fs-repo-migrations.git && \ cd fs-repo-migrations && \ - for BUILD in fs-repo-migrations fs-repo-12-to-13; do \ + for BUILD in fs-repo-migrations fs-repo-12-to-13 fs-repo-13-to-14 fs-repo-14-to-15; do \ cd ${BUILD} && \ go build && \ mv fs-repo-* /build-out/usr/bin/ && \ cd .. ; \ done -FROM ghcr.io/linuxserver/baseimage-alpine:3.18 as nodebuilder +FROM ghcr.io/linuxserver/baseimage-alpine:3.19 as nodebuilder ARG EMULATORJS_RELEASE @@ -112,7 +112,7 @@ RUN \ npm install # runtime stage -FROM ghcr.io/linuxserver/baseimage-alpine:3.18 +FROM ghcr.io/linuxserver/baseimage-alpine:3.19 # set version label ARG BUILD_DATE diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 61a1669..b227d61 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -22,7 +22,7 @@ RUN \ cd .. ; \ done -FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.18 as binbuilder +FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.19 as binbuilder RUN \ echo "**** install build packages ****" && \ @@ -58,14 +58,14 @@ RUN \ mkdir /build-out/usr/bin && \ git clone https://github.com/ipfs/fs-repo-migrations.git && \ cd fs-repo-migrations && \ - for BUILD in fs-repo-migrations fs-repo-9-to-10 fs-repo-10-to-11 fs-repo-11-to-12 fs-repo-12-to-13; do \ + for BUILD in fs-repo-migrations fs-repo-12-to-13 fs-repo-13-to-14 fs-repo-14-to-15; do \ cd ${BUILD} && \ go build && \ mv fs-repo-* /build-out/usr/bin/ && \ cd .. ; \ done -FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.18 as nodebuilder +FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.19 as nodebuilder ARG EMULATORJS_RELEASE @@ -116,7 +116,7 @@ RUN \ npm install # runtime stage -FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.18 +FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.19 # set version label ARG BUILD_DATE diff --git a/README.md b/README.md index 51cab0f..a02b24c 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ Mobile browsers will function, just keep in mind compatibility will be reduced e **We know about most of the oddities like crackling sound for some emulators, rendering issues, and games unreliably auto launching to fullscreen. In general full CD games on the Xbox web browser do not seem to work due to their size if you have a chd/pbp less than 450 megs it will run. Edge on Xbox has some kind of undocumented ram limitation of about a gigabyte. Until all emulators are transitioned to libretro cores the oddities of using self hosted EmulatorJS will not be something that can or should be solved using hacky workarounds interacting with obfuscated code. Just keep in mind these are full blown machine emulators running in Javascript in a browser, do not expect bare metal performance.** -**This container (outside of the profile functionality) only generates a static set of files that can be hosted on any web provider even object storage. Eveyrthing runs in the clients browser and there are no dependencies on this container. To extract/copy this website it is at the path `/emulatorjs/frontend` inside the container. If you are happy with the catalouge you have created and no longer want to run stuff like the IPFS backend or want to upload these files to some other hosting provider you can simply copy the contents of that directory and kill off this container.** +**This container (outside of the profile functionality) only generates a static set of files that can be hosted on any web provider even object storage. Eveyrthing runs in the clients browser and there are no dependencies on this container. To extract/copy this website it is at the path `/emulatorjs/frontend` inside the container. If you are happy with the catalouge you have created and no longer want to run stuff like the IPFS backend or want to upload these files to some other hosting provider you can simply copy the contents of that directory and kill off this container. This container can also be started without IPFS once you collection is set using the environment variable `-e DISABLE_IPFS=true`.** Mounting in existing rom directories can be achieved by pointing to the default folder structure, IE lets say you would like to mount your NES library: @@ -350,6 +350,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **29.12.23:** - Rebase to Alpine 3.19, add option to launch without IPFS. * **09.08.23:** - Rebase to Alpine 3.18, migrate to s6v3. * **06.07.23:** - Deprecate armhf. As announced [here](https://www.linuxserver.io/blog/a-farewell-to-arm-hf) * **24.11.22:** - Update IPFS links for chdman. diff --git a/readme-vars.yml b/readme-vars.yml index 618b9d1..fc72efd 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -49,7 +49,7 @@ app_setup_block: | **We know about most of the oddities like crackling sound for some emulators, rendering issues, and games unreliably auto launching to fullscreen. In general full CD games on the Xbox web browser do not seem to work due to their size if you have a chd/pbp less than 450 megs it will run. Edge on Xbox has some kind of undocumented ram limitation of about a gigabyte. Until all emulators are transitioned to libretro cores the oddities of using self hosted EmulatorJS will not be something that can or should be solved using hacky workarounds interacting with obfuscated code. Just keep in mind these are full blown machine emulators running in Javascript in a browser, do not expect bare metal performance.** - **This container (outside of the profile functionality) only generates a static set of files that can be hosted on any web provider even object storage. Eveyrthing runs in the clients browser and there are no dependencies on this container. To extract/copy this website it is at the path `/emulatorjs/frontend` inside the container. If you are happy with the catalouge you have created and no longer want to run stuff like the IPFS backend or want to upload these files to some other hosting provider you can simply copy the contents of that directory and kill off this container.** + **This container (outside of the profile functionality) only generates a static set of files that can be hosted on any web provider even object storage. Eveyrthing runs in the clients browser and there are no dependencies on this container. To extract/copy this website it is at the path `/emulatorjs/frontend` inside the container. If you are happy with the catalouge you have created and no longer want to run stuff like the IPFS backend or want to upload these files to some other hosting provider you can simply copy the contents of that directory and kill off this container. This container can also be started without IPFS once you collection is set using the environment variable `-e DISABLE_IPFS=true`.** Mounting in existing rom directories can be achieved by pointing to the default folder structure, IE lets say you would like to mount your NES library: @@ -88,6 +88,7 @@ app_setup_block: | * ws # changelog changelogs: + - {date: "29.12.23:", desc: "Rebase to Alpine 3.19, add option to launch without IPFS."} - {date: "09.08.23:", desc: "Rebase to Alpine 3.18, migrate to s6v3."} - {date: "06.07.23:", desc: "Deprecate armhf. As announced [here](https://www.linuxserver.io/blog/a-farewell-to-arm-hf)"} - {date: "24.11.22:", desc: "Update IPFS links for chdman."} diff --git a/root/etc/s6-overlay/s6-rc.d/init-emulatorjs-config/run b/root/etc/s6-overlay/s6-rc.d/init-emulatorjs-config/run index 0ee54d5..ca13931 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-emulatorjs-config/run +++ b/root/etc/s6-overlay/s6-rc.d/init-emulatorjs-config/run @@ -8,7 +8,7 @@ lsiown abc:abc \ # ipfs migrate check on startup if [[ -d "/data/.ipfs" ]]; then echo "[ipfs-upgrade] Checking if fs-repo needs to be upgraded (this may take some time)" - HOME=/data s6-setuidgid abc /usr/bin/fs-repo-migrations -y -to 13 + HOME=/data s6-setuidgid abc /usr/bin/fs-repo-migrations -y -to 15 fi # ipfs config diff --git a/root/etc/s6-overlay/s6-rc.d/svc-ipfs/run b/root/etc/s6-overlay/s6-rc.d/svc-ipfs/run index 77e20f1..366af25 100755 --- a/root/etc/s6-overlay/s6-rc.d/svc-ipfs/run +++ b/root/etc/s6-overlay/s6-rc.d/svc-ipfs/run @@ -1,6 +1,10 @@ #!/usr/bin/with-contenv bash # shellcheck shell=bash +if [ ! -z ${DISABLE_IPFS+x} ]; then + sleep infinity +fi + HOME=/data exec \ s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 4001" \ s6-setuidgid abc ipfs daemon