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

4.3 KiB

English | Francais | 中文

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

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

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

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

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

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

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