b5099c8d927c6202bba4c282f2f34be1c5f3ccc6
Phone Refurb - Gestion de stock de téléphones
Outil de gestion pour le reconditionnement de téléphones contre l'obsolescence programmée.
Installation
cd ~/phone-refurb
python3 -m venv venv
./venv/bin/pip install flask
Lancer la Web App
# Manuel
./venv/bin/python web-app.py
# Via systemd (recommandé)
sudo cp phone-refurb.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable phone-refurb
sudo systemctl start phone-refurb
Accès
- LAN: http://192.168.1.149:5050
- Mesh KAWA: http://100.64.0.4:5050
CLI - phone-cli
Commandes principales
# Lister les téléphones
./phone-cli list [status]
# Ajouter un téléphone
./phone-cli add <brand> <model> <model_code> [imei] [serial] [status] [notes]
# Détails d'un téléphone
./phone-cli info <phone_id>
# Ajouter une action
./phone-cli action <phone_id> <action_type> [status] [notes]
# Changer le statut
./phone-cli status <phone_id> <status>
# Lister les ROMs
./phone-cli roms [device_code]
# Rechercher
./phone-cli search <query>
Exemples
# Ajouter un Galaxy S7
./phone-cli add Samsung "Galaxy S7" SM-G930F
# Ajouter avec IMEI et notes
./phone-cli add Samsung "Galaxy J5" SM-J510FN 352154091234567 51c1e4fc stock "Écran fêlé"
# Lister les téléphones en stock
./phone-cli list stock
# Voir les détails du téléphone #1
./phone-cli info 1
# Enregistrer une action
./phone-cli action 1 flash_rom success "LineageOS 18.1 installée"
# Enregistrer un échec
./phone-cli action 1 unlock_bootloader failed "Bootloader bloqué par opérateur"
# Marquer comme prêt
./phone-cli status 1 ready
# Marquer comme vendu
./phone-cli status 1 sold
# Voir les ROMs pour j5xnlte
./phone-cli roms j5xnlte
# Rechercher
./phone-cli search samsung
./phone-cli search j5
Statuts
| Statut | Description |
|---|---|
| stock | En stock, pas encore traité |
| wip | En cours de traitement |
| paused | Traitement suspendu |
| ready | Prêt à être utilisé/vendu |
| sold | Vendu |
Types d'actions
| Action | Description |
|---|---|
| backup | Sauvegarde des données |
| unlock_bootloader | Déverrouillage du bootloader |
| flash_recovery | Flash du recovery (TWRP, etc.) |
| flash_rom | Installation d'une ROM |
| root | Root du téléphone |
| test | Tests fonctionnels |
| repair | Réparation matérielle |
| sell | Vente |
| other | Autre action |
Base de données
SQLite: phones.db
Tables
- phones — Téléphones (marque, modèle, IMEI, statut)
- phone_specs — Caractéristiques (CPU, RAM, stockage)
- software_state — État logiciel (OS, kernel, root)
- roms — ROMs disponibles
- actions — Historique des actions
Requêtes utiles
-- Voir tous les téléphones avec leur OS
SELECT * FROM phone_summary;
-- Téléphones rootés
SELECT * FROM phone_summary WHERE root = 1;
-- Téléphones par marque
SELECT brand, COUNT(*) FROM phones GROUP BY brand;
-- Actions récentes
SELECT p.brand, p.model, a.action_type, a.action_date, a.status
FROM actions a JOIN phones p ON a.phone_id = p.id
ORDER BY a.action_date DESC LIMIT 20;
-- Taux de succès
SELECT status, COUNT(*) as count FROM actions GROUP BY status;
Structure des fichiers
~/phone-refurb/
├── phones.db # Base SQLite
├── web-app.py # Web app Flask
├── phone-cli # CLI
├── venv/ # Environnement Python
├── web-app.log # Logs
└── README.md # Cette doc
Intégration KAWA
La web app est accessible depuis n'importe quel nœud du mesh via:
http://kawaAgent1:5050(si DNS mesh configuré)http://100.64.0.4:5050(IP mesh)
Dernière mise à jour: 2026-04-12
Description
Languages
Python
100%