diff --git a/README.md b/README.md index 2a0794c..1d0dd04 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,12 @@ # realDynDNS + RealDynDNS aims to be a replacement to "classical" dynDNS solutions that offer a subdomain. Instead realDynDns actually changes your DNS entries. This service requires your DNS provider to expose an API that allows your DNS entries to be changed. A service that provides your current external IP is also required. ## Configuration + The configuration is done via a YAML file called `config.yaml`. The following example shows the configuration for a domain with two subdomains. Configuration of the IP provider and the DNS provider is mandatory. @@ -35,40 +37,51 @@ domains: - "@" - www check_interval: 0 0 0/6 * * * * +mode: Scheduled ``` The config file is expected to be in the same directory as the binary and called `config.yaml`. For the OCR image, the root directory is `/app`. ## DNS Providers + The DNS provider abstracts the API of your DNS provider. Currently the following providers are supported: ### IONOS + IONOS requires two configuration parameters. You can get your API key [here](https://developer.hosting.ionos.com/docs/getstarted). + ```yaml api_key: base_url: https://api.hosting.ionos.com/dns ``` ## External IP Providers + The external IP provider is used to get your current external IP. Currently the following providers are supported: ### Plain + Any provider that returns your IP as plain text can be used. The following configuration is required: + ```yaml url: ``` Examples for providers are: + - https://ifconfig.me - https://api.ipify.org ## Notification Providers + The notification provider is used to send notifications whena IP address changes and a DNS record is updated. ### Console + The console notification provider is used to print the notification to the console. This is the default notification provider. ### Gotify + The Gotify notification provider is used to send notifications to a Gotify server. ```yaml @@ -77,4 +90,20 @@ token: priority: 0 ``` -The priority must be between 0 and 4. \ No newline at end of file +The priority must be between 0 and 4. + +## Mode Selection + +Two modes are available: + +### RunOnce + +The RunOnce mode is used to run the application once and exit. This is useful when providing your own external scheduler, like cron. + +Set the `mode` to `RunOnce`. + +### Scheduled + +The Scheduled mode is used to run the application in a scheduled interval. + +Set the `mode` to `Scheduled` and provide a cron expression for the `check_interval`.