Light API to manage documents
-
Création de l'environnement virtuel : Se mettre dans le dossier voulu puis
$ python3 -m venv env
-
Activation de l'environnement :
source env/bin/activate
Ce qu'on doit voir une fois activé => (env) loic@portable-4:
"deactivate" pour couper l'environnement.
-
Installation de FastAPI Mettre à jour pip avec
python -m pip install --upgrade pip
Installer les dépendances nécessaires (dont FastAPI)
$ pip install -r /chemin/vers/requirements.txt (le fichier est présent dans le projet)
Lancement en mode dev avec rechargement à chaque modification (à n'utiliser que pour tester car lourd en utilisation)
fastapi dev main.py ou uvicorn main:app --reload
Copier le fichier exploit/edp-documents.service dans /etc/systemd/system et vérifier les élements et modifier le port si nécessaire
Rechargez systemd :
sudo systemctl daemon-reload
Activez le service :
sudo systemctl enable edp-documents
Démarrer le service :
sudo systemctl enable edp-documents
Le serveur se lance sur http://127.0.0.1:8000 Le swagger est accessible sur http://127.0.0.1:8000/docs
L'utilisateur qui est utilisé pour exécuter le service doit avoir les droits sur le répertoire qui contient les documents.
Par exmple, si tomcat est utilisé pour exécuter le script (voir fichier /etc/systemd/system/xxxxx.service
), alors tomcat doit :
- pouvoir écrire dans les logs
- pouvoir écrire dans le répertoire de stockage des documents
Exemple de commande :
chown -R tomcat:tomcat /path/to/documents
chown -R tomcat:tomcat /path/to/log/dir/monfichier.log
chown -R tomcat:tomcat /path/to/log/dir/monfichier-error.log
Dans le fichier config.py
il est possible de modifier plusieurs paramètres :
- BASE_DIR : chemin vers le dossier courant de l'app (à éviter de modifier car les autres chemin en dépendent)
- UPLOAD_DIR : dossier de destination des fichiers téléversés