56 lines
2.9 KiB
Markdown
56 lines
2.9 KiB
Markdown
# docker-flood-client
|
|
|
|
Flood client image. Source: https://git.k2patel.in/k2patel/docker-flood-client
|
|
|
|
Public access is read-only; account registration on this server is disabled.
|
|
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
|
|
Git provider. Changes are reviewed and applied by the maintainer on Gitea.
|
|
|
|
Gitea Actions publishes `docker.io/k2patel/floodui:latest` only on manual runs.
|
|
Select `main` in Actions → Build and Push Custom Flood Image → Run workflow
|
|
and set the required `flood_version` release tag. The configured release is
|
|
`v4.16.2`. 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 upstream pnpm lockfile and builds the server and client
|
|
assets; changing release families may require updating the build tooling.
|
|
|
|
Set Actions secrets `DOCKER_USERNAME` and `DOCKER_TOKEN` with Docker Hub write
|
|
access to `k2patel/floodui`. Builds run remotely on the Kubernetes runner for
|
|
`linux/amd64`, pushing directly to Docker Hub. Images are not loaded into the
|
|
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
|
|
builds are required.
|
|
|
|
Base image: Node.js 24.18.1 on Alpine Linux 3.24 stable (`node:24.18.1-alpine3.24`),
|
|
with the Alpine stable series explicitly selected.
|
|
|
|
The image build starts the actual Flood server and requires HTTP 200 before
|
|
publishing; it does not start a torrent daemon.
|
|
|
|
The entrypoint uses `npm run start`, matching upstream v4.16.2, while retaining
|
|
`--host=0.0.0.0` and `--rundir=/server/`. The upstream combined rTorrent stage
|
|
is deliberately excluded.
|
|
|
|
## Distroless variant
|
|
|
|
The manual **Build Distroless Flood** workflow publishes `k2patel/floodui:distroless`
|
|
for the selected Flood release (default `v4.16.2`). It does not change `latest`.
|
|
|
|
The Alpine 3.24-derived runtime contains Node 24.18.1, the bundled Flood server/UI,
|
|
mediainfo, GNU df, their musl libraries, CA certificates and timezone data. The
|
|
final image is built from scratch, with no shell, npm/pnpm, package manager,
|
|
node_modules, source tree or build tools. It starts Node directly and remains
|
|
separate from rTorrent. Root UID, port 3000, and `/server/db` stay compatible.
|
|
|
|
Before publication, CI starts Flood inside the exact stripped filesystem and
|
|
requires an HTTP 200 response; it also checks mediainfo and df can execute and
|
|
that shell/package-manager binaries are absent. All builds run remotely, and
|
|
the temporary builder/cache is removed afterward.
|
|
|
|
Change only the Compose image tag to `k2patel/floodui:distroless`; keep existing
|
|
mounts and connection settings. Revert to `latest` to roll back. A matching
|
|
rTorrent Compose overlay is provided in the docker-rtorrent repository.
|