feat(alerte-depot): Add SecuBox Users HTTP authentication
- Fix auth for Streamlit container (no ubus access) - Use HTTP JSON-RPC to /ubus endpoint for authentication - Add ALERTE.DEPOT app source to repo - Update HISTORY.md with VoIP and auth fixes Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
701558f611
commit
a1a01b362b
@ -3669,3 +3669,30 @@ git checkout HEAD -- index.html
|
|||||||
- `/srv/streamlit/apps/alerte_depot/app.py`: Full whistleblower platform
|
- `/srv/streamlit/apps/alerte_depot/app.py`: Full whistleblower platform
|
||||||
- `/srv/secubox/mesh/alertes-chain.json`: Audit blockchain
|
- `/srv/secubox/mesh/alertes-chain.json`: Audit blockchain
|
||||||
- `/usr/sbin/alerte-depot-cron`: Deadline monitor
|
- `/usr/sbin/alerte-depot-cron`: Deadline monitor
|
||||||
|
|
||||||
|
37. **VoIP Voice Recorder Configuration (2026-02-25)**
|
||||||
|
- **Voice Recorder Mode:**
|
||||||
|
- All incoming calls sent directly to voicemail
|
||||||
|
- Automatic email notification with WAV attachment
|
||||||
|
- OVH SIP trunk integration for official number
|
||||||
|
- **Email Integration:**
|
||||||
|
- Created voicemail@secubox.in account in mailserver
|
||||||
|
- Configured msmtp in VoIP container
|
||||||
|
- Email subject template with caller ID
|
||||||
|
- **Files:**
|
||||||
|
- `/srv/lxc/voip/rootfs/etc/asterisk/voicemail.conf`
|
||||||
|
- `/srv/lxc/voip/rootfs/etc/asterisk/extensions.conf`
|
||||||
|
- `/srv/lxc/voip/rootfs/etc/msmtprc`
|
||||||
|
|
||||||
|
38. **ALERTE.DEPOT Authentication Fix (2026-02-25)**
|
||||||
|
- **Container HTTP Auth:**
|
||||||
|
- Streamlit container cannot access host `ubus` directly
|
||||||
|
- Changed authenticate_admin() from subprocess to HTTP API
|
||||||
|
- Uses http://127.0.0.1/ubus JSON-RPC endpoint
|
||||||
|
- **SecuBox Users Integration:**
|
||||||
|
- Admin login validates via luci.secubox-users RPCD
|
||||||
|
- Session tokens stored in /tmp/secubox-sessions/
|
||||||
|
- 24-hour token expiry
|
||||||
|
- **Test Credentials:**
|
||||||
|
- gk2 / Gk2Test2026
|
||||||
|
- ragondin / Secubox@2026
|
||||||
|
|||||||
@ -0,0 +1,107 @@
|
|||||||
|
# 🚨 ALERTE.DEPOT — Formulaire Citoyen de Signalement
|
||||||
|
|
||||||
|
> Dispositif KISS de dépôt d'alertes pour non-professionnels
|
||||||
|
> Conforme **Loi Waserman n°2022-401** · **Directive UE 2019/1937**
|
||||||
|
> Intégration **Gitea** native · QR Code d'attestation · RIB SEPA
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚀 Installation rapide
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Cloner / télécharger le projet
|
||||||
|
cd alerte_streamlit
|
||||||
|
|
||||||
|
# Installer les dépendances
|
||||||
|
pip install -r requirements.txt
|
||||||
|
|
||||||
|
# Configurer les secrets Gitea
|
||||||
|
cp .streamlit/secrets.toml.example .streamlit/secrets.toml
|
||||||
|
nano .streamlit/secrets.toml # renseigner vos valeurs
|
||||||
|
|
||||||
|
# Lancer l'application
|
||||||
|
streamlit run app.py
|
||||||
|
```
|
||||||
|
|
||||||
|
L'application sera disponible sur `http://localhost:8501`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⚙️ Configuration Gitea
|
||||||
|
|
||||||
|
### Créer un token API dans Gitea
|
||||||
|
1. Connectez-vous à votre instance Gitea
|
||||||
|
2. `Paramètres` → `Applications` → `Générer un token`
|
||||||
|
3. Permissions nécessaires : **Issues** (write) + **Contents** (write)
|
||||||
|
4. Copiez le token dans `.streamlit/secrets.toml`
|
||||||
|
|
||||||
|
### Créer le dépôt récepteur
|
||||||
|
```
|
||||||
|
gitea.votredomaine.fr/<owner>/alertes
|
||||||
|
```
|
||||||
|
Le dépôt peut être **privé** — seul l'accès API est nécessaire.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🗂️ Structure des signalements dans Gitea
|
||||||
|
|
||||||
|
Chaque signalement crée :
|
||||||
|
- **Une Issue** : titre = `🚨 [type] gravité — TOKEN`
|
||||||
|
- **Un fichier Markdown** : `signalements/YYYY/MM/TOKEN.md` (optionnel)
|
||||||
|
- **Un label** : `🚨 alerte` (créé automatiquement)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📋 Fonctionnalités
|
||||||
|
|
||||||
|
| Fonctionnalité | Détail |
|
||||||
|
|---|---|
|
||||||
|
| 🕵️ **Anonymat** | 3 modes : anonyme / pseudo / identité protégée |
|
||||||
|
| 🎲 **Pseudonyme** | Génération aléatoire ou personnalisé |
|
||||||
|
| 📂 **8 catégories** | Fraude, Santé, Environnement, RGPD, Travail... |
|
||||||
|
| ⚡ **4 niveaux de gravité** | Faible → Critique |
|
||||||
|
| 📡 **5 canaux légaux** | Interne, AFA, DDD, Parquet, Public |
|
||||||
|
| 🔑 **Token de suivi** | Généré et téléchargeable en QR code |
|
||||||
|
| 📱 **QR Attestation** | PNG téléchargeable, encodage ECC niveau H |
|
||||||
|
| 🏦 **QR SEPA EPC** | Virement pré-rempli, montant sélectionnable |
|
||||||
|
| 📄 **Export Markdown** | Signalement complet téléchargeable |
|
||||||
|
| 🌿 **Gitea** | Issues + fichiers .md dans le dépôt |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔒 Cadre légal intégré
|
||||||
|
|
||||||
|
- **Loi Sapin II** (2016) : fondements du dispositif
|
||||||
|
- **Directive UE 2019/1937** : délais (7j accusé, 3 mois retour)
|
||||||
|
- **Loi Waserman n°2022-401** (vigueur 01/09/2022) :
|
||||||
|
- Libre choix canal interne/externe
|
||||||
|
- Suppression désintéressement obligatoire
|
||||||
|
- Extension aux personnes morales (facilitateurs)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🏦 RIB — Soutien participatif
|
||||||
|
|
||||||
|
```
|
||||||
|
Bénéficiaire : Gérald Kerma
|
||||||
|
IBAN : FR76 2823 3000 0100 4454 7823 788
|
||||||
|
BIC : REVOFRP2
|
||||||
|
Banque : Revolut Bank UAB — 10 av. Kléber, 75116 Paris
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🐛 Déploiement production
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Avec Docker
|
||||||
|
docker build -t alerte-depot .
|
||||||
|
docker run -p 8501:8501 -v $(pwd)/.streamlit:/app/.streamlit alerte-depot
|
||||||
|
|
||||||
|
# Avec systemd (Linux)
|
||||||
|
# Voir alerte.service
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*CyberMind.FR — Usage éducatif et démonstratif*
|
||||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,5 @@
|
|||||||
|
streamlit>=1.35.0
|
||||||
|
requests>=2.31.0
|
||||||
|
qrcode[pil]>=7.4.2
|
||||||
|
Pillow>=10.0.0
|
||||||
|
python-dotenv>=1.0.0
|
||||||
Loading…
Reference in New Issue
Block a user