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>
4.3 KiB
4.3 KiB
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 APIopenssl-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