# 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.