Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rebase to alpine 3.19 add option to disable IPFS #55

Merged
merged 1 commit into from
Dec 30, 2023
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
8 changes: 4 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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 ****" && \
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand Down
8 changes: 4 additions & 4 deletions Dockerfile.aarch64
Original file line number Diff line number Diff line change
Expand Up @@ -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 ****" && \
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:

Expand Down Expand Up @@ -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.
Expand Down
3 changes: 2 additions & 1 deletion readme-vars.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:

Expand Down Expand Up @@ -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."}
Expand Down
2 changes: 1 addition & 1 deletion root/etc/s6-overlay/s6-rc.d/init-emulatorjs-config/run
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 4 additions & 0 deletions root/etc/s6-overlay/s6-rc.d/svc-ipfs/run
Original file line number Diff line number Diff line change
@@ -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