mirror of
https://github.com/alexbelgium/hassio-addons.git
synced 2026-01-09 17:31:03 +01:00
203 lines
7.8 KiB
Markdown
203 lines
7.8 KiB
Markdown
# Home assistant add-on: Inadyn
|
|
|
|
|
|
I maintain this and other Home Assistant add-ons in my free time: keeping up with upstream changes, HA changes, and testing on real hardware takes a lot of time (and some money). I use around 5-10 of my >110 addons so regularly I install test machines (and purchase some test services such as vpn) that I don't use myself to troubleshoot and improve the addons
|
|
|
|
If this add-on saves you time or makes your setup easier, I would be very grateful for your support!
|
|
|
|
[![Buy me a coffee][donation-badge]](https://www.buymeacoffee.com/alexbelgium)
|
|
[![Donate via PayPal][paypal-badge]](https://www.paypal.com/donate/?hosted_button_id=DZFULJZTP3UQA)
|
|
|
|
## Addon informations
|
|
|
|

|
|

|
|

|
|
|
|
[](https://www.codacy.com/gh/alexbelgium/hassio-addons/dashboard?utm_source=github.com&utm_medium=referral&utm_content=alexbelgium/hassio-addons&utm_campaign=Badge_Grade)
|
|
[](https://github.com/alexbelgium/hassio-addons/actions/workflows/weekly-supelinter.yaml)
|
|
[](https://github.com/alexbelgium/hassio-addons/actions/workflows/onpush_builder.yaml)
|
|
|
|
[donation-badge]: https://img.shields.io/badge/Buy%20me%20a%20coffee-%23d32f2f?logo=buy-me-a-coffee&style=flat&logoColor=white
|
|
[paypal-badge]: https://img.shields.io/badge/Donate%20via%20PayPal-0070BA?logo=paypal&style=flat&logoColor=white
|
|
|
|
_Thanks to everyone having starred my repo! To star it click on the image below, then it will be on top right. Thanks!_
|
|
|
|
[](https://github.com/alexbelgium/hassio-addons/stargazers)
|
|
|
|

|
|
|
|
## About
|
|
|
|
[Inadyn](https://github.com/troglobit/inadyn), or In-a-Dyn, is a small and simple Dynamic DNS, DDNS, client with HTTPS support. Commonly available in many GNU/Linux distributions, used in off the shelf routers and Internet gateways to automate the task of keeping your Internet name in sync with your public¹ IP address. It can also be used in installations with redundant (backup) connections to the Internet.
|
|
Based on https://hub.docker.com/r/troglobit/inadyn
|
|
Project house : https://github.com/troglobit/inadyn
|
|
Some code borrowed from https://github.com/nalipaz/hassio-addons
|
|
|
|
## Installation
|
|
|
|
The installation of this add-on is pretty straightforward and not different in
|
|
comparison to installing any other Hass.io add-on.
|
|
|
|
1. [Add my Hass.io add-ons repository][repository] to your Hass.io instance.
|
|
1. Install this add-on.
|
|
1. Click the `Save` button to store your configuration.
|
|
1. Start the add-on.
|
|
1. Check the logs of the add-on to see if everything went well.
|
|
1. Carefully configure the add-on to your preferences, see the official documentation for for that.
|
|
|
|
## Configuration
|
|
|
|
Use the add-on `env_vars` option to pass extra environment variables (uppercase or lowercase names). See https://github.com/alexbelgium/hassio-addons/wiki/Add-Environment-variables-to-your-Addon-2 for details.
|
|
|
|
This addon has no web interface - all configuration is done through addon options.
|
|
For detailed configuration information, see the [official documentation](https://github.com/troglobit/inadyn).
|
|
|
|
### Options
|
|
|
|
| Option | Type | Default | Description |
|
|
|--------|------|---------|-------------|
|
|
| `verify_address` | bool | | Verify the IP address with check IP service |
|
|
| `fake_address` | bool | | Use fake address for testing |
|
|
| `allow_ipv6` | bool | | Enable IPv6 support |
|
|
| `iface` | str | | Network interface to use (e.g., `eth0`) |
|
|
| `iterations` | int | | Number of iterations (0 = infinite) |
|
|
| `period` | int | `300` | Update period in seconds |
|
|
| `forced_update` | int | | Forced update interval in seconds |
|
|
| `secure_ssl` | bool | | Enable secure SSL verification |
|
|
| `providers` | list | | List of DDNS provider configurations |
|
|
|
|
### Provider Configuration
|
|
|
|
Each provider in the `providers` list supports these options:
|
|
|
|
| Option | Type | Description |
|
|
|--------|------|-------------|
|
|
| `provider` | str | Provider name or custom identifier |
|
|
| `custom_provider` | bool | Whether this is a custom provider |
|
|
| `username` | str | Username or token for authentication |
|
|
| `password` | str | Password or API key |
|
|
| `hostname` | str | Domain/hostname to update |
|
|
| `ssl` | bool | Use SSL for updates |
|
|
| `ddns_server` | str | Custom DDNS server |
|
|
| `ddns_path` | str | Custom update path |
|
|
| `checkip_server` | str | Custom IP check server |
|
|
| `checkip_path` | str | Custom IP check path |
|
|
| `checkip_ssl` | bool | Use SSL for IP checking |
|
|
| `append_myip` | bool | Append IP to request |
|
|
|
|
### Example Configurations
|
|
|
|
```json
|
|
{
|
|
"verify_address": false,
|
|
"fake_address": false,
|
|
"allow_ipv6": true,
|
|
"iface": "eth0",
|
|
"iterations": 0,
|
|
"period": 300,
|
|
"forced_update": 300,
|
|
"secure_ssl": true,
|
|
"providers": [
|
|
{
|
|
"provider": "providerslug",
|
|
"custom_provider": false,
|
|
"username": "yourusername",
|
|
"password": "yourpassword_or_token",
|
|
"ssl": true,
|
|
"hostname": "dynamic-subdomain.example.com",
|
|
"checkip_ssl": false,
|
|
"checkip_server": "api.example.com",
|
|
"checkip_command": "/sbin/ifconfig eth0 | grep 'inet6 addr'",
|
|
"checkip_path": "/",
|
|
"user_agent": "Mozilla/5.0",
|
|
"ddns_server": "ddns.example.com",
|
|
"ddns_path": "",
|
|
"append_myip": false
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
You should not fill in all of these, only use what is necessary. A typical example would look like:
|
|
|
|
```json
|
|
{
|
|
{
|
|
"provider": "duckdns",
|
|
"username": "your-token",
|
|
"hostname": "sub.duckdns.org"
|
|
}
|
|
}
|
|
```
|
|
|
|
or:
|
|
|
|
```json
|
|
{
|
|
"providers": [
|
|
{
|
|
"provider": "someprovider",
|
|
"username": "username",
|
|
"password": "password",
|
|
"hostname": "your.domain.com"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
for a custom provider that is not supported by inadyn you can do:
|
|
|
|
```json
|
|
{
|
|
"providers": [
|
|
{
|
|
"provider": "arbitraryname",
|
|
"username": "username",
|
|
"password": "password",
|
|
"hostname": "your.domain.com",
|
|
"ddns_server": "api.cp.easydns.com",
|
|
"ddns_path": "/somescript.php?hostname=%h&myip=%i",
|
|
"custom_provider": true
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
the tokens in ddns_path are outlined in the `inadyn.conf(5)` man page.
|
|
|
|
### Multiple subdomains with same provider
|
|
|
|
Related to https://github.com/troglobit/inadyn#example
|
|
|
|
If you want use this add-on with several subdomains with the same provider, you have to enumerate domains like:
|
|
|
|
```json
|
|
{
|
|
"providers": [
|
|
{
|
|
"hostname": "first.mydomain.dev",
|
|
"provider": "domains.google.com:1",
|
|
"username": "xxxxxxxxxxxxxxxx",
|
|
"password": "xxxxxxxxxxxxxxxx"
|
|
},
|
|
{
|
|
"hostname": "second.mydomain.dev",
|
|
"provider": "domains.google.com:2",
|
|
"username": "xxxxxxxxxxxxxxxx",
|
|
"password": "xxxxxxxxxxxxxxxx"
|
|
},
|
|
{
|
|
"hostname": "another.mydomain.dev",
|
|
"provider": "domains.google.com:3",
|
|
"username": "xxxxxxxxxxxxxxxx",
|
|
"password": "xxxxxxxxxxxxxxxx"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
[repository]: https://github.com/alexbelgium/hassio-addons
|
|
|
|
|