BusyBox ash rejects `local` outside a function. Both RPCD handlers used `local` directly in the case block, causing "not in a function" errors and silent RPC failures (empty responses). Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| htdocs/luci-static/resources/view/dns-provider | ||
| root/usr | ||
| Makefile | ||
| README.md | ||
luci-app-dns-provider
LuCI web interface for the SecuBox DNS Provider Manager.
Overview
Provides a web UI for managing DNS records via provider APIs (OVH, Gandi, Cloudflare). Two views: Records management and Settings configuration.
Views
Records (dns-provider/records)
- Status bar: provider, zone, enabled state
- Action buttons: Add Record, Sync HAProxy Vhosts, ACME DNS-01, Refresh
- Zone records display (raw provider API output)
- Add Record modal: type, subdomain, target, TTL
- DNS propagation checker (1.1.1.1, 8.8.8.8, 9.9.9.9)
Settings (dns-provider/settings)
- General: enable, provider select, zone
- OVH: endpoint, app_key, app_secret, consumer_key
- Gandi: API key / PAT
- Cloudflare: API token, zone_id
- Test Credentials button
RPCD Methods
| Method | Params | Description |
|---|---|---|
get_config |
— | Config with masked secrets |
list_records |
— | Fetch zone records from provider |
add_record |
type, subdomain, target, ttl | Create DNS record |
remove_record |
type, subdomain | Delete DNS record |
sync_records |
— | Sync HAProxy vhosts to DNS |
verify_record |
fqdn | Check propagation |
test_credentials |
— | Validate API credentials |
acme_dns01 |
domain | Issue cert via DNS-01 |
Files
root/usr/libexec/rpcd/luci.dns-provider RPCD handler
root/usr/share/luci/menu.d/luci-app-dns-provider.json Menu entry
root/usr/share/rpcd/acl.d/luci-app-dns-provider.json ACL permissions
htdocs/.../view/dns-provider/records.js Records view
htdocs/.../view/dns-provider/settings.js Settings view
Dependencies
luci-basesecubox-app-dns-provider