Installation¶
Note
D'autres guides d'installation sont disponibles grâce aux contributeurs :
Installation sur l'hébergement web Uberspace (Fittrackee 0.7.25, guide en anglais)
Installation sur Debian 12 net install (Fittrackee 0.7.31, guide en allemand)
Avertissement
Note
Selon le système d'exploitation et la version de Python installée, des dépendances supplémentaires peuvent être requises, telles que gcc ou libgdal-dev.
A partir de PyPI¶
Créer et activer l'environnement virtuel
Installer FitTrackee avec pip
$ pip install fittrackee
Créer la base de données
fittrackee
Exemple :
CREATE USER fittrackee WITH PASSWORD '<PASSWORD>';
CREATE SCHEMA fittrackee AUTHORIZATION fittrackee;
CREATE DATABASE fittrackee OWNER fittrackee;
Note
Installer l'extension PostGIS
Exemple pour la base de données fittrackee :
$ psql -U <SUPER_USER> -d fittrackee -c 'CREATE EXTENSION IF NOT EXISTS postgis;'
Note
Initialiser les variables d'environnement, cf. Variables d'environnement
Par exemple, copier et coller le fichier .env à partir de .env.example et activer le fichier.
$ nano .env
$ source .env
Initialiser le schéma de la base de données
$ ftcli db upgrade
Démarrer l'application
$ fittrackee
Démarrer les workers de la file d'attente des tâches si l'envoi des courriels est activé, avec l'interface de ligne de commandes de Dramatiq (cf. documentation):
$ dramatiq fittrackee.tasks:broker --processes=$WORKERS_PROCESSES --log-file=$DRAMATIQ_LOG
Note
$ flask worker --processes 2
Note
Ouvrir l'URL http://localhost:5000 avec un navigateur et s'inscrire
Pour attribuer le rôle de propriétaire au compte nouvellement créé, utiliser la ligne de commande suivante :
$ ftcli users update <username> --set-role owner
Note
Si le compte de l'utilisateur est inactif, il sera alors activée.
A partir des sources¶
Avertissement
Note
$ poetry config virtualenvs.in-project true
Environnements de production¶
Avertissement
Télécharger la dernière version (à ce jour, la version v1.1.0) :
$ wget https://github.com/SamR1/FitTrackee/archive/1.1.0.tar.gz
$ tar -xzf v1.1.0.tar.gz
$ mv FitTrackee-1.1.0 FitTrackee
$ cd FitTrackee
Créer le fichier .env à partir de l'exemple et le mettre à jour (cf. Variables d'environnement).
Installer l'environnement virtuel Python et tous les paquets nécessaires :
$ make install-python
Initialiser la base de données (après avoir mis à jour
db/create.sqlpour changer les informations de connexion à la base de données) :
$ make install-db
Démarrer le serveur et les workers de Dramatiq :
$ make run
Note
Si l'envoi des courriels est désactivé : $ make run-server
Ouvrir l'URL http://localhost:5000 avec un navigateur et s'inscrire
Pour attribuer le rôle de propriétaire au compte nouvellement créé, utiliser la ligne de commande suivante :
$ make user-set-role USERNAME=<username> ROLE=owner
Note
Si le compte de l'utilisateur est inactif, il sera alors activée.
Environnements de développement¶
Cloner ce dépôt :
$ git clone https://github.com/SamR1/FitTrackee.git
$ cd FitTrackee
Créer le fichier .env à partir de l'exemple et le mettre à jour (cf. Variables d'environnement).
Installer l'environnement virtuel Python, Vue et tous les paquets nécessaires et initialiser la base de données :
$ make install-dev
$ make install-db-dev
Démarrer le serveur et le client :
$ make serve
Démarrer les workers de Dramatiq :
$ make run-workers
Ouvrir l'URL http://localhost:3000 avec un navigateur et s'inscrire
Pour attribuer le rôle de propriétaire au compte nouvellement créé, utiliser la ligne de commande suivante :
$ make user-set-role USERNAME=<username> ROLE=owner
Note
Si le compte de l'utilisateur est inactif, il sera alors activée.
Docker¶
Ajouté dans la version 0.4.4.
Modifié dans la version 0.5.0: ajout de l'application cliente pour le développement
Modifié dans la version 0.8.13: ajout de l'image Docker pour la production
Production¶
Des images sont disponible sur DockerHub ou Github registry.
Note
Les images sont disponibles pour les plateformes linux/amd64 et linux/arm64. Seule l'image linux/amd64 a été testée.
Avertissement
créer un fichier
docker-compose.ymlselon les besoins (voir l'exemple dans le dépôt) :l'installation minimale nécessite la base de données et l'application web
pour activer les limitations d'accès à l'API, redis est requis
pour envoyer des courriels, redis et les workers sont requis et une variable
EMAIL_URLvalide doit être initialisée dans le fichier.env
Note
La même image est utilisée pour l'application Web et les workers
Avertissement
Les répertoires suivants doivent être accessibles en écriture à l'utilisateur fittrackee (voir le fichier exemple docker-compose.yml):
/usr/src/app/uploads/usr/src/app/logs/usr/src/app/.staticmap_cache
Créer le fichier
.envà partir de l'exemple (.env.docker.example) et le mettre à jour (cf. Variables d'environnement).pour démarrer l'application :
$ docker compose up -d
Avertissement
Les migrations sont exécutées au lancement du conteneur. Veuillez sauvegarder les données avant de mettre à jour la version de l'image FitTrackee.
pour lancer une commande de l'interface de ligne de commandes (CLI), par example pour donner les droits d'administration :
$ docker compose exec fittrackee ftcli users update <username> --set-role admin
Développement¶
Pour installer et lancer FitTrackee :
$ git clone https://github.com/SamR1/FitTrackee.git
$ cd FitTrackee
$ make docker-run
Ouvrir l'URL http://localhost:5000 avec un navigateur et s'inscrire.
Note
fittrackee lorsque les conteneurs sont lancés avec les commandes Makefile, créer un fichier .env avec la variable HOST_APP_PORT.export HOST_APP_PORT=5001
Ouvrir l'URL http://localhost:8025 pour accéder à l'interface de MailHog (outil de test)
Pour attribuer le rôle de propriétaire au compte nouvellement créé, utiliser la ligne de commande suivante :
$ make docker-set-role USERNAME=<username> ROLE=owner
Note
Si le compte de l'utilisateur est inactif, il sera alors activée.
Pour arrêter Fittrackee :
$ make docker-stop
Pour lancer le shell dans le container Fittrackee :
$ make docker-shell
une étape additionnelle est nécessaire pour installer fittrackee_client
$ make docker-build-client
pour démarrer FitTrackee avec les outils de développement client :
$ make docker-serve-client
Ouvrir http://localhost:3000
Note
Certaines variables d'environnement doivent être mise à jour comme UI_URL
pour lancer le lint et les tests :
$ make docker-lint-client # run type check and lint on javascript files
$ make docker-test-client # run unit tests on Client
$ make docker-lint-python # run type check and lint on python files
$ make docker-test-python # run unit tests on API
VSCode¶
Ajouté dans la version 1.0.4.
Développement¶
Vous pouvez utiliser le conteneur de développement (Dev Container) sans la configuration de débogage et inversement. Le conteneur de développement est fortement recommandé sous Windows en raison de problèmes de gestion des chemins d'accès.
Conteneur de Développement¶
L'utilisation d'un conteneur de développement vous offre un environnement prêt à l'emploi (Python, Poetry, Node, etc.) sans avoir à les installer sur votre machine.
Prérequis
Docker Engine
VS Code avec l'extension Dev Containers
Mode d'emploi
Ouvrir le répertoire FitTrackee dans VS Code.
Lorsque vous y êtes invité, choisissez Reopen in Container (ou ouvrez la palette de commandes et exécutez
Dev Containers: Reopen in Container).
Note
Dev Containers: Clone Repository in Container Volume de la palette de commandes pour cloner dans un volume.Note
Le port 5000 (fittrackee-ui) est redirigé automatiquement. Si vous modifiez APP_PORT, vous devez rediriger manuellement le nouveau port à l'aide de la commande Forward a Port dans la palette de commandes.
Déboguer la configuration et les tâches¶
Ce dépôt comprend une configuration de lancement VS Code qui :
démarre la stack de développement Docker Compose complète en arrière-plan,
attend que les services soient opérationnels,
attache le débogueur au backend afin que les points d'arrêt fonctionnent immédiatement,
démonte la stack lorsque vous arrêtez le débogueur.
Comment démarrer le débogage
Ouvrez la palette de commandes et exécutez
Debug: Start Debuggingou appuyez sur F5.
Note
Si le débogueur ne parvient pas à se connecter, utilisez Debug: Select Debug Session pour mettre fin à la session, vérifiez les logs du conteneur, puis exécutez Tasks: Run Task et ensuite down : devcontainer-compose avant de réessayer.
Avertissement
Sous Linux, host.docker.internal ne se résout pas automatiquement à partir de l'intérieur des conteneurs. Si le débogueur ne parvient pas à se connecter et que les logs indiquent des problèmes de connexion à host.docker.internal:5678, assurez-vous que .devcontainer\docker-compose-devcontainer.yml inclut le mappage de la passerelle hôte :
services:
fittrackee:
extra_hosts:
- "host.docker.internal:host-gateway"