Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problème Flask run #5

Open
ghost opened this issue Jan 25, 2023 · 21 comments
Open

Problème Flask run #5

ghost opened this issue Jan 25, 2023 · 21 comments

Comments

@ghost
Copy link

ghost commented Jan 25, 2023

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
Copy link
Member

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

@ghost
Copy link
Author

ghost commented Jan 25, 2023

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

@TheoLechemia
Copy link
Collaborator

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
Copy link
Author

ghost commented Jan 26, 2023

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
Copy link
Member

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

@ghost
Copy link
Author

ghost commented Jan 26, 2023

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
Copy link
Collaborator

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
Copy link
Author

ghost commented Jan 26, 2023

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
Copy link
Collaborator

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
Copy link
Author

ghost commented Jan 26, 2023

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

@TheoLechemia
Copy link
Collaborator

TheoLechemia commented Jan 26, 2023

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
Copy link
Author

ghost commented Jan 26, 2023

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
Copy link
Collaborator

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

@ghost
Copy link
Author

ghost commented Jan 26, 2023

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
Copy link
Collaborator

TheoLechemia commented Jan 27, 2023

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
Copy link
Author

ghost commented Jan 27, 2023

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
Copy link
Member

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
Copy link
Collaborator

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
Copy link
Author

ghost commented Jan 27, 2023

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
Copy link
Collaborator

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
Copy link
Member

Vous avez pu solutionner votre problème de configuration ?

PS : Une version 1.2.0 vient de sortir.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants