/phyapps-cloud

Playground for physics applications development

Primary LanguageMakefileMIT LicenseMIT

phyapps-cloud

Cloud computing platform for software development for physics applications on accelerators.

Overview

  • After login this platform, each user can create/update their own Jupyter-Notebook service with physics applications development environment included, w/ or w/o virtual accelerator running or not.

  • Each user has the private space to work with, e.g., the virtual accelerator which the user is manipulating will not affect other users.

  • Each user has the flexibility to adjust their own service settings, e.g., start/stop/pause/resume virtual accelerator with different LINAC sections.

  • The Jupyter-Notebook can only be accessed by the user who created.

  • Within Jupyter-Notebook, user can do anything based on the provisioned Python packages.

  • The extensibility to support more services, currently, only supports VA with FRIB LINAC configurations.

  • Available services:

    • phyapps-va
    • phyapps-nb

Prerequisites

  • Install Docker & Pull Docker images:

    docker pull tonyzhang/phyapps:<tagname>

    where, <tagname> could be nb, va.

  • Initialize Swarm environment for deployment: docker swarm init .

Deployment

  1. Clone this repository: git clone https://github.com/archman/phyapps-cloud.git, locate Makefile.

  2. Set environmental variables in terminal or change in-place:

    • SRV_IP: IP address of the workstation as the swarm server
    • TOKEN: secret string for authentication
    • MYSQL_ROOT_PASSWORD: root password for MySQL service
    • DATABASE_NAME: database name for phyapps-gateway service
    • DATABASE_USER: database user account
    • DATABASE_PASS: DATABASE_USER's password
  3. Type make deploy to deploy.

  4. Type make stop to stop.

  5. The URL should be https://<SRV_IP>:8000

Here is an example to deploy the phyapps_cloud stack on the workstation with serving IP of 10.20.30.40, with default configurations of MySQL service.

SRV_IP=10.20.30.40 TOKEN=6eec0c438f2e59711a1838d1207e1c make deploy

It is recommended to redirect the output to a file, e.g. make deploy 2>&1 | tee log

  1. Only do once Database configuration: https://<SRV_IP>:8000/init, first initialize the database and then set up administrator account.

Screenshots

Home PageLogin Page

Users ActivitiesService Control

Create New ServiceJupyter Notebook