Use Flood v4.16.2 with Node 24 and retain startup validation

This commit is contained in:
k2patel committed 2026-09-30 21:16:23 -04:00
1 parent de75459e97
commit cb32b760a5
3 files changed
+12 -13

No files matched your search

+1 -1
View File
@@ -6,7 +6,7 @@ on:
flood_version: flood_version:
description: 'jesec/flood release tag' description: 'jesec/flood release tag'
required: true required: true
default: 'v4.7.0' default: 'v4.16.2'
type: string type: string
jobs: jobs:
+6 -6
View File
@@ -2,7 +2,7 @@
# Build from a clean upstream release checkout using the Gitea workflow. # Build from a clean upstream release checkout using the Gitea workflow.
ARG BUILDPLATFORM=amd64 ARG BUILDPLATFORM=amd64
ARG NODE_IMAGE=docker.io/node:22-alpine3.24 ARG NODE_IMAGE=docker.io/node:24-alpine3.24
FROM --platform=$BUILDPLATFORM ${NODE_IMAGE} as nodebuild FROM --platform=$BUILDPLATFORM ${NODE_IMAGE} as nodebuild
@@ -11,12 +11,12 @@ WORKDIR /usr/src/app/
# Copy project files # Copy project files
COPY . ./ COPY . ./
# Flood v4.7.0 uses package-lock.json, not pnpm. # Use the package manager and lockfile declared by the upstream release.
RUN npm ci --legacy-peer-deps --omit=optional RUN npm install -g corepack && corepack enable && corepack install
RUN pnpm install --frozen-lockfile
# The v4.7 Webpack toolchain needs legacy hashing with modern Node/OpenSSL. # Build Flood server and client assets.
# This option applies only to asset compilation, not the running server. RUN npm run build
RUN NODE_OPTIONS=--openssl-legacy-provider npm run build-assets
# Now get the clean Node.js image # Now get the clean Node.js image
FROM ${NODE_IMAGE} as flood FROM ${NODE_IMAGE} as flood
+5 -6
View File
@@ -10,11 +10,11 @@ Git provider. Changes are reviewed and applied by the maintainer on Gitea.
Gitea Actions publishes `docker.io/k2patel/floodui:latest` only on manual runs. Gitea Actions publishes `docker.io/k2patel/floodui:latest` only on manual runs.
Select `main` in Actions → Build and Push Custom Flood Image → Run workflow Select `main` in Actions → Build and Push Custom Flood Image → Run workflow
and set the required `flood_version` release tag. The configured release is and set the required `flood_version` release tag. The configured release is
`v4.7.0`. Repository pushes do not trigger builds. `v4.16.2`. Repository pushes do not trigger builds.
This is a Flood-only image using the custom `Dockerfile.client`: it runs the This is a Flood-only image using the custom `Dockerfile.client`: it runs the
Flood web UI/API and connects to an external torrent service. It does not bundle Flood web UI/API and connects to an external torrent service. It does not bundle
or start rTorrent. The Dockerfile uses the v4.7 npm lockfile and builds client or start rTorrent. The Dockerfile uses the upstream pnpm lockfile and builds the server and client
assets; changing release families may require updating the build tooling. assets; changing release families may require updating the build tooling.
Set Actions secrets `DOCKER_USERNAME` and `DOCKER_TOKEN` with Docker Hub write Set Actions secrets `DOCKER_USERNAME` and `DOCKER_TOKEN` with Docker Hub write
@@ -24,9 +24,8 @@ runner image store, and the temporary builder and cache are removed afterward.
No image archives or build records are uploaded to Gitea, and no local container No image archives or build records are uploaded to Gitea, and no local container
builds are required. builds are required.
Base image: Node.js 22 on Alpine Linux 3.24 stable (`node:22-alpine3.24`), Base image: Node.js 24 on Alpine Linux 3.24 stable (`node:24-alpine3.24`),
including the latest patch updates in those release series. including the latest patch updates in those release series.
Flood 4.7 requires Node 22 because its legacy SPDY dependency uses an internal The image build starts the actual Flood server and requires HTTP 200 before
HTTP parser removed in Node 24. The image build starts the actual Flood server publishing; it does not start a torrent daemon.
and requires HTTP 200 before publishing; it does not start a torrent daemon.