Setup serveur pour l’API REST (Flask) + variables .env #17

Closed
opened 2026-02-08 21:56:28 +00:00 by KIRITO_KMA · 7 comments
KIRITO_KMA commented 2026-02-08 21:56:28 +00:00 (Migrated from gitlab.com)

📋 Contexte

Une API REST Flask a été ajoutée au bot Kuby (démarrée automatiquement au
lancement du bot via un thread).

Elle expose des endpoints HTTP :

  • GET /api/status
  • GET /api/user/<id>
  • GET /api/guilds
  • GET /api/guild/<id>

🎯 Objectif de cette issue

  • Prévenir qu'il faut préparer le serveur (réseau + dépendances) pour utiliser Flask
  • Lister les variables .env nécessaires (noms exacts) pour finaliser/configurer le déploiement

🆕 Ce qui a été ajouté côté code

Dépendances :

  • flask
  • flask-cors

Démarrage API : automatique au boot du bot (MyBot.setup_hook)

Fichiers principaux :
src/api/app.py
src/api/routes.py
src/api/config.py
.env.example


⚙️ Actions à faire côté serveur (obligatoire)

1. Réseau / Ports

  • Vérifier que le port API est accessible (par défaut 5000)
  • Ouvrir le port dans le firewall si l'API doit être accessible depuis l'extérieur
  • Confirmer si l'API doit écouter sur :
    • 127.0.0.1 → local uniquement
    • 0.0.0.0 → externe

2. Dépendances Python

  • Installer / mettre à jour les dépendances :
    pip install -r requirements.txt
    
    

Confirmer la version Python dispo sur le serveur (idéalement >= 3.10)

  1. Reverse proxy (recommandé si prod)
    Si exposition publique :

Mettre un reverse proxy (Nginx / Apache)
HTTPS (certificat)
Optionnel : auth / restriction IP (car l'API est ouverte)

🔐 Variables .env requises (noms exacts)
Discord
DISCORD_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxx
APPLICATION_ID=123456789012345678
API Flask
API_HOST=127.0.0.1
API_PORT=5000
API_DEBUG=False
API_SECRET_KEY=change_me

Questions / Infos manquantes pour finaliser le déploiement
Copier le tableau

Variable
Question

API_HOST
Laisser 127.0.0.1 (local) ou passer à 0.0.0.0 (réseau) ?

API_PORT
Le port 5000 est-il OK ou faut-il un autre port ?

API_SECRET_KEY
Quelle valeur utiliser en production ? (à définir, non committée)

Endpoints à tester après déploiement

Statut de l'API

curl http://127.0.0.1:5000/api/status

Liste des serveurs

curl http://127.0.0.1:5000/api/guilds

Infos d'un utilisateur

curl http://127.0.0.1:5000/api/user/123456789012345678

Infos d'un serveur

curl http://127.0.0.1:5000/api/guild/123456789012345678

⚠️ Notes importantes (sécurité)

L'API n'a pas d'authentification pour l'instant.
Si l'API est exposée publiquement :

Restreindre par IP
Ajouter un token / API key
Mettre derrière un reverse proxy avec auth

PS: c'est sur ma branche dev-kma, pour tester en local clone le site web et va sur cette page localhost/website/page/test2.html sa devrait afficher les serveur et l'utilisateur de ton choix.

## 📋 Contexte Une API REST Flask a été ajoutée au bot Kuby (démarrée automatiquement au lancement du bot via un thread). Elle expose des endpoints HTTP : - `GET /api/status` - `GET /api/user/<id>` - `GET /api/guilds` - `GET /api/guild/<id>` --- ## 🎯 Objectif de cette issue - [ ] Prévenir qu'il faut préparer le serveur (réseau + dépendances) pour utiliser Flask - [ ] Lister les variables `.env` nécessaires (noms exacts) pour finaliser/configurer le déploiement --- ## 🆕 Ce qui a été ajouté côté code **Dépendances :** - `flask` - `flask-cors` **Démarrage API :** automatique au boot du bot (`MyBot.setup_hook`) **Fichiers principaux :** src/api/app.py src/api/routes.py src/api/config.py .env.example --- ## ⚙️ Actions à faire côté serveur (obligatoire) ### 1. Réseau / Ports - [ ] Vérifier que le port API est accessible (par défaut `5000`) - [ ] Ouvrir le port dans le firewall si l'API doit être accessible depuis l'extérieur - [ ] Confirmer si l'API doit écouter sur : - `127.0.0.1` → local uniquement - `0.0.0.0` → externe ### 2. Dépendances Python - [ ] Installer / mettre à jour les dépendances : ```bash pip install -r requirements.txt Confirmer la version Python dispo sur le serveur (idéalement >= 3.10) 3. Reverse proxy (recommandé si prod) Si exposition publique : Mettre un reverse proxy (Nginx / Apache) HTTPS (certificat) Optionnel : auth / restriction IP (car l'API est ouverte) 🔐 Variables .env requises (noms exacts) Discord DISCORD_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxx APPLICATION_ID=123456789012345678 API Flask API_HOST=127.0.0.1 API_PORT=5000 API_DEBUG=False API_SECRET_KEY=change_me ❓ Questions / Infos manquantes pour finaliser le déploiement Copier le tableau Variable Question API_HOST Laisser 127.0.0.1 (local) ou passer à 0.0.0.0 (réseau) ? API_PORT Le port 5000 est-il OK ou faut-il un autre port ? API_SECRET_KEY Quelle valeur utiliser en production ? (à définir, non committée) ✅ Endpoints à tester après déploiement #### Statut de l'API curl http://127.0.0.1:5000/api/status #### Liste des serveurs curl http://127.0.0.1:5000/api/guilds #### Infos d'un utilisateur curl http://127.0.0.1:5000/api/user/123456789012345678 #### Infos d'un serveur curl http://127.0.0.1:5000/api/guild/123456789012345678 ⚠️ Notes importantes (sécurité) L'API n'a pas d'authentification pour l'instant. Si l'API est exposée publiquement : Restreindre par IP Ajouter un token / API key Mettre derrière un reverse proxy avec auth **PS: c'est sur ma branche dev-kma, pour tester en local clone le site web et va sur cette page localhost/website/page/test2.html sa devrait afficher les serveur et l'utilisateur de ton choix.**
KIRITO_KMA commented 2026-02-08 21:56:29 +00:00 (Migrated from gitlab.com)

set status to To do

set status to **To do**
KIRITO_KMA commented 2026-02-08 21:56:29 +00:00 (Migrated from gitlab.com)

assigned to @Gameur.py

assigned to @Gameur.py
Gameur.py commented 2026-02-08 22:07:41 +00:00 (Migrated from gitlab.com)

added time estimate of 3h

added time estimate of 3h
Gameur.py commented 2026-02-17 13:58:10 +00:00 (Migrated from gitlab.com)

set status to Done

set status to **Done**
Gameur.py (Migrated from gitlab.com) closed this issue 2026-02-17 13:58:11 +00:00
Gameur.py commented 2026-02-20 13:18:42 +00:00 (Migrated from gitlab.com)

set status to Won't do

set status to **Won't do**
Gameur.py commented 2026-03-21 15:30:36 +00:00 (Migrated from gitlab.com)

set status to To do

set status to **To do**
Gameur.py (Migrated from gitlab.com) reopened this issue 2026-03-21 15:30:36 +00:00
Gameur.py commented 2026-05-16 15:46:43 +00:00 (Migrated from gitlab.com)

set status to Done

set status to **Done**
Gameur.py (Migrated from gitlab.com) closed this issue 2026-05-16 15:46:43 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Gameur/Kuby#17
No description provided.