/boinc-manager

.NET Core cross-platform implementation of BOINC Manager

Primary LanguageC#GNU General Public License v3.0GPL-3.0

boinc-manager

.NET Core cross-platform implementation of BOINC Manager

BoincManagerWeb (Docker)

Docker Pulls Docker Stars Docker Cloud Build Status

Supported Architectures and Tags

x86-64

Tag Info
debian Debian based BOINC Manager.
latest, alpine Alpine based BOINC Manager.

ARMv7 32-bit (you have to build it for yourself)

Tag Info
arm32v7 Debian based BOINC Manager.

ARMv8 64-bit (you have to build it for yourself)

Tag Info
arm64v8 Debian based BOINC Manager.

Usage

The following command runs the BoincManagerWeb Docker container:

docker run -d \
  --name boinc-manager-web \
  -p "8000:80" \
  -v /opt/appdata/boinc-manager-web:/app/BoincManager \
  adamradocz/boinc-manager-web

Docker Compose

You can create the following docker-compose.yml file and from within the same directory run the Manager with docker-compose up -d to avoid the longer command from above.

version: "2"
services:

  boinc-manager-web:
    image: adamradocz/boinc-manager-web
    container_name: boinc-manager-web
    restart: always
    ports:
      - "8000:80"
    volumes:
      - /opt/appdata/boinc-manager-web:/app/BoincManager

You can run Boinc Client and Manager together with the following docker-compose.yml file. For more info about the Boinc Client Docker image check out its official page

version: "2"
services:

  boinc:
    image: boinc/client
    container_name: boinc
    restart: always
    network_mode: host
    pid: host
    volumes:
      - /opt/appdata/boinc:/var/lib/boinc
    environment:
      - BOINC_GUI_RPC_PASSWORD=123
      - BOINC_CMD_LINE_OPTIONS=--allow_remote_gui_rpc

  boinc-manager-web:
    image: adamradocz/boinc-manager-web
    container_name: boinc-manager-web
    restart: always
    ports:
      - "8000:80"
    volumes:
     - /opt/appdata/boinc-manager-web:/app/BoincManager

Application Setup

Access the webui at http://your-ip:8000

More Info

  • How to build it yourself: docker build -t boinc-manager-web .
  • Shell access whilst the container is running: docker exec -it boinc-manager-web /bin/bash or docker exec -it boinc-manager-web /bin/sh
  • Monitor the logs of the container in realtime: docker logs -f boinc-manager-web

Development

Development requirements

Project Structure

Project Info
BoincManager .NET Standard Standard. This is the Core project, contains all of the Common code, Business logic, Models, DbContext, Interfaces.
BoincManagerMobile Xamarin Core (.NET Standard Library) project. Contains the re-usable code in one place, to be shared across the mobile platforms.
BoincManagerMobile.Android Xamarin Android-specific application project. Consume the re-usable code with as little coupling as possible. Platform-specific features are added at this level, built on components exposed in the Core project.
BoincManagerMobile.iOS Xamarin iOS-specific application project. Consume the re-usable code with as little coupling as possible. Platform-specific features are added at this level, built on components exposed in the Core project.
BoincManagerWeb ASP.NET Core implementation of the Boinc Manager.
BoincManagerWindows .NET Core WPF implementation of the Boinc Manager for Windows.
BoincRpc Boinc RPC .NET Standard Library. The BoincManager uses it for making connection with the BOINC Client.

BoincManagerWeb Development

How to add HTTPS Certificate

Info about Hosting ASP.NET Core Images with Docker over HTTPS

Environment variables have to be set:

  • ASPNETCORE_URLS
  • ASPNETCORE_Kestrel__Certificates__Default__Path
  • ASPNETCORE_Kestrel__Certificates__Default__Password
  • ASPNETCORE_HTTPS_PORT (Optional)

Example:

  boinc-manager-web:
    image: adamrdocz/boinc-manager-web
    container_name: boinc-manager-web
    restart: always
    environment:
      - ASPNETCORE_URLS=https://+:443;http://+:80
      - ASPNETCORE_Kestrel__Certificates__Default__Path=/https/privkey.pfx
      - ASPNETCORE_Kestrel__Certificates__Default__Password=password
    ports:
      - "8000:80"
      - "8001:443"
    volumes:
      - /opt/appdata/boinc-manager-web:/app/BoincManager
      - /privkeylocation:/https