README.md
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.
Quick Start
docker compose build
docker compose up
Develop
Configuration
cp config.yml-dist config.yml
$(EDITOR) config.yml # but defaults should be ok
Python venv
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Run locally
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