docker-flood-client
Source: https://git.k2patel.in/k2patel/docker-flood-client
docker.io/k2patel/floodui:latest is the only maintained image variant and is
an Alpine/musl distroless runtime. The separate :distroless tag is retired.
It runs the Flood web UI/API and connects to an external torrent service;
it does not bundle or start rTorrent.
Build and publication
Gitea Actions publishes only on manual runs. Select main in Actions →
Build and Push Distroless Flood → Run workflow and set the required
flood_version release tag (default v4.16.2). Pushes do not trigger builds.
The upstream pnpm lockfile builds the server and UI; switching release families
may require changes to the build tooling.
The workflow uses Dockerfile.client, Node 24.18.1 on Alpine 3.24, and a scratch
final image. It includes Node, the bundled server/UI, mediainfo, GNU df, their
musl libraries, CA certificates and timezone data. There is no shell, npm/pnpm,
package manager, source tree, node_modules or compiler in the runtime.
Node starts directly with --host=0.0.0.0 --rundir=/server/.
CI starts Flood in the stripped filesystem and requires HTTP 200, working
mediainfo/df, and absence of shell/package-manager binaries before publication.
Builds use the Kubernetes runner for linux/amd64, pushing directly to Docker
Hub; temporary builders and caches are removed afterward. Configure Actions
secrets DOCKER_USERNAME and DOCKER_TOKEN with write access to k2patel/floodui.
Updating an existing deployment
Use k2patel/floodui:latest, pull, and recreate the service. Keep existing
connection settings and mounts. Root UID, port 3000 and /server/db are unchanged.
The default Compose file in docker-rtorrent uses distroless :latest for both
services and supplies rTorrent's native health check; no overlay is needed.
Public access is read-only; account registration is disabled. Maintainer-applied contributions can be based on a branch or patch against the current Gitea source.