sirepo 20170922.192947 2017-09-22 ✔ PY2

sirepo on PyPI  

accelerator code gui

AuthorRadiaSoft LLC.

# ![Sirepo](

<p align="center">

## Sirepo brings computational science to the cloud.

Develop, run and share your HPC simulations.

Sirepo brings Clickable Physics(TM) to your desktop and mobile devices.

Run Sirepo directly from [our beta site](

No signup is required and Sirepo is completely free.

# .

### If you prefer, Sirepo can also be downloaded! :arrow_down:
1. Curl Installer
2. Install with Docker
3. Install with Vagrant

#### Curl Installer
You can use our
[curl installer on your Mac, PC (Cygwin only), or Linux box](
as follows:

$ mkdir sirepo
$ cd sirepo
$ curl | bash

For this to work, you will need to [install the prerequisites](

[API Documentation is available on Read the Docs.](

#### Manual Install with Docker

You can start Sirepo with [Docker](

If you are running Docker as an ordinary user (recommended), use the following:

$ docker run -p 8000:8000 -v "$PWD:/sirepo" radiasoft/sirepo

The `/radia-run` command ensures the guest's user can read/write files from the
current directory, which is where the database and other files will be stored.

Then visit the following link:


#### Manual Install with Vagrant

You can start Sirepo with [Vagrant](

First create a `Vagrantfile` by copy-and-pasting this into a shell:

cat > Vagrantfile <<'EOF'
Vagrant.configure(2) do |config| = "radiasoft/sirepo" "forwarded_port", guest: 8000, host: 8000
config.vm.synced_folder ".", "/vagrant", disabled: true

Boot the machine:

vagrant up

The image is 2.5GB so this will take some time to start.

If it's your first time running Vagrant, it will ask to install VirtualBox.

Follow the prompts

You can run Sirepo with a single command:

vagrant ssh -c '. ~/.bashrc; sirepo service http'

Or, if you would like to do development:

vagrant ssh
cd src/radiasoft
pip uninstall sirepo pykern
git clone
cd pykern
pip install -e .
cd ..
git clone
cd sirepo
pip install -e .
sirepo service http

Then visit the following link:


##### Sharing Folder with Vagrant VM

Note that if you want to transfer files to the virtual machine,
you'll need to install the
[vagrant-vbguest plugin](
and remove the following line from the `Vagrantfile`:

config.vm.synced_folder ".", "/vagrant", disabled: true

#### Angular Testing

In order to test, you need to install Xvfb, nodejs (v4+), and google-chrome.

[Extensive tutorial on Angular Testing from 2013, which gives advice on jasmine testing, but uses obsolete scenario runner.](

[Advice on how to test better](

Install node globally as root:

curl -s -S -L | bash
yum install -y nodejs

Install Xvfb globally as root. It runs as vagrant:

yum install -y xorg-x11-server-Xvfb xorg-x11-server-utils
cat > /etc/systemd/system/Xvfb.service <<'EOF'

# -noreset fixes memory leak issue with other flags described here:
# Start with screen 10, because we use visible X11 apps on VMs.
# Small screen size to save memory
# RANDR needed for chrome
ExecStart=/usr/bin/Xvfb -ac -extension RANDR -noreset -screen 0 1024x768x8

systemctl enable Xvfb
systemctl start Xvfb

Install Chrome globally as root:

cat << 'EOF' > /etc/yum.repos.d/google-chrome.repo
name=google-chrome - $basearch
yum install -y google-chrome-stable

##### Karma (Angular unit testing)

The tests are located in `tests/karma`.
[Tutorial on karma and jasmine.](

As user install node modules:

cd ~/src/radiasoft/sirepo
npm install --save-dev karma
npm install --save-dev karma-jasmine
npm install --save-dev karma-phantomjs-launcher

To run tests:

cd ~/src/radiasoft/sirepo
./node_modules/karma/bin/karma start karma-conf.js

##### Protractor (Angular end-to-end testing)

The tests are located in `tests/protractor`.
[Tutorial on protractor and jasmine.](

As user install node modules and Chrome:

cd ~/src/radiasoft/sirepo
npm install --save-dev protractor
npm install --save-dev protractor-snapshot
npm install --save-dev protractor-console
npm install --save-dev protractor-console-plugin
./node_modules/protractor/bin/webdriver-manager update
yum update -y google-chrome-stable

Verify the X11 server is running:

DISPLAY=:0 xset q > /dev/null && echo OK

To run tests:

cd ~/src/radiasoft/sirepo
# Starts server on http://localhost:4444/wd/hub
DISPLAY=:0 ./node_modules/protractor/bin/webdriver-manager start --chrome_logs="$PWD/chrome.log" >& webdriver.log &
# Default is 8000
SIREPO_PKCLI_SERVICE_PORT=8000 sirepo service http >& http.log &
# You don't need to pass uri as it is set to 8000 by default, but clearer
./node_modules/protractor/bin/protractor --params.uri=http://localhost:8000 protractor-conf.js

Output will look like:

./node_modules/protractor/bin/protractor protractor-conf.js
[16:20:30] I/hosted - Using the selenium server at http://localhost:4444/wd/hub
[16:20:30] I/launcher - Running 1 instances of WebDriver

1 spec, 0 failures
Finished in 6.88 seconds
[16:20:40] I/launcher - 0 instance(s) of WebDriver still running
[16:20:40] I/launcher - chrome #01 passed

If you would like to see what the browser (webdriver) is doing, you
must have X11 running, and start the webdriver this way:

./node_modules/protractor/bin/webdriver-manager start >& webdriver.log &

This will use the `$DISPLAY` forwarded through your ssh session via

#### Full Stack Development

The `sirepo service http` setup is used for basic application development.
However, if you want to test the full stack workflow, you'll need to start
all the support processes and configure your servers.

Set up a few environment variables:


Then run each of the following commands in separate windows:

sirepo service rabbitmq
sirepo service celery
sirepo service uwsgi
sirepo service nginx_proxy
sirepo service flower

[nginx]( will listen on port 8080 so you can browse
Sirepo at [http://localhost:8080](http://localhost:8080). The
middle tier [uwsgi]( server
will start on port 8000.

The last process starts [Flower](,
which allows you to monitor [Celery](
You can visit [http://localhost:5555](http://localhost:5555)
to see the workers, tasks, processes, queues, etc.

You can also visit
[RabbitMQ's Management Plugin](
on this URL:

### License


Copyright (c) 2015-2016 [RadiaSoft LLC]( All Rights Reserved.