This package provides an OCI DNS provider module for Caddy backed by github.com/Djelibeybi/libdns-oraclecloud.
dns.providers.oraclecloud
Build Caddy with:
xcaddy build --with github.com/Djelibeybi/caddy-dns-oraclecloudThis module currently requires Go 1.25 or newer because the pinned Caddy and libdns-oraclecloud versions both require it.
The wrapper exposes the underlying libdns-oraclecloud provider fields directly. Supported auth modes are:
autoor emptyapi_keyconfig_fileenvironmentinstance_principal
auto is the default and follows the provider's own precedence order:
- Explicit API key fields on the module
- OCI config file credentials
OCI_CLI_*environment variables
For private zones accessed by name, Oracle Cloud requires both scope PRIVATE and view_id <ocid>.
{
"module": "acme",
"challenges": {
"dns": {
"provider": {
"name": "oraclecloud",
"auth": "config_file",
"config_file": "{env.OCI_CLI_CONFIG_FILE}",
"config_profile": "{env.OCI_CLI_PROFILE}",
"region": "{env.OCI_CLI_REGION}"
}
}
}
}Using an OCI config file:
tls {
dns oraclecloud {
auth config_file
config_file {env.OCI_CLI_CONFIG_FILE}
config_profile {env.OCI_CLI_PROFILE}
region {env.OCI_CLI_REGION}
}
}Using direct API key fields:
tls {
dns oraclecloud {
auth api_key
tenancy_ocid {env.OCI_CLI_TENANCY}
user_ocid {env.OCI_CLI_USER}
fingerprint {env.OCI_CLI_FINGERPRINT}
private_key_path {env.OCI_CLI_KEY_FILE}
private_key_passphrase {env.OCI_CLI_PASSPHRASE}
region {env.OCI_CLI_REGION}
}
}Using a private zone by name:
tls {
dns oraclecloud {
auth config_file
config_file {env.OCI_CLI_CONFIG_FILE}
config_profile DEFAULT
scope PRIVATE
view_id ocid1.dnsview.oc1..exampleuniqueID
}
}oraclecloud [<auth_mode>] {
auth <auth_mode>
config_file <path>
config_profile <profile>
private_key <pem>
private_key_path <path>
private_key_passphrase <passphrase>
tenancy_ocid <ocid>
user_ocid <ocid>
fingerprint <fingerprint>
region <region>
scope <GLOBAL|PRIVATE>
view_id <ocid>
compartment_id <ocid>
}
All string fields support Caddy placeholders such as {env.OCI_CLI_REGION}.
compartment_idis only needed if you use the underlying provider'sListZonescapability; it is not required for standard ACME DNS challenge flows.- For authentication details and provider behavior, see the
libdns-oraclecloudREADME.
This repository uses Release Please with conventional commits to automate changelog entries, release PRs, Git tags, and GitHub Releases.
fix:commits produce patch releasesfeat:commits produce minor releasesfeat!:or commits with aBREAKING CHANGE:footer produce major releases