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

Explications fonctionnement et self-hosting possible ? #5

Open
Eriatolc opened this issue May 2, 2024 · 3 comments
Open

Explications fonctionnement et self-hosting possible ? #5

Eriatolc opened this issue May 2, 2024 · 3 comments

Comments

@Eriatolc
Copy link

Eriatolc commented May 2, 2024

Bonjour @tdrapied ,

Avec le challenge Mai à Vélo en ce moment, j'ai mis mes collègues sur le coup. Mais beaucoup sont sur Strava et seraient intéressés par une app qui leur permettrait de pousser autoamtiquement les sorties vélo de Strava vers Géovélo.

Je me posais 3 questions sur l'app qu'on trouve sur ce repo (car je n'ai pas trouvé beaucoup d'info dans le README) :

  • quel est le fonctionnement global de l'application ? Je crois savoir que c'est un browser qui nous permet de nous logger à Strava, puis à Geovelo, et après ? Que se passe-t-il ?
  • est-ce que ça stocke des données ?
  • est-ce qu'on peut le self-host ? Je pensais faire tourner l'app sur un de mes serveurs perso et permettre aux collègues d'y accéder. Mais est-ce multi-user ou mono-user (une instance de l'app par personne ?).

Merci par avance pour le retour.

@tdrapied
Copy link
Owner

tdrapied commented May 2, 2024

Hello @Eriatolc

Yes j'ai poussé le code en prod, mais je n'ai pas encore pris le temps de clean et faire de la doc 😅

Pour tes questions :

  1. Effectivement donc : Connexion via Strava sur le front -> L'utilisateur doit renseigner son nom d'utilisateur et token de Geovelo -> Fini. Ensuite, une CRON doit être setup pour appeler la route API pour synchroniser toutes les nouvelles activités Strava avec Geovelo (suivant la dernière date de synchro en bdd par utilisateur).

Par défaut, j'ai fait en sorte que les nouveaux utilisateurs soient désactivés. Avec la version actuelle, il faut aller en BDD pour activer l'utilisateur.

  1. Les seules données stockées : Les infos d'auth Strava et Geovelo + dernière date de synchro.

  2. Bien sûr ! Je suis partie sur app Next pour l'héberger gratuitement avec Vercel et elle a donc était réfléchi pour pouvoir accueillir plusieurs utilisateurs en même temps. Même si ma version en prod, je suis tout seul. Il n'y a juste pas de panel d'admin.

Pas de soucis, en espérant que tu ne sois pas un ennemi de Vélotafon 😎

@Eriatolc
Copy link
Author

Eriatolc commented May 2, 2024

Merci pour les réponses !

Je suis en train d'essayer de set-up ça sur mon serveur du coup. Dans le .env, je m'interroge sur les variables NEXTAUTH_SECRET, CRON_SECRET et la partie STRAVA_ID, STRAVA_SECRET, GEOVELO_API_KEY.

Pour le premier groupe, je m'interroge sur leur utilité, pour la deuxième partie (Strava/Geovélo), je me demandais pourquoi il fallait les renseigner si on passe par la partie front pour les saisir ?

Edit : j'ai capté pour le CRON_SECRET. Il sera à ajouter en Bearer dans la requête vers l'API cron...

@tdrapied
Copy link
Owner

tdrapied commented May 2, 2024

Alors pour explication :

  • NEXTAUTH_SECRET : Provient de la lib NextAuth utilisé pour l'Oauth Strava : https://next-auth.js.org/configuration/options#nextauth_secret

  • CRON_SECRET : Yes c'est une sécurité, car les commandes en Next passe par une route API, ça permet d'éviter que n'importe qui puisse l'appeler.

  • STRAVA_ID et STRAVA_SECRET : Il faut créer une application sur Strava : Cela permet de faire l'appel OAuth à Strava avec ton app (comme pour Google, Facebook, etc)

  • GEOVELO_API_KEY : C'est une clé qui est utilisé sur les routes de l'API Geovelo, elle est passé dans chaque fetch à l'API. Pour le moment c'est une clé qui ne semble pas changer : Tu peux juste récupérer une requête faite à Geovelo sur ton navigateur pour la récupérer.

Est-ce assez claire pour toi ?

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