mviewer / mviewerstudio

mviewer generator
GNU General Public License v3.0
15 stars 25 forks source link

Python - Centraliser le serveur web pour mviewer et mviewerstudio #169

Open Gaetanbrl opened 1 year ago

Gaetanbrl commented 1 year ago

Description

Actuellement en mode développement, il faut donc lancer Flask pour mviewerstudio (backend + front) et un serveur web pou mviewer.

Il pourrait être intéressant de proposer (en option) d'inclure mviewer afin de publier avec le même serveur Flask mviewer et mviewerstudio.

La question se pose également pour la production car la documentation indique que pour le backend Python :

Il vous faudra un serveur wsgi pour servir les pages. Exemple de serveur : gunicorn, waitress, uwsgi.

spelhate commented 1 year ago

C'est ce qui est fait quand on utilise la composition Docker à la racine du projet. On peut s'en inspirer.

pierrejego commented 1 year ago

Personnellement je suis contre le passage de mviewer uniquement en python, mais qu'un déploiement python existe oui. Et oour mviewerStudio, ça semble logique si on se sépare du php.

Par contre attention au droit d'accès des fichiers partagé par mviewerStudio qui doivent être lu par mviewer.

spelhate commented 1 year ago

La question se pose également pour la production car la documentation indique que pour le backend Python :

Il vous faudra un serveur wsgi pour servir les pages. Exemple de serveur : gunicorn, waitress, uwsgi.

Sur les productions que je connais, on a un serveur web (nginx ou apache qui permet qui permet facilement de de composer avec mviewer et mviewerstudio. Je dispose également d'un service system qui permet de gérer le service mviewerstudio.

exemple de conf nginx :

location /mviewer {
    alias /home/dev-user/mviewer;
    location ~* \.mst$ {
        add_header Content-Type 'text/plain; charset=UTF-8';

    }

}

location /apps {
    alias /home/dev-user/mviewer-apps;
}
location /mviewerstudio {
        proxy_pass http://127.0.0.1:5000/;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $host;       
}

Exemple de fichier mviewerstudio.service

[Unit]
Description=mviewerstudio
After=network.target

[Service]
User=dev_user
WorkingDirectory=/home/dev_user/mviewerstudio/srv/python
ExecStart=/home/dev_user/mviewerstudio/venv/bin/gunicorn -b 127.0.0.1:5000 mviewerstudio_backend.app:app

[Install]
WantedBy=multi-user.target
spelhate commented 1 year ago

Ensuite pour démarrer mviewerstudio, il faut juste faire sudo systemctl start mviewerstudio