README.md 2.3 KB

Heliopropa Web

A web site writen in flask for the visualisation of solarwind propagation simulations.

Builds and serves heliopropa's visualizations.

It's a flask webserver, serving d3.js plots. It also gathers NetCDF data from AMDA, and serves it as CSV to the plotter.

Files Overview

  • config.yml : the main configuration file.
  • web/run.py : the front controller, holding most of the code.
  • web/run.log : you'll find more information about failures in the log.
  • web/view/home.html.jinja2 : the HTML template.
  • web/static/js/swapp.ls : most of the javascript client-side.

Python venv

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Develop

source venv/bin/activate
DEBUG=true python web/run.py

Then, browse localhost:5000.

Gunicorn and Nginx deployment on OVH for development

see Digital Ocean documentation

wep app service and Gunicorn

see ./resources/heliopropa.service

/etc/systemd/system/heliopropa.service

[Unit]
Description=Gunicorn instance to serve Heliopropa
After=network.target

[Service]
User=debian
Group=www-data
WorkingDirectory= /home/debian/heliopropa/
Environment="PATH=/home/debian/heliopropa/venv/bin/"
ExecStart=/home/debian/heliopropa/venv/bin/gunicorn --workers 3 --bind unix:heliopropa.sock -m 007 web.run:app

[Install]
WantedBy=multi-user.target

Nginx

see ./resources/heliopropa.nginx

/etc/nginx/sites-available/heliopropa

server {
    listen 80;
    server_name heliopropa heliopropa.co-libri.org;

    location / {
        include proxy_params;
        proxy_pass http://unix:/home/debian/heliopropa/heliopropa.sock;
    }
}

Start and Allow at system reboot

sudo systemctl start nginx
sudo systemctl start heliopropa 
sudo systemctl enable heliopropa 

Git hook auto deploy

see ./resources/post-receive.git-hook

Set bare repo with hook on vps

ssh user@vps
git clone --bare path-to-heliopropa-repo heliopropa.git
cd heliopropa.git/hooks
vim post-receive
chmod +x post-receive

Push from dev computer

git remote add helio-dev user@vps:heliopropa.git
git push heliopropa HEAD:DEV