Sonic :: Let’s Encrypt client and ACME library written in Go.
Author: Lego Team
Description: Configuration for Sonic.
Date: 2019-03-03T16:39:46+01:00

# Sonic

Configuration for Sonic.

- Code: `sonic`
- Since: v4.4.0

Here is an example bash command using the Sonic provider:

    SONIC_USER_ID=12345 \
    SONIC_API_KEY=4d6fbf2f9ab0fa11697470918d37625851fc0c51 \
    lego --email you@example.com --dns sonic -d '*.example.com' -d example.com run

## Credentials

Environment Variable Name | Description
--- | ---
`SONIC_API_KEY` | API Key
`SONIC_USER_ID` | User ID

The environment variable names can be suffixed by `_FILE` to reference a file instead of a value. More information here.

## Additional Configuration

Environment Variable Name | Description
--- | ---
`SONIC_HTTP_TIMEOUT` | API request timeout in seconds (Default: 10)
`SONIC_POLLING_INTERVAL` | Time between DNS propagation check in seconds (Default: 2)
`SONIC_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation in seconds (Default: 60)
`SONIC_SEQUENCE_INTERVAL` | Time between sequential requests in seconds (Default: 60)
`SONIC_TTL` | The TTL of the TXT record used for the DNS challenge in seconds (Default: 120)

The environment variable names can be suffixed by `_FILE` to reference a file instead of a value. More information here.

## API keys

The API keys must be generated by calling the `dyndns/api_key` endpoint.

Example:

    $ curl -X POST -H "Content-Type: application/json" --data '{"username":"notarealuser","password":"notarealpassword","hostname":"example.com"}' https://public-api.sonic.net/dyndns/api_key
    {"userid":"12345","apikey":"4d6fbf2f9ab0fa11697470918d37625851fc0c51","result":200,"message":"OK"}

See https://public-api.sonic.net/dyndns/#requesting_an_api_key for additional details.

This `userid` and `apikey` combo allow modifications to any DNS entries connected to the managed domain (hostname).

Hostname should be the toplevel domain managed e.g. `example.com` not `www.example.com`.

## More information

- API documentation