Skip to content

FoldingAtHome/containers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Official Folding@home Containers

The official Folding@home containers are designed to be simple and run in any container environment - desktop, laptop, Kubernetes, Helm, Docker Compose, OpenShift, Cloud...

Containers track stable versions (2 weeks with no found bugs) of the Folding@home Client. They will run on any Linux distribution, and are based on LTS version of Ubuntu, OpenCL, and CUDA libraries. They contain enough utilities to exec in and be able to debug any problems.

Containers

Deployments

This repo will also contain Helm templates and other deployment scripts/tools for a variety of environments.

Folding@home Container Design Rules

  • Containers will mount all read-write state, including config.xml which also has client state, into /fah/.
  • Containerized clients will output to stdout/sterr for container logs.
  • Containers are designed to be monitored via logs, and controlled with files.
  • No example configurations will expose ports, and that functionality will be configured off in examples. Folding@home was built to run on desktops/LANs, and currently should not be exposed to the internet.

Operating Containers

Each of these is explained in the container README, but they are included here for clarity. RFC 2119 meanings.

  • MUST mount read-writable persistent storage to /fah of the running container. Running containers MUST NOT share the same mounted directory, but directories SHOULD be reused to avoid lost Work Units.
  • MUST create and preload a tuned config.xml in each persistent storage directory before running the container for the first time.
  • MUST run the container as a uid:gid, specified with with --user or equivalent, so that the running container has read-write permissions to the persistent storage in /fah.
  • SHOULD NOT run containers as root.
  • SHOULD NOT expose ports to internet without firewall rules, encryption, and strong passwords.

Tags

The Folding@home client versioning is mostly SemVer, but depends on OpenMM, CUDA, and other dependencies. Calendar Versioning (CalVer), is used starting with 21.11.0 following the YY.0M.MICRO format:

  • YY.0M.MICRO - follows month of release.
  • YY.0M.MICRO-rc... - test builds of the containers, stable clients.
  • latest - please never use latest in production, specify a version. Points at the latest released container.

Folding@home Websites