Files

39 lines
2.0 KiB
Markdown

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