Skip to content

MentalFS/docker-boinc-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

docker-boinc-client

A Docker image for the BOINC client, a volunteer computing program to donate CPU/GPU power for various scientific projects.

This image does not include the GUI client and should be used via boinccmd, boinctui (included) or remotely.

When the GUI RPC Port is routed, it is also possible to control the client with BOINC Manager or boinctui (only recommended for localhost).

Tags

Tag
release, latest Uses the official BOINC APT release repository
alpha Uses the official BOINC APT pre-release / alpha repository

Volumes

Path
/var/lib/boinc-client Data and settings for BOINC

Ports

Port
31416 GUI RPC port

Supported settings

Environment Variable Default
GUI_RPC_AUTH empty The password for GUI RPC, empty means no password
DEVICE_NAME DOCKER The device name that will show up on the project's webpages
HOST_VENUE empty Host venue type: none, home, school or work
MAX_NCPUS_PCT 100 Percentage of CPU cores to use, empty uses website preferences
CPU_USAGE_LIMIT 100 Load percentage to use, empty uses website preferences
SUSPEND_CPU_USAGE 0.0 Suspend when non-BOINC CPU usage is above (only useful with --pid=host
RAM_MAX_USED_PCT empty Percentage of RAM to use at max, empty uses website preferences
CPU_SCHEDULING_PERIOD_MINUTES empty Switch between tasks/projects every X minutes
DISK_INTERVAL empty Interval in seconds to save state to disk, empty uses website preferences
WORK_BUF_MIN_DAYS empty Store enough tasks to keep the computer busy for this long (in Days, decimal number)
WORK_BUF_ADDITIONAL_DAYS empty Store additional tasks above the minimum level (in Days, decimal number)
MILKYWAY_NCPUS empty Number of CPU cores per task to use in MilkyWay@home

Download

docker pull ghcr.io/mentalfs/boinc-client

Usage/examples

Starting

docker volume create boinc-data
docker run --name boinc \
  -e DEVICE_NAME="DOCKER" \
  -e GUI_RPC_AUTH="correct horse battery staple" \
  -e MAX_NCPUS_PCT=50 \
  -e TZ="Europe/Berlin" \
  -v boinc-data:/var/lib/boinc-client \
  --gpus all \
  --pull=always \
  -d ghcr.io/mentalfs/boinc-client

The container will have to be deleted and recreated for updates.

Starting with Docker Compose

Create a file docker-compose.yaml:

services:
  boinc:
    image: ghcr.io/mentalfs/boinc-client
    container_name: boinc
    environment:
      - DEVICE_NAME=DOCKER
      - GUI_RPC_AUTH="correct horse battery staple"
      - MAX_NCPUS_PCT=50
      - TZ=Europe/Berlin
    volumes:
      - boinc-data:/var/lib/boinc-client
    devices:
      - /dev/dri:/dev/dri

    deploy:
      resources:

        # This limits CPU usage through Docker, optional:
        limits:
          cpus: "4"

        # only needed for NVidia GPUs, remove otherwise:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu,compute,video,utility]

volumes:
  boinc-data:
    name: boinc-data
    external: true

Start or update with:

docker volume create boinc-data
docker compose up --pull=always -d

Using boinctui (easiest way)

docker exec -it boinc boinctui

It will also automatically start in Docker Desktop by clicking on the Exec tab.

Projects or account managers need to be added via the menu (by pressing F9 and navigating or clicking with the mouse).

Send command (more advanced)

More command info

docker exec boinc boinccmd --help

Notes

  • global_prefs_override.xml will be overwritten to use environment variables.
  • The option allow_remote_gui_rpc will be set to 1, allowing all hosts to connect to the GUI RPC.
  • GPUs are usable with --gpus, --privileged (not recommended) or --device /dev/dri:/dev/dri depending on GPU model.
  • Docker can restrict CPU load with --cpus, which is most likely preferable to using CPU_USAGE_LIMIT.
  • The above examples do work with WSL2 and NVidia GPU.
  • Port 31416 should not be publicly available, no matter whether GUI_RPC_AUTH is set.

About

A Docker image for the BOINC client

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors 3

  •  
  •  
  •