Giter Site home page Giter Site logo

boinc-server-docker's Introduction

boinc-server-docker

boinc-server-docker is the easiest way to run your own BOINC server. You can run the server on a Linux machine, in which case the requirements are,

or you can run your server on Windows 7+ or Mac OSX, in which case you should use either,

or, if your Windows/Mac system is too old to support either of those,

There are no other dependencies, as everything else is packaged inside of Docker.

Documentation

For a full tutorial on setting up the server, see the project cookbook.

If you are somewhat familiar with Docker and BOINC, the following short description takes you through creating a server and running your own science application.

To check out this repository and get a test server fully up and running, simply run,

git clone https://github.com/marius311/boinc-server-docker.git
cd boinc-server-docker
docker-compose pull
docker-compose up -d

You can now visit the server webpage and connect clients to the server at http://127.0.0.1/boincserver.

Note: Make sure your user is added to the docker group, otherwise the docker-compose and docker commands in this guide need to be run with sudo.

Note: If using Docker Toolbox, replace the final command above with URL_BASE=$(docker-machine ip) docker-compose up -d. The server will be accessible at the IP returned by docker-machine ip rather than at 127.0.0.1.

The server comes pre-configured to immediately run Docker-based science applications. To do so, first create a Docker container which runs your code. As an example, we will use a python:alpine image. Suppose your calculation is run with the following command,

docker run python:alpine python -c "print('Hello BOINC')"

To submit a job on the server which runs this as a BOINC job you would first get a shell inside the server,

docker-compose exec apache bash

Then submit the job by running

bin/boinc2docker_create_work.py python:alpine python -c "print('Hello BOINC')"

Now you can connect a BOINC client the server and run this job. Note that to run these types of Docker-based jobs, the client computer will need 64bit Virtualbox installed and "virtualization" enabled in the BIOS.

If your job has output files, have the container write them in /root/shared/results and they are automatically returned to the server when the job is done.

This is a simple example, but any Docker containers with arbitrary code installed inside of them will work!

To stop the server and delete all server and database files (for example, if you want to start over with a fresh copy), run,

docker-compose down -v

Finally, boinc-server-docker is not just useful to get a simple test server running, its actually meant to run your real server. To learn how to, read the project cookbook, or look at the Cosmology@Home source code as an example (boinc-server-docker was in fact originally developed for Cosmology@Home).

Happy crunching!

News

  • Version 2.0.0 - Feb 27, 2018
    • New feature: The server URL and project name can now be changed at run-time with e.g.: URL_BASE=http//1.2.3.4 PROJECT=myproject docker-compose up -d. See here and here in the Project Cookbook for more details.
    • Breaking change: The $PROJHOME variable which was previously available in apache and makeproject containers has been renamed to $PROJECT_ROOT to be consistent with the make_tools script, similarly as with URL_BASE and PROJECT, and in anticipation that it too will become configurable.
    • Upgraded version requirements.
  • Version 1.4.1 - July 26, 2017
    • The default server URL is now http://127.0.0.1/boincserver rather than previously when it was http://boincserver.com/boincserver. This removes the need to edit your /etc/hosts file on Linux, and on Windows/Mac/docker-machine replaces having to edit /etc/hosts with the SSH tunnel command above. Related warning: the boincserver.com domain is currently being squatted, so if you're using the old version be careful that you do not type sensitive information into the server website thinking you're interacting with your local test server when in fact it's a remote server at the squatted domain.
    • Updated docker-compose requirement from 1.6.0 to 1.7.0, and on Windows/Mac, updated Docker Toolbox requirement from 1.10.0 to 1.11.0
    • A number of improvements to boinc2docker (see ccfe9a9).

Development and Contributing

To modify and rebuild any of the boinc-server-docker images, you will need this git repository's submodules checked out (run git submodule update --init --recursive, or clone with git clone --recursive in the first place). Note also that currently building the images only works on Linux.

Please don't hesitate to get in contact with the maintainers of this project or to submit pull requests!

boinc-server-docker's People

Contributors

erkan-yilmaz avatar grctest avatar marius311 avatar neuralminer avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.