From 77488fa34abd3ddbed77ac1974cd72514a8c46fb Mon Sep 17 00:00:00 2001 From: thespad Date: Thu, 22 Oct 2026 20:00:04 +0000 Subject: [PATCH 1/7] Add draco and mesa-egl, bump f3d --- Dockerfile | 6 +++++- Dockerfile.aarch64 | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3114d27..20007ed 100644 --- a/Dockerfile +++ b/Dockerfile @@ -36,6 +36,7 @@ RUN \ libarchive \ libucontext \ mariadb-connector-c \ + mesa-egl \ opencascade \ openexr-libopenexr \ pciutils \ @@ -52,10 +53,12 @@ RUN \ npm \ postgresql-dev \ yaml-dev && \ + apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \ + draco && \ echo "**** install manyfold F3D package ****" && \ curl -s -o \ /tmp/f3d.apk -L \ - "https://github.com/manyfold3d/f3d-alpine/releases/download/v3.5.0-r0-1/f3d-3.5.0-r0.x86_64.apk" && \ + "https://github.com/manyfold3d/f3d-alpine/releases/download/v4.0.0-r0-1/f3d-4.0.0-r0.x86_64.apk" && \ apk add --no-cache --allow-untrusted /tmp/f3d.apk && \ rm /tmp/f3d.apk && \ echo "**** install manyfold ****" && \ @@ -84,6 +87,7 @@ RUN \ DATABASE_URL="nulldb://user:pass@localhost/db" \ SECRET_KEY_BASE="placeholder" \ APP_VERSION=${MANYFOLD_VERSION} \ + RAILS_ASSETS_PRECOMPILE=1 \ bundle exec rake assets:precompile && \ rm db/schema.rb && \ printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 6ff2de9..75b2e12 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -36,6 +36,7 @@ RUN \ libarchive \ libucontext \ mariadb-connector-c \ + mesa-egl \ opencascade \ openexr-libopenexr \ pciutils \ @@ -52,10 +53,12 @@ RUN \ npm \ postgresql-dev \ yaml-dev && \ + apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \ + draco && \ echo "**** install manyfold F3D package ****" && \ curl -s -o \ /tmp/f3d.apk -L \ - "https://github.com/manyfold3d/f3d-alpine/releases/download/v3.5.0-r0-1/f3d-3.5.0-r0.aarch64.apk" && \ + "https://github.com/manyfold3d/f3d-alpine/releases/download/v4.0.0-r0-1/f3d-4.0.0-r0.x86_64.apk" && \ apk add --no-cache --allow-untrusted /tmp/f3d.apk && \ rm /tmp/f3d.apk && \ echo "**** install manyfold ****" && \ @@ -84,6 +87,7 @@ RUN \ DATABASE_URL="nulldb://user:pass@localhost/db" \ SECRET_KEY_BASE="placeholder" \ APP_VERSION=${MANYFOLD_VERSION} \ + RAILS_ASSETS_PRECOMPILE=1 \ bundle exec rake assets:precompile && \ rm db/schema.rb && \ printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \ From 18986ae45bb5fc6066e61297dee3879daf0a93a5 Mon Sep 17 00:00:00 2001 From: thespad Date: Thu, 22 Oct 2026 20:13:08 +0000 Subject: [PATCH 2/7] Install the correct package on arm --- Dockerfile.aarch64 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 75b2e12..0bc0858 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -58,7 +58,7 @@ RUN \ echo "**** install manyfold F3D package ****" && \ curl -s -o \ /tmp/f3d.apk -L \ - "https://github.com/manyfold3d/f3d-alpine/releases/download/v4.0.0-r0-1/f3d-4.0.0-r0.x86_64.apk" && \ + "https://github.com/manyfold3d/f3d-alpine/releases/download/v4.0.0-r0-1/f3d-4.0.0-r0.aarch64.apk" && \ apk add --no-cache --allow-untrusted /tmp/f3d.apk && \ rm /tmp/f3d.apk && \ echo "**** install manyfold ****" && \ From 4fa51c9bcf46778ff14a8703438222477c917042 Mon Sep 17 00:00:00 2001 From: thespad Date: Thu, 22 Oct 2026 20:39:44 +0000 Subject: [PATCH 3/7] Run db init at service start --- root/etc/s6-overlay/s6-rc.d/init-manyfold-config/run | 5 ----- root/etc/s6-overlay/s6-rc.d/svc-manyfold/run | 5 +++++ 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/root/etc/s6-overlay/s6-rc.d/init-manyfold-config/run b/root/etc/s6-overlay/s6-rc.d/init-manyfold-config/run index c2aa404..20232a6 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-manyfold-config/run +++ b/root/etc/s6-overlay/s6-rc.d/init-manyfold-config/run @@ -77,8 +77,3 @@ else printf "sqlite3:/config/manyfold.sqlite3" > /run/s6/container_environment/DATABASE_URL echo "**** Missing or invalid DATABASE_URL, defaulting to sqlite. ****" fi - -cd /app/www/ || exit 1 - -echo "**** Running Manyfold database init. ****" -s6-setuidgid abc bundle exec rails db:prepare:with_data diff --git a/root/etc/s6-overlay/s6-rc.d/svc-manyfold/run b/root/etc/s6-overlay/s6-rc.d/svc-manyfold/run index c3dbf91..dc46e20 100755 --- a/root/etc/s6-overlay/s6-rc.d/svc-manyfold/run +++ b/root/etc/s6-overlay/s6-rc.d/svc-manyfold/run @@ -1,6 +1,11 @@ #!/usr/bin/with-contenv bash # shellcheck shell=bash +cd /app/www/ || exit 1 + +echo "**** Running Manyfold database init. ****" +s6-setuidgid abc bundle exec rails db:prepare:with_data + exec \ s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 3214" \ cd /app/www s6-setuidgid abc foreman start From 147ebc4870e4986641033e24108acb9e4a23946c Mon Sep 17 00:00:00 2001 From: thespad Date: Thu, 22 Oct 2026 21:15:32 +0000 Subject: [PATCH 4/7] Stupid s6-notifyoncheck --- root/etc/s6-overlay/s6-rc.d/svc-manyfold/run | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/root/etc/s6-overlay/s6-rc.d/svc-manyfold/run b/root/etc/s6-overlay/s6-rc.d/svc-manyfold/run index dc46e20..afb6492 100755 --- a/root/etc/s6-overlay/s6-rc.d/svc-manyfold/run +++ b/root/etc/s6-overlay/s6-rc.d/svc-manyfold/run @@ -1,11 +1,13 @@ #!/usr/bin/with-contenv bash # shellcheck shell=bash -cd /app/www/ || exit 1 +pushd /app/www/ || exit 1 echo "**** Running Manyfold database init. ****" s6-setuidgid abc bundle exec rails db:prepare:with_data +popd || exit 1 + exec \ s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 3214" \ cd /app/www s6-setuidgid abc foreman start From e566c30471847d56eb0f47615d9af61516114682 Mon Sep 17 00:00:00 2001 From: thespad Date: Thu, 22 Oct 2026 21:37:57 +0000 Subject: [PATCH 5/7] Install f3d from Alpine edge repo --- Dockerfile | 9 ++------- Dockerfile.aarch64 | 9 ++------- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/Dockerfile b/Dockerfile index 20007ed..f2a2f8f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -54,13 +54,8 @@ RUN \ postgresql-dev \ yaml-dev && \ apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \ - draco && \ - echo "**** install manyfold F3D package ****" && \ - curl -s -o \ - /tmp/f3d.apk -L \ - "https://github.com/manyfold3d/f3d-alpine/releases/download/v4.0.0-r0-1/f3d-4.0.0-r0.x86_64.apk" && \ - apk add --no-cache --allow-untrusted /tmp/f3d.apk && \ - rm /tmp/f3d.apk && \ + draco \ + f3d && \ echo "**** install manyfold ****" && \ mkdir -p /app/www && \ if [ -z ${MANYFOLD_VERSION+x} ]; then \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 0bc0858..08c2b51 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -54,13 +54,8 @@ RUN \ postgresql-dev \ yaml-dev && \ apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \ - draco && \ - echo "**** install manyfold F3D package ****" && \ - curl -s -o \ - /tmp/f3d.apk -L \ - "https://github.com/manyfold3d/f3d-alpine/releases/download/v4.0.0-r0-1/f3d-4.0.0-r0.aarch64.apk" && \ - apk add --no-cache --allow-untrusted /tmp/f3d.apk && \ - rm /tmp/f3d.apk && \ + draco \ + f3d && \ echo "**** install manyfold ****" && \ mkdir -p /app/www && \ if [ -z ${MANYFOLD_VERSION+x} ]; then \ From 80d7e248cb8fedc8ba0900600cc06819e8c27443 Mon Sep 17 00:00:00 2001 From: thespad Date: Sun, 15 Nov 2026 11:49:37 +0000 Subject: [PATCH 6/7] Don't run CI tests, too reliant on redis race conditions --- Dockerfile | 2 +- Dockerfile.aarch64 | 2 +- Jenkinsfile | 6 +++--- README.md | 1 - jenkins-vars.yml | 6 +++--- root/etc/s6-overlay/s6-rc.d/init-manyfold-config/run | 5 +++++ root/etc/s6-overlay/s6-rc.d/svc-manyfold/run | 7 ------- 7 files changed, 13 insertions(+), 16 deletions(-) diff --git a/Dockerfile b/Dockerfile index f2a2f8f..65f7fde 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,7 +18,7 @@ ENV RAILS_ENV="production" \ APP_VERSION=${MANYFOLD_VERSION} \ HOME=/config -COPY --from=ruby:3.4.9-alpine3.24 /usr/local /usr/local/ +COPY --from=ruby:3.4.12-alpine3.24 /usr/local /usr/local/ RUN \ apk add --no-cache \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 08c2b51..1820d3c 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -18,7 +18,7 @@ ENV RAILS_ENV="production" \ APP_VERSION=${MANYFOLD_VERSION} \ HOME=/config -COPY --from=ruby:3.4.9-alpine3.24 /usr/local /usr/local/ +COPY --from=ruby:3.4.12-alpine3.24 /usr/local /usr/local/ RUN \ apk add --no-cache \ diff --git a/Jenkinsfile b/Jenkinsfile index 2f883b3..6bd784f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -31,12 +31,12 @@ pipeline { PR_DOCKERHUB_IMAGE = 'lspipepr/manyfold' DIST_IMAGE = 'alpine' MULTIARCH='true' - CI='true' - CI_WEB='true' + CI='false' + CI_WEB='false' CI_PORT='3214' CI_SSL='false' CI_DELAY='240' - CI_DOCKERENV='SECRET_KEY_BASE=placeholder|DATABASE_URL=sqlite3:/config/manyfold.sqlite3|DOCKER_MODS=lscr.io/linuxserver/mods:universal-redis' + CI_DOCKERENV='' CI_AUTH='' CI_WEBPATH='' } diff --git a/README.md b/README.md index 5d7c521..c02be73 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,6 @@ Find us at: [![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/manyfold.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/manyfold) [![Docker Stars](https://img.shields.io/docker/stars/linuxserver/manyfold.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/manyfold) [![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-manyfold%2Fjob%2Fmain%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-manyfold/job/main/) -[![LSIO CI](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=CI&query=CI&url=https%3A%2F%2Fci-tests.linuxserver.io%2Flinuxserver%2Fmanyfold%2Flatest%2Fci-status.yml)](https://ci-tests.linuxserver.io/linuxserver/manyfold/latest/index.html) [Manyfold](https://github.com/manyfold3d/manyfold/) is an open source, self-hosted web application for managing a collection of 3D models, particularly focused on 3D printing. diff --git a/jenkins-vars.yml b/jenkins-vars.yml index ad8f3d0..b9fc25b 100644 --- a/jenkins-vars.yml +++ b/jenkins-vars.yml @@ -19,11 +19,11 @@ repo_vars: - PR_DOCKERHUB_IMAGE = 'lspipepr/manyfold' - DIST_IMAGE = 'alpine' - MULTIARCH='true' - - CI='true' - - CI_WEB='true' + - CI='false' + - CI_WEB='false' - CI_PORT='3214' - CI_SSL='false' - CI_DELAY='240' - - CI_DOCKERENV='SECRET_KEY_BASE=placeholder|DATABASE_URL=sqlite3:/config/manyfold.sqlite3|DOCKER_MODS=lscr.io/linuxserver/mods:universal-redis' + - CI_DOCKERENV='' - CI_AUTH='' - CI_WEBPATH='' diff --git a/root/etc/s6-overlay/s6-rc.d/init-manyfold-config/run b/root/etc/s6-overlay/s6-rc.d/init-manyfold-config/run index 20232a6..c2aa404 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-manyfold-config/run +++ b/root/etc/s6-overlay/s6-rc.d/init-manyfold-config/run @@ -77,3 +77,8 @@ else printf "sqlite3:/config/manyfold.sqlite3" > /run/s6/container_environment/DATABASE_URL echo "**** Missing or invalid DATABASE_URL, defaulting to sqlite. ****" fi + +cd /app/www/ || exit 1 + +echo "**** Running Manyfold database init. ****" +s6-setuidgid abc bundle exec rails db:prepare:with_data diff --git a/root/etc/s6-overlay/s6-rc.d/svc-manyfold/run b/root/etc/s6-overlay/s6-rc.d/svc-manyfold/run index afb6492..c3dbf91 100755 --- a/root/etc/s6-overlay/s6-rc.d/svc-manyfold/run +++ b/root/etc/s6-overlay/s6-rc.d/svc-manyfold/run @@ -1,13 +1,6 @@ #!/usr/bin/with-contenv bash # shellcheck shell=bash -pushd /app/www/ || exit 1 - -echo "**** Running Manyfold database init. ****" -s6-setuidgid abc bundle exec rails db:prepare:with_data - -popd || exit 1 - exec \ s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 3214" \ cd /app/www s6-setuidgid abc foreman start From 263e89fed483279d13640a9c9417ed7c89ce8362 Mon Sep 17 00:00:00 2001 From: thespad Date: Sun, 15 Nov 2026 12:10:01 +0000 Subject: [PATCH 7/7] draco is now in edge community repo --- Dockerfile | 3 ++- Dockerfile.aarch64 | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 65f7fde..efe738b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -53,8 +53,9 @@ RUN \ npm \ postgresql-dev \ yaml-dev && \ + apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community \ + draco && \ apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \ - draco \ f3d && \ echo "**** install manyfold ****" && \ mkdir -p /app/www && \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 1820d3c..a780aa5 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -53,8 +53,9 @@ RUN \ npm \ postgresql-dev \ yaml-dev && \ + apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community \ + draco && \ apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \ - draco \ f3d && \ echo "**** install manyfold ****" && \ mkdir -p /app/www && \