Ce code va permettre de realiser quelques tâches lié à TooGoodToGo via API. Vous pouvez reprendre l'exemple et ajouter d'autre route si cela vous interesse. Exposition de l'api en wan possible grâce à la whitelist + sécurité crowdsec
pip install tgtg
from tgtg import TgtgClient
client = TgtgClient(email="<your_email>")
credentials = client.get_credentials()
print(credentials)
Nécessaire pour le fichier de variable d'environnement :)
Pour plus d'aide : https://github.com/ahivert/tgtg-python
Pour cela il suffit d'avoir les fichiers/dossier suivant :
- Dockerfile dans la base du dossier
- .env_fastapi-example à renommer en .env_fastapi
- Dossier app
L'utilisation de mongodb cloud l'offre gratuite est utiliser. (https://cloud.mongodb.com/) Vous pouvez commenter le code concernant la DB ou utiliser un autre fournisseur.
Modifier dans le fichier cron.sh la variable 'NTFY_URL'
Une fois toutes les conditions réuni :
sudo docker build -t local/python-api .
Remplir le fichier env et utiliser le fichier docker-compose.yml comme exemple pour les arguments de lancement.
il suffit de rentrer dans le dossier front-api
cd front-api/
Modifier dans le fichier package.json la ligne proxy par votre url d'api.
"proxy": "https://api.domain.com",
Ensuite il faut build l'image docker
sudo docker build -t local/front-api .
Sur la machine qui héberge crowdsec voici les commandes à insérer :
sudo mkdir /var/log/crowdsec; sudo chown -R $USER:$USER /var/log/crowdsec
sudo mkdir /opt/appdata/crowdsec
sudo docker compose up -d crowdsec
ou
sudo docker compose up -d
Génération de la clé API :
docker exec crowdsec cscli bouncers add traefik-bouncer
Indiquez votre clé à la ligne suivante : CROWDSEC_BOUNCER_API_KEY: #BOUNCER API KEY
Configuration des logs traefik :
sudo nano /opt/appdata/crowdsec/acquis.yaml
filenames:
- /var/log/crowdsec/traefik.log
labels:
type: traefik
---
filenames:
- /var/log/auth.log
labels:
type: syslog
Maitenant faire un compose up ça devrait être bon :)
sudo docker compose up -d
Tableau de bord
Allez sur : https://app.crowdsec.net/
- Création du compte
- Ajouter un "engine"
- Récupérer l'id de l'enrollement pour l'executer dans le conteneur.
sudo docker exec -it crowdsec /bin/bash
cscli console enroll YOURUNIQUEID
Plus de détails ici : https://docs.ibracorp.io/crowdsec/crowdsec/docker-compose/dashboard
Vu sur les alertes :
This code will enable you to perform a few tasks related to TooGoodToGo via API. You can repeat the example and add other routes if you're interested. Api exposure in wan possible thanks to whitelist + crowdsec security
Basic Front with React JS (Display favourite shop and add to mongo db cloud with day to check if the deal is available) Cron script check every 15min if shop if this day is to db, if yes check in tgtg if the quantity is one or more, if yes send you notifications on your mobile with ntfy.
Crowdsec is her for the security, prevent and remediation the hit and dashboard is available in app.crowdsec.com Traefik list is recommend if you hosted api on vps or other public server.
Thx https://github.com/ahivert/tgtg-python for the library
Coming soon full readme structured...