secubox-openwrt/package/secubox/secubox-app-dns-provider/README.fr.md
CyberMind-FR ccfb58124c docs: Add trilingual documentation (French and Chinese translations)
Add complete French (fr) and Chinese (zh) translations for all documentation:

- Root files: README, CHANGELOG, SECURITY, BETA-RELEASE
- docs/: All 16 core documentation files
- DOCS/: All 19 deep-dive documents including embedded/ and archive/
- package/secubox/: All 123+ package READMEs
- Misc: secubox-tools/, scripts/, EXAMPLES/, config-backups/, streamlit-apps/

Total: 346 translation files created

Each file includes language switcher links for easy navigation between
English, French, and Chinese versions.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-20 10:00:18 +01:00

121 lines
4.3 KiB
Markdown

[English](README.md) | Francais | [中文](README.zh.md)
# secubox-app-dns-provider
Gestion programmatique des enregistrements DNS via les APIs REST des fournisseurs. Fait partie de l'ecosysteme SecuBox.
## Presentation
Gere les zones DNS via les APIs OVH, Gandi et Cloudflare. Fournit un outil CLI (`dnsctl`) pour les operations CRUD sur les enregistrements, la synchronisation des vhosts HAProxy, la verification de la propagation DNS et l'emission de certificats ACME DNS-01.
## Architecture
```
dnsctl (CLI)
|-- load_provider() -> sources /usr/lib/secubox/dns/{provider}.sh
|-- cmd_list/add/rm -> delegue a dns_list/dns_add/dns_rm
|-- cmd_sync -> itere sur les vhosts UCI HAProxy -> dns_add par domaine
|-- cmd_verify -> nslookup sur 1.1.1.1, 8.8.8.8, 9.9.9.9
+-- cmd_acme_dns01 -> exporte les variables d'env du fournisseur -> acme.sh --dns
```
## Adaptateurs de Fournisseurs
Chaque adaptateur dans `/usr/lib/secubox/dns/` implemente :
| Fonction | Description |
|---|---|
| `dns_list(zone)` | Lister tous les enregistrements de la zone |
| `dns_add(zone, type, subdomain, target, ttl)` | Creer un enregistrement |
| `dns_rm(zone, type, subdomain)` | Supprimer un enregistrement |
| `dns_verify(fqdn)` | Verifier la resolution |
| `dns_test_credentials()` | Valider les cles API |
### Fournisseurs Supportes
- **OVH** -- API v1 signee HMAC-SHA1 (app_key + app_secret + consumer_key)
- **Gandi** -- LiveDNS v5 avec token Bearer
- **Cloudflare** -- API v4 avec token Bearer + zone_id
## Configuration UCI
```
/etc/config/dns-provider
config dns_provider 'main' -> enabled, provider, zone
config ovh 'ovh' -> endpoint, app_key, app_secret, consumer_key
config gandi 'gandi' -> api_key
config cloudflare 'cloudflare' -> api_token, zone_id
```
## Utilisation CLI
### Operations de Base
```bash
dnsctl status # Afficher le statut de configuration
dnsctl test # Verifier les credentials API
dnsctl list # Lister les enregistrements de la zone
dnsctl add A myservice 1.2.3.4 # Creer un enregistrement A
dnsctl add CNAME www mycdn.net # Creer un CNAME
dnsctl update A myservice 5.6.7.8 # Mettre a jour un enregistrement existant
dnsctl get A www # Obtenir la valeur d'un enregistrement
dnsctl rm A myservice # Supprimer un enregistrement
dnsctl domains # Lister tous les domaines du compte
```
### Synchronisation HAProxy
```bash
dnsctl sync # Synchroniser les vhosts HAProxy vers les enregistrements A DNS
dnsctl verify myservice.example.com # Verifier la propagation (1.1.1.1, 8.8.8.8, 9.9.9.9)
```
### Generateur de Sous-domaines
```bash
dnsctl generate gitea # Creer automatiquement gitea.zone avec l'IP publique
dnsctl generate api prod # Creer prod-api.zone
dnsctl suggest web # Afficher les suggestions de noms de sous-domaines
dnsctl suggest mail # Suggestions : mail, smtp, imap, webmail, mx
dnsctl suggest dev # Suggestions : git, dev, staging, test, ci
```
### DynDNS
```bash
dnsctl dyndns # Mettre a jour l'enregistrement A racine avec l'IP WAN
dnsctl dyndns api 300 # Mettre a jour api.zone avec un TTL de 5min
```
### Configuration DNS Mail
```bash
dnsctl mail-setup # Creer les enregistrements MX, SPF, DMARC
dnsctl mail-setup mail 10 # Nom d'hote et priorite personnalises
dnsctl dkim-add mail '<public-key>' # Ajouter un enregistrement TXT DKIM
```
### Certificats SSL
```bash
dnsctl acme-dns01 example.com # Emettre un certificat via challenge DNS-01
dnsctl acme-dns01 '*.example.com' # Certificat wildcard via DNS-01
```
## Dependances
- `curl` -- Client HTTP pour les appels API
- `openssl-util` -- Signature HMAC-SHA1 (OVH)
- `jsonfilter` -- Parsing JSON (natif OpenWrt)
- `acme.sh` -- Emission de certificats (optionnel, pour DNS-01)
## Fichiers
```
/etc/config/dns-provider Configuration UCI
/usr/sbin/dnsctl Controleur CLI
/usr/lib/secubox/dns/ovh.sh Adaptateur OVH
/usr/lib/secubox/dns/gandi.sh Adaptateur Gandi
/usr/lib/secubox/dns/cloudflare.sh Adaptateur Cloudflare
```