PnEcrins / Trombi

Trombinoscope app based on LDAP directory
GNU General Public License v3.0
6 stars 3 forks source link

Problème Flask run #5

Open ghost opened 1 year ago

ghost commented 1 year ago

Bonjour,

J'essaye actuellement d'installer votre Trombi sur un serveur debian mais quand je suis à l'étape "flask run" et que j'essaye d'y accéder soit via le 127.0.0.1 soit par l'adresse ip sur le port 5006 de mon serveur, il me refuse la connexion. J'ai bien accès au apache. Dans le fichier de conf ldap, j'ai mis l'adresse de mon ad, dans "MY_DN", j'ai mis mon nom de domaine et dans "password", j'ai mis le MDP du compte admin.

Je vous remercie, C'est la première fois que j'installe depuis github. Et je vous félicite pour votre application.

Cordialement

camillemonchicourt commented 1 year ago

Quel est le problème ? Quelle est l'erreur retournée ? Dans quel contexte ?

ghost commented 1 year ago

update au dessus, c'est aussi la première fois que je pose une question :)

TheoLechemia commented 1 year ago

Si l'application est sur un serveur, il faut faire une configuration Apache pour servir l'application. Par ailleurs en production on n'utilise pas flask run qui lance un serveur de développement, mais gunicorn. Avez vous lancez le script install_app.sh qui est censé faire tout ça

ghost commented 1 year ago

D'accord, Normalement oui, Je suis dans mon dossier /home/"utilisateur"/Trombi

Je fais bash install_app.sh ca défile mais avec des "ligne 16 commande introuvable" pour exemple.

Ducoup je pense que le script ne s'exécute pas en entier.

camillemonchicourt commented 1 year ago

N'hésitez à envoyer le retour complet de la commande install_app.sh pour qu'on puisse chercher ce qui pose soucis.

ghost commented 1 year ago

root@debian:/home/romain/Trombi# bash install_app.sh mkdir: impossible de créer le répertoire « var »: Le fichier existe mkdir: impossible de créer le répertoire « var/log »: Le fichier existe mkdir: impossible de créer le répertoire « ldaptrombipy/static/images »: Le fich ier existe install_app.sh: ligne 6: sudo : commande introuvable /home/romain/Trombi/install_app.sh Requirement already satisfied: virtualenv in /usr/local/lib/python3.9/dist-packa ges (20.17.1) Requirement already satisfied: filelock<4,>=3.4.1 in /usr/local/lib/python3.9/di st-packages (from virtualenv) (3.9.0) Requirement already satisfied: distlib<1,>=0.3.6 in /usr/local/lib/python3.9/dis t-packages (from virtualenv) (0.3.6) Requirement already satisfied: platformdirs<3,>=2.4 in /usr/local/lib/python3.9/ dist-packages (from virtualenv) (2.6.2) created virtual environment CPython3.9.2.final.0-64 in 714ms creator CPython3Posix(dest=/home/romain/Trombi/venv, clear=False, no_vcs_ignor e=False, global=False) seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle , via=copy, app_data_dir=/root/.local/share/virtualenv) added seed packages: Flask==2.0.1, Flask_Cors==3.0.10, Jinja2==3.0.1, Markup Safe==2.0.1, TatSu==5.8.3, Werkzeug==2.0.1, arrow==0.14.7, caldav==0.8.0, certif i==2021.5.30, charset_normalizer==2.0.3, click==8.0.1, gunicorn==20.1.0, ics==0. 7, idna==3.2, itsdangerous==2.0.1, ldap3==2.9.1, lxml==4.6.3, pip==22.3.1, pyasn 1==0.4.8, python_dateutil==2.8.2, python_dotenv==0.18.0, requests==2.26.0, setup tools==65.6.3, six==1.16.0, urllib3==1.26.6, vobject==0.9.6.1, wheel==0.38.4 activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerS hellActivator,PythonActivator Requirement already satisfied: arrow==0.14.7 in ./venv/lib/python3.9/site-packag es (from -r requirements.txt (line 1)) (0.14.7) Requirement already satisfied: caldav==0.8.0 in ./venv/lib/python3.9/site-packag es (from -r requirements.txt (line 2)) (0.8.0) Requirement already satisfied: certifi==2021.5.30 in ./venv/lib/python3.9/site-p ackages (from -r requirements.txt (line 3)) (2021.5.30) Requirement already satisfied: charset-normalizer==2.0.3 in ./venv/lib/python3.9 /site-packages (from -r requirements.txt (line 4)) (2.0.3) Requirement already satisfied: click==8.0.1 in ./venv/lib/python3.9/site-package s (from -r requirements.txt (line 5)) (8.0.1) Requirement already satisfied: Flask==2.0.1 in ./venv/lib/python3.9/site-package s (from -r requirements.txt (line 6)) (2.0.1) Requirement already satisfied: Flask-Cors==3.0.10 in ./venv/lib/python3.9/site-p ackages (from -r requirements.txt (line 7)) (3.0.10) Requirement already satisfied: gunicorn==20.1.0 in ./venv/lib/python3.9/site-pac kages (from -r requirements.txt (line 8)) (20.1.0) Requirement already satisfied: ics==0.7 in ./venv/lib/python3.9/site-packages (f rom -r requirements.txt (line 9)) (0.7) Requirement already satisfied: idna==3.2 in ./venv/lib/python3.9/site-packages ( from -r requirements.txt (line 10)) (3.2) Requirement already satisfied: itsdangerous==2.0.1 in ./venv/lib/python3.9/site- packages (from -r requirements.txt (line 11)) (2.0.1) Requirement already satisfied: Jinja2==3.0.1 in ./venv/lib/python3.9/site-packag es (from -r requirements.txt (line 12)) (3.0.1) Requirement already satisfied: ldap3==2.9.1 in ./venv/lib/python3.9/site-package s (from -r requirements.txt (line 13)) (2.9.1) Requirement already satisfied: lxml==4.6.3 in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 14)) (4.6.3) Requirement already satisfied: MarkupSafe==2.0.1 in ./venv/lib/python3.9/site-pa ckages (from -r requirements.txt (line 15)) (2.0.1) Requirement already satisfied: pyasn1==0.4.8 in ./venv/lib/python3.9/site-packag es (from -r requirements.txt (line 16)) (0.4.8) Requirement already satisfied: python-dateutil==2.8.2 in ./venv/lib/python3.9/si te-packages (from -r requirements.txt (line 17)) (2.8.2) Requirement already satisfied: python-dotenv==0.18.0 in ./venv/lib/python3.9/sit e-packages (from -r requirements.txt (line 18)) (0.18.0) Requirement already satisfied: requests==2.26.0 in ./venv/lib/python3.9/site-pac kages (from -r requirements.txt (line 19)) (2.26.0) Requirement already satisfied: six==1.16.0 in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 20)) (1.16.0) Requirement already satisfied: TatSu in ./venv/lib/python3.9/site-packages (from -r requirements.txt (line 21)) (5.8.3) Requirement already satisfied: urllib3==1.26.6 in ./venv/lib/python3.9/site-pack ages (from -r requirements.txt (line 22)) (1.26.6) Requirement already satisfied: vobject==0.9.6.1 in ./venv/lib/python3.9/site-pac kages (from -r requirements.txt (line 23)) (0.9.6.1) Requirement already satisfied: Werkzeug==2.0.1 in ./venv/lib/python3.9/site-pack ages (from -r requirements.txt (line 24)) (2.0.1) Requirement already satisfied: setuptools>=3.0 in ./venv/lib/python3.9/site-pack ages (from gunicorn==20.1.0->-r requirements.txt (line 8)) (65.6.3) install_app.sh: ligne 16: sudo : commande introuvable install_app.sh: ligne 17: sudo : commande introuvable install_app.sh: ligne 19: sudo : commande introuvable install_app.sh: ligne 20: sudo : commande introuvable

TheoLechemia commented 1 year ago

sudo n'est pas installé sur le serveur . Il faut l'installer : apt install sudo et ajouter l'utilisateur courant dans le groupe sudo : https://phoenixnap.com/kb/how-to-create-sudo-user-on-ubuntu Avec quel utilisateur lancez vous le script ?

ghost commented 1 year ago

Ok, je viens de faire la manip. Le script c'est lancé normalement.

Est-ce que on peut déjà avoir un aperçu ? La partie configuration apache est en "enable".

Je dois faire la config backend. C'est actuellement un test sur une vm pour voir pour le déployer plus tard.

TheoLechemia commented 1 year ago

est ce que l'application est accessible sur votre IP ? Oui ensuite il faut faire la config backend. Et bien redémarer le service systemd après modif

ghost commented 1 year ago

Il me refuse la connexion j'ai fait un telnet "adresseip" 5006. "Connection refused"

TheoLechemia commented 1 year ago

l'appli doit être accessible sur l'IP de la machine sans le port 5006. Le port 5006 est simplement utilisé en local et apache fait proxy entre les deux

ghost commented 1 year ago

Elle n'est pas accessible via l'adresse j'arrive sur la page d'accueil apache. Pour servir l'application je dois faire un LAMP ou juste la configuration de apache. Si vous avez un lien pour le faire j'en serais très reconnaissant.

TheoLechemia commented 1 year ago

Pardon, l'application est disponible sur IP/trombi, je vais le spécifier dans la doc. Rien de plus à faire niveau serveur HTTP !

ghost commented 1 year ago

J'ai du foiré quelque part. Quand je met monIP/Trombi (dossier dans /home/romain/Trombi). Je tombe sur

The requested URL was not found on this server.

Apache/2.4.54 (Debian) Server at 192.168.1.14 Port 80

TheoLechemia commented 1 year ago

La doc n'est vraiment pas complète et je n'ai pas regardé attentivement le script d'installation : la conf apache n'est pas faite dans le install_app.sh. Le fichier https://github.com/PnEcrins/Trombi/blob/main/cong_apache.template donne un exemple de configuration à mettre dans : /etc/apache2/sites-available/trombi.conf en remplaçant les chemins par ceux ou est votre application. Ensuite :

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2ensite trombo
sudo apachectl restart
ghost commented 1 year ago

Yes super, j'ai accès au site. J'ai toujours pas le visuel de mes utilisateurs ? pour ca je dois lancer le backend et frontend. C'est compliqué à installer le NVM ?

camillemonchicourt commented 1 year ago

NVM n'est pas à installer. Il ne faut pas que vous regardiez la rubrique DEVELOPPEMENT de la doc (https://github.com/PnEcrins/Trombi#d%C3%A9veloppement) qui est pour les développeurs de l'application.

C'est quoi le visuel des utilisateurs ? Vous avez connecté l'application avec votre LDAP pour récupérer les infos de vos utilisateurs ?

TheoLechemia commented 1 year ago

C'est surement la variable : BASE_QUERY du config.py qui est adapté pour effectuer les bon filtres sur le LDAP (il est fourni avec un exemple de notre structure à modfier)

ghost commented 1 year ago

Mon fichier config.py ressemble à ca :

API_PORT = 5006
# LDAP CONFIG
SERVER = "192.168.1.10"
PORT = 389
# SERVER = "ldap://192.168.1.10"
DN = "projet.dom"
PASSWORD = "Pa$$word"
EXCLUDED_GROUPS = [""]
BASE_QUERY=""

# CALDAV CONFIG
CALDAV_SERVER = ""
CALDAV_USERNAME = ""
CALDAV_PASSWORD = ""

J'ai mes utilisateurs dans un dossier "unité d'organisation".

TheoLechemia commented 1 year ago

La du coup ça relève de la bonne config du DN et du BASE_QUERY. Je ne suis vraiment pas un expert LDAP et j'ai trouvé notre config de manière assez empirique. Vous pouvez essayé de faire des requêtes LDAP avec la lib python ldap, ça peut aider pour débugger https://pypi.org/project/python-ldap/ Sinon vous pouvez ouvrir le debugger du navigateur, dans l'onglet "network" ou "réseaux" vous verrez les appels HTTP qui sont fait sur l'API. S'il y a des erreurs 500, le problème vient peut être d'autre part et il faut consulter les logs (dans sudo journalctl -u trombi normalement). Si il y a que des code 200, c'est que les filtres ne sont pas bon

camillemonchicourt commented 11 months ago

Vous avez pu solutionner votre problème de configuration ?

PS : Une version 1.2.0 vient de sortir.