1
0
mirror of https://github.com/EV21/dynb.git synced 2025-12-26 16:39:32 +01:00

cosmetic: 🎨 lint README.md

This commit is contained in:
2021-09-13 20:28:28 +02:00
parent 06c35d99af
commit cad6d47cd2

View File

@@ -1,8 +1,11 @@
# 🔃 DynB
DynB - dynamic DNS update script, written in bash
IPv4 (A) and IPv6 (AAAA) record updates are supported.
<!-- TOC -->
- [✨ Update Methods](#-update-methods)
- [APIs](#apis)
- [DynDNS2](#dyndns2)
@@ -12,44 +15,48 @@ IPv4 (A) and IPv6 (AAAA) record updates are supported.
- [🏃 Run](#-run)
- [⏰ Cron](#-cron)
- [🐟 docker](#-docker)
<!-- /TOC -->
## ✨ Update Methods
The following update methods are currently implemented:
### APIs
* INWX.com Domrobot JSON-RPC-API
- INWX.com Domrobot JSON-RPC-API\
Limitations:
- minimum TTL is 300 (5 minutes)
### DynDNS2
* INWX.com
* deSEC.io (dedyn.io)
* DuckDNS.org
* dynv6.com
- INWX.com
- deSEC.io (dedyn.io)
- DuckDNS.org
- dynv6.com
## 📦 Requirements
* `curl` - The minimum requirement for all API requests.
* `dig` - You can get it by installing `dnsutils` (debian/ubuntu/ArchLinux), `bind-utils` (CentOS/RHEL), `bind-tools` (Alpine)
- `curl` - The minimum requirement for all API requests.
- `dig` - You can get it by installing `dnsutils` (debian/ubuntu/ArchLinux), `bind-utils` (CentOS/RHEL), `bind-tools` (Alpine)
also essential if you are using other APIs:
* `jq` - Command-line JSON processor
- `jq` - Command-line JSON processor
## 🚀 Installation
Download the latest release
or simply clone this repo
```
```shell
git clone https://github.com/EV21/dynb.git
```
If you want to add the script to you PATH, run :point_down:
```
```shell
bash dynb.sh --link
```
@@ -59,7 +66,8 @@ You can use a config in form of an `.env` file.
Or you can just use CLI parameters.
Create `.env` in the app root directory or at `~/.local/share/dynb/.env`.
```
```bash
DYNB_DYN_DOMAIN=dyndns.example.com
## service provider could be deSEC, duckdns, dynv6, inwx
@@ -82,18 +90,23 @@ DYNB_TOKEN=
## 🏃 Run
If you have a config file just run :point_down:
```
```bash
dynb
```
Alternatively you can use parameters if your system meets the relevant requirements. This example shows the long form parameter, there are also short ones.
Alternatively you can use parameters if your system meets the relevant requirements. This example shows the long form parameter, there are also short ones.\
Call the help function :point_down:
```
```bash
dynb --help
```
```
```bash
dynb --ip-mode dualstack --update-method domrobot --domain dyndns.example.com --username user42 --password SuperSecretPassword
```
```
```bash
dynb --ip-mode dualstack --update-method dyndns --provider inwx --domain dyndns.example.com --username user42 --password SuperSecretPassword
```
@@ -108,18 +121,23 @@ Just use the parameter `--interval 60` or the environment variable `DYNB_INTERVA
### crontab
execute :point_down:
```
```bash
crontab -e
```
then enter :point_down: to run dynb every five minutes.
```
```bash
*/5 * * * * $HOME/.local/bin/dynb >> $HOME/.local/share/dynb/dynb-cron.log
```
Note, cron typically does not use the users PATH variable.
## 🐟 docker
This is an example of a `docker-compose.yml` file. If you are using IPv6 make sure the routing works properly with your docker container.
```yaml
version: '3.4'
@@ -140,9 +158,11 @@ services:
- DYNB_PASSWORD=SuperSecretPassword
- DYNB_INTERVAL=60
```
## environment variables
| variable | default value | description |
| --------------------- | --------------- | --------------------------------------------- |
| --------------------- | --------------- | -------------------------------------------------------------------------------------------------------------- |
| DYNB_DYN_DOMAIN | undefined | required; `dyndns.example.com` |
| DYNB_SERVICE_PROVIDER | undefined | required; `deSEC`, `duckdns`, `dynv6`, `inwx` |
| DYNB_UPDATE_METHOD | undefined | required; `dyndns` or `domrobot` (with inwx) |