Build Flood v4.7.0 in client-only mode with manual release selection

This commit is contained in:
k2patel committed 2026-09-30 21:08:52 -04:00
1 parent 8f10b48700
commit 1c113788ed
3 files changed
+19 -24

No files matched your search

+3 -4
View File
@@ -1,14 +1,12 @@
name: Build and Push Custom Flood Image name: Build and Push Custom Flood Image
on: on:
push:
branches: [main]
workflow_dispatch: workflow_dispatch:
inputs: inputs:
flood_version: flood_version:
description: 'jesec/flood release tag' description: 'jesec/flood release tag'
required: true required: true
default: 'v4.16.2' default: 'v4.7.0'
type: string type: string
jobs: jobs:
@@ -26,8 +24,9 @@ jobs:
- name: Fetch Flood release - name: Fetch Flood release
env: env:
FLOOD_VERSION: ${{ github.event.inputs.flood_version || 'v4.16.2' }} FLOOD_VERSION: ${{ github.event.inputs.flood_version }}
run: | run: |
test -n "$FLOOD_VERSION" || { echo "flood_version is required" >&2; exit 1; }
git check-ref-format "refs/tags/$FLOOD_VERSION" git check-ref-format "refs/tags/$FLOOD_VERSION"
git init flood-repo git init flood-repo
git -C flood-repo fetch --depth=1 https://github.com/jesec/flood.git "refs/tags/$FLOOD_VERSION" git -C flood-repo fetch --depth=1 https://github.com/jesec/flood.git "refs/tags/$FLOOD_VERSION"
+7 -17
View File
@@ -1,14 +1,5 @@
# WARNING: # Flood UI only: connects to an external torrent service. No bundled rTorrent.
# # Build from a clean upstream release checkout using the Gitea workflow.
# For development and debugging only. Use Dockerfile.release for production.
#
# This image bundles rTorrent for easier debugging. It is not started by default.
# Use --rtorrent argument if you wish to start the bundled rTorrent.
# For production, use rtorrent-flood instead.
#
# This Dockerfile uses contents of current folder which might contain
# secrets, uncommitted changes or other sensitive information. DO NOT
# publish the result image unless it was composed in a clean environment.
ARG BUILDPLATFORM=amd64 ARG BUILDPLATFORM=amd64
ARG NODE_IMAGE=docker.io/node:24-alpine3.24 ARG NODE_IMAGE=docker.io/node:24-alpine3.24
@@ -20,13 +11,12 @@ WORKDIR /usr/src/app/
# Copy project files # Copy project files
COPY . ./ COPY . ./
RUN npm i -g corepack && corepack enable && corepack install # Flood v4.7.0 uses package-lock.json, not pnpm.
RUN npm ci --legacy-peer-deps --omit=optional
# Fetch dependencies from npm # The v4.7 Webpack toolchain needs legacy hashing with modern Node/OpenSSL.
RUN pnpm install --frozen-lockfile # This option applies only to asset compilation, not the running server.
RUN NODE_OPTIONS=--openssl-legacy-provider npm run build-assets
# Build assets
RUN npm run build
# Now get the clean Node.js image # Now get the clean Node.js image
FROM ${NODE_IMAGE} as flood FROM ${NODE_IMAGE} as flood
+9 -3
View File
@@ -7,9 +7,15 @@ Report issues at https://github.com/k2patel/docker-flood-client/issues.
For contributions, open an issue with a link to your branch or patch on another For contributions, open an issue with a link to your branch or patch on another
Git provider. Changes are reviewed and applied by the maintainer on Gitea. Git provider. Changes are reviewed and applied by the maintainer on Gitea.
Gitea Actions publishes `docker.io/k2patel/floodui:latest` on pushes to `main` Gitea Actions publishes `docker.io/k2patel/floodui:latest` only on manual runs.
and manual runs. The default Flood release is `v4.16.2`; manual runs can select Select `main` in Actions → Build and Push Custom Flood Image → Run workflow
another release with `flood_version`. Builds use the custom `Dockerfile.client`. and set the required `flood_version` release tag. The configured release is
`v4.7.0`. Repository pushes do not trigger builds.
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
or start rTorrent. The Dockerfile uses the v4.7 npm lockfile and builds client
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
access to `k2patel/floodui`. Builds run remotely on the Kubernetes runner for access to `k2patel/floodui`. Builds run remotely on the Kubernetes runner for