# 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 ``` bash cp config.yml-dist config.yml $(EDITOR) config.yml # but defaults should be ok ``` ### Python venv ``` bash python3 -m venv venv source venv/bin/activate pip install -r requirements.txt ``` ### Run locally ``` bash source venv/bin/activate DEBUG=true python web/run.py ``` Then, browse [localhost:5000](http://localhost:5000). ## Gunicorn and Nginx deployment on OVH for development see [ Digital Ocean documentation ] (https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-gunicorn-and-nginx-on-ubuntu-20-04-fr) ### 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