BOINC: donating compute

Ever since, but especially since my RAM and CPU upgrade, my server sits idle 💤 pretty much all the time. So I thought: can’t I donate my compute resources? For a long time, especially during COVID 😷, I actually did the same with my iPhone 📱. The Vodafone Foundation has brought out the DreamLab application. It essentially computes exiting stuff like COVID research 🧪 on your smartphones (yes! It is a computer) CPU and GPU (and NNU?).

So I sought to find a similar thing, but Docker 🐳 based and for x86 architectures. And I found it in BOINC 🎉. Setting it up through docker-compose wasn’t 100% trivial, especially because of the ports and rather poor documentation on that end. And probably because I wanted some parts of this to go through my reverse proxy. But eventually, I got it to work. The Docker 🐳 stack is published in my dockerfiles repo here. The stack is based on the official boinc client Docker 🐳 image.

And now: I have 100% CPU utilization 🥵😅🎉: cpu-utilization Right now, the only workload I could find was from the project World Community Grid, an early initiative by IBM Corporate Social Responsibility. I would also like to contribute to (i.e. compute for 😏) Rosetta@home, but there were no CPU tasks ready at the time of setup.

Oh, and this also means that my power consumption went from ~120 W to 240W ⚡🔋. So at 26 ct/kWh (yes, Ökostrom) that is roughly 250 💶 per year 🙈.

On ports

Like I said earlier, configuring the ports wasn’t trivial. I first started out by simply exposing the default BOINC port 31416 through the reverse proxy Traefik at https://boinc.patz.app. However, that doesn’t work and this isn’t how it is intended. It seems, that the traffic shall not be encrypted and thus not be resolved by the reverse proxy. I now opened the ports on my router and pipe them to the container. You can see this in the configuration here:

Update: I closed the ports on the router again, because that’s really not required. And every unnecessarily open port is an unnecessary security risk 🤷‍♂️.

Written on January 31, 2023