How opnwall/opnsense-repo works
This repository is a collection of OPNsense community plugins, spanning proxy tools, DNS enhancements, DDNS, localization, network utilities, and diagnostics. The clearest end-to-end workflow in the supplied source is the enhanced DDNS plugin: users manage account and settings data through OPNsense controllers and fields, while a daemon runs polling and provider-update logic. Other README-listed plugins are represented as separate capability branches; their sampled files show plugin entry pages, but not enough internal wiring to infer their runtime flows.
Main entry points: DynDNS.php Config validation · poller.py Address poller · account Provider adapters · AccountsController.php Accounts API
Components 31
Dynamic DNS
- DDNS page
src/os-ddclient-opnwall/src/usr/local/opnsense/mvc/app/controllers/OPNsense/DynDNS/IndexController.php - Accounts API
src/os-ddclient-opnwall/src/usr/local/opnsense/mvc/app/controllers/OPNsense/DynDNS/Api/AccountsController.php - Settings API
src/os-ddclient-opnwall/src/usr/local/opnsense/mvc/app/controllers/OPNsense/DynDNS/Api/SettingsController.php - Service API
src/os-ddclient-opnwall/src/usr/local/opnsense/mvc/app/controllers/OPNsense/DynDNS/Api/ServiceController.php - Config validation
src/os-ddclient-opnwall/src/usr/local/opnsense/mvc/app/models/OPNsense/DynDNS/DynDNS.php - Account fields
src/os-ddclient-opnwall/src/usr/local/opnsense/mvc/app/models/OPNsense/DynDNS/FieldTypes/AccountField.php - Service fields
src/os-ddclient-opnwall/src/usr/local/opnsense/mvc/app/models/OPNsense/DynDNS/FieldTypes/ServiceField.php - Check-IP fields
src/os-ddclient-opnwall/src/usr/local/opnsense/mvc/app/models/OPNsense/DynDNS/FieldTypes/CheckipField.php - DDNS widget
src/os-ddclient-opnwall/src/usr/local/opnsense/www/js/widgets/Dyndns.js - DDNS daemon
src/os-ddclient-opnwall/src/usr/local/opnsense/scripts/ddclient/ddclient_opn.py - Address poller
src/os-ddclient-opnwall/src/usr/local/opnsense/scripts/ddclient/lib/poller.py - Address discovery
src/os-ddclient-opnwall/src/usr/local/opnsense/scripts/ddclient/lib/address.py - Provider adapters
src/os-ddclient-opnwall/src/usr/local/opnsense/scripts/ddclient/lib/account - Hetzner DNS API
- DDNS-Go
src/os-ddns-go/src/usr/local/www/services_ddnsgo.php
DNS tools
- Unbound custom settings
src/os-unboundcustom/src/opnsense/mvc/app/controllers/OPNsense/Unboundcustom/GeneralController.php
Proxy tools
- Mihomo proxy
src/os-mihomo/src/usr/local/www/mihomo.php - Mihomo subscriptions
src/os-mihomo/src/usr/local/www/mihomo_sub.php - Mihomo logs
src/os-mihomo/src/usr/local/www/mihomo_logs.php - Unbound setup
src/os-mihomo/src/usr/local/opnsense/scripts/mihomo/setup_unbound.php - sing-box proxy
src/os-sing-box/src/usr/local/www/sing-box.php - sing-box subscriptions
src/os-sing-box/src/usr/local/www/sing-box_sub.php - sing-box logs
src/os-sing-box/src/usr/local/www/sing-box_log.php
Network utilities
- EasyTier VPN
src/os-easytier/src/usr/local/www/easytier.php - Lucky tools
src/os-lucky/src/usr/local/www/lucky.php - Static ARP
src/os-staticarp/src/usr/local/www/services_staticarp.php
Diagnostics and localization
- Speedtest
src/os-speedtest/src/usr/local/www/diagnostics_speedtest.php - pfTop diagnostics
src/os-pftop/src/usr/local/www/diag_pftop.php - ttyd terminal
src/os-ttyd/src/usr/local/www/diag_ttyd.php - Chinese localization
src/os-lang/src/usr/local/www/lang_update.php
Other components
- OPNsense operator
Connections 10
- OPNsense operator → DDNS page: opens
- Accounts API → Config validation: uses model
src/os-ddclient-opnwall/src/usr/local/opnsense/mvc/app/controllers/OPNsense/DynDNS/Api/AccountsController.php - Settings API → Config validation: uses model
src/os-ddclient-opnwall/src/usr/local/opnsense/mvc/app/controllers/OPNsense/DynDNS/Api/SettingsController.php - Service API → Config validation: configures service
src/os-ddclient-opnwall/src/usr/local/opnsense/mvc/app/controllers/OPNsense/DynDNS/Api/ServiceController.php - Account fields → Config validation: extends model fields
src/os-ddclient-opnwall/src/usr/local/opnsense/mvc/app/models/OPNsense/DynDNS/FieldTypes/AccountField.php - Service fields → Config validation: reads backend setting
src/os-ddclient-opnwall/src/usr/local/opnsense/mvc/app/models/OPNsense/DynDNS/FieldTypes/ServiceField.php - Check-IP fields → Config validation: reads backend setting
src/os-ddclient-opnwall/src/usr/local/opnsense/mvc/app/models/OPNsense/DynDNS/FieldTypes/CheckipField.php - DDNS daemon → Address poller: starts poller
src/os-ddclient-opnwall/src/usr/local/opnsense/scripts/ddclient/ddclient_opn.py - Address poller → Provider adapters: loads adapters
src/os-ddclient-opnwall/src/usr/local/opnsense/scripts/ddclient/lib/poller.py - Provider adapters → Hetzner DNS API: updates DNS records
src/os-ddclient-opnwall/src/usr/local/opnsense/scripts/ddclient/lib/account/hetzner.py