Giter Club home page Giter Club logo

freenom-dns-updater's Introduction

Freenom dns updater

GitHub license Unit Test dev and main branch PyPI - Wheel Total alerts Language grade: Python Quality Gate Status Lines of Code Vulnerabilities deepcode

A tool written in python to update freenom's dns records

Main Features

  • Manage (add/update/remove) a domain's dns record with cli
  • Automatic records updates according to ip (v4/v6) changes
  • Auto renew domains (thanks to Cedric Farinazzo)

Upcoming features

  • Password encryption

Installation

pip install freenom-dns-updater

Usage

Basic usage

Let's say you want to add or update your main A/AAAA domain records exemple.tk with your current ip (v4/v6). Simply type :

fdu record update $LOGIN $PASSWORD exemple.tk

Note that if you don't have a ipv6 access, the tool will detect that and will update only the A record (ipv4) of example.tk.

In order to add or update the subdomain sub.example.tk:

fdu record update $LOGIN $PASSWORD example.tk -n sub

Advanced usage

If you want to update multiple (sub)domains you could call the tool for each domains. Even better, you can create a configuration file.
A configuration is a YAML file, which look like :

login: [email protected]
password: yourpassword

# list here the records you want to add/update
record:
  # the following will update both the A and AAAA records with your current ips (v4 and v6).
  # Note that if you don't have a ipv6 connection, the program'll detect it and will only update the A record (ipv4)
  - domain: test.tk

  # the following will update both your subdomain's A and AAAA records with your current ips (v4 and v6)
  - domain: test.tk
    name: mysubdomain

  # here's more advanced exemples

  # the following will update the AAAA record with a specified ipv6
  - domain: test2.tk
    name: # you can omit this line
    type: AAAA
    target: "fd2b:1c1b:3641:1cd8::" # note that you have to quote ipv6 addresses
    ttl: 24440

  # the following will update your subdomain's A record with your current ip (v4)
  - domain: test2.tk
    name: mysubdomain
    type: A
    target: auto # you can omit this line


  # you can omit the record type and give only ipv4 or ipv6 addresses.
  - domain: test2.tk
    name: ipv6sub
    target: "fd2b:1c1b:3641:1cd8::"

  - domain: test2.tk
    name: ipv4sub
    target: "64.64.64.64"

In order to use such configuration, you can use the following command :

fdu update /path/to/config

Where /path/to/config can be either:

  • A path to a file (default location is /etc/freenom.yml)
  • A http url (a raw secret gist for instance)

Schedule

In order to launch regularly an update, you can launch the tool with :

fdu process -c -i -r -t 3600 /path/to/config

Where the params are :

param description
-c cache the ip and update only if there is any changes
-i ignore errors when updating
-r renew the domains
-t time (in second) to wait between two updates
/path/to/config a path or a url to a configuration file

Using systemd

For ease of use a systemd unit file is available along the source code.

  • Save your configuration into /etc/freenom.yml
  • Copy the systemd/system/freenom-dns-updater.service into a valid systemd unit folder (/usr/lib/systemd/system/ for instance).
  • finally enable the service using
systemctl enable freenom-dns-updater
systemctl start freenom-dns-updater

Using other Os / services manager

There's two straightforward choices :

  • Launch the previous fdu process command
  • Schedule the fdu update command using cron, windows' scheduled task, ...

Known issues

  • The website my.freenom.com is not really stable (503/504 errors very often) => there's 3 retry on every request made by the tool but even with this it's common to face a remote server error

Docker image

If you want to run this tool in an "isolated" environment there's a docker image available at maxisoft/freenom-dns-updater

Ipv6

Note that if you want to use the ipv6 functionality, you have to enable the docker ipv6 stack

Examples

  • Update dns records using a gist config file :
docker run -it --rm maxisoft/freenom-dns-updater fdu update https://gist.githubusercontent.com/maxisoft/1b979b64e4cf5157d58d/raw/freenom.yml
  • Run the tool in a background docker with a local config file :
docker run -d --rm -v /path/to/config:/etc/freenom.yml maxisoft/freenom-dns-updater

freenom-dns-updater's People

Contributors

bitteruhe avatar cedricfarinazzo avatar dawierha avatar loveisgrief avatar maxisoft avatar plokker avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

freenom-dns-updater's Issues

Update Error

I have this when runnig it in new screen session with
"screen -AdmS FDU fdu process -c -i -t 1800 /etc/freenom.yml"

/home/max/.local/lib/python3.8/site-packages/freenom_dns_updater/scripts/fdu.py:298: UserWarning: Traceback (most recent call last): File "/home/max/.local/lib/python3.8/site-packages/freenom_dns_updater/scripts/fdu.py", line 294, in record_action action(freenom, rec) File "/home/max/.local/lib/python3.8/site-packages/freenom_dns_updater/scripts/fdu.py", line 208, in ok_count, err_count = record_action(lambda freenom, rec: freenom.add_record(rec, True), config, ignore_errors) File "/home/max/.local/lib/python3.8/site-packages/freenom_dns_updater/freenom.py", line 71, in add_record return self.update_record(record, records=records) File "/home/max/.local/lib/python3.8/site-packages/freenom_dns_updater/freenom.py", line 122, in update_record raise UpdateError([e.text for e in errs], record, records)

Update error (AssertionError: can't parse the given html)

Hello,

I have a new error when I use fdu.
Can you help me ?

Traceback (most recent call last):
  File "/usr/local/bin/fdu", line 11, in <module>
    sys.exit(cli())
  File "/home/tib-kpl/.local/lib/python2.7/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/home/tib-kpl/.local/lib/python2.7/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/home/tib-kpl/.local/lib/python2.7/site-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/tib-kpl/.local/lib/python2.7/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/tib-kpl/.local/lib/python2.7/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/freenom_dns_updater/scripts/fdu.py", line 227, in update
    return _update(config, ignore_errors)
  File "/usr/local/lib/python2.7/dist-packages/freenom_dns_updater/scripts/fdu.py", line 199, in _update
    ok_count, err_count = record_action(lambda freenom, rec: freenom.add_record(rec, True), config, ignore_errors)
  File "/usr/local/lib/python2.7/dist-packages/freenom_dns_updater/scripts/fdu.py", line 252, in record_action
    action(freenom, rec)
  File "/usr/local/lib/python2.7/dist-packages/freenom_dns_updater/scripts/fdu.py", line 199, in <lambda>
    ok_count, err_count = record_action(lambda freenom, rec: freenom.add_record(rec, True), config, ignore_errors)
  File "/usr/local/lib/python2.7/dist-packages/freenom_dns_updater/freenom.py", line 61, in add_record
    records = self.list_records(record.domain)
  File "/usr/local/lib/python2.7/dist-packages/freenom_dns_updater/freenom.py", line 53, in list_records
    ret = RecordParser.parse(r.text)
  File "/usr/local/lib/python2.7/dist-packages/freenom_dns_updater/record_parser.py", line 13, in parse
    assert tag, "can't parse the given html"
AssertionError: can't parse the given html

Basic comands not working

I'm using fdu record update $LOGIN $PASSWORD example.tk -n sub
the container excepts the command but I get these entries in the log any help much appreciated

freenom_dns_updater/encrypted_string.py:28: UserWarning: Using default key is not secure at all
Error while updating: can't parse the given html
�33m�[1mNo record updated�[0m

fdu, command not found

The last command that worked was: pip install freenom-dns-updater
The next one is not working, command not found: fdu ...

config: Update more than one subdomain

I want to update the A records of www.example.com and test.example.com using fdu process.
I tried using this freenom.yml:

login: [email protected]
password: test
record:
  - domain: example.com
    name: www
  - domain: example.com
    name: test

fdu process only updated the first domain and ignored the second.

Couldn't get https://my.freenom.com/dologin.php

Noticed this today. When the script runs, I get the following error message:

Traceback (most recent call last):
  File "/usr/local/bin/fdu", line 11, in <module>
    sys.exit(cli())
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/freenom_dns_updater/scripts/fdu.py", line 227, in update
    return _update(config, ignore_errors)
  File "/usr/local/lib/python2.7/dist-packages/freenom_dns_updater/scripts/fdu.py", line 199, in _update
    ok_count, err_count = record_action(lambda freenom, rec: freenom.add_record(rec, True), config, ignore_errors)
  File "/usr/local/lib/python2.7/dist-packages/freenom_dns_updater/scripts/fdu.py", line 235, in record_action
    if not freenom.login(config.login, config.password):
  File "/usr/local/lib/python2.7/dist-packages/freenom_dns_updater/freenom.py", line 38, in login
    assert r, "couldn't get %s" % url
AssertionError: couldn't get https://my.freenom.com/dologin.php

Could you look into this?

Round Robin DNS

In the DNS settings on the Freenom website, I can set up round robin DNS by adding multiple records using the same hostname. For example, in domain example.tk, I can add hostname robin with IP 1.2.3.4, and save it, and I see robin in my list of records that I can modify. Then I add robin again at the bottom with IP 5.6.7.8, and once I save, I get two records, both named robin, one with type A and target 1.2.3.4 and the other with type A and target 5.6.7.8. If I query DNS for the domain robin.example.tk, I will see that it has two addresses, 1.2.3.4 and 5.6.7.8. Then running
fdu record ls example.tk
I will see something like
{'name': 'ROBIN', 'target': '1.2.3.4', 'ttl': 3600, 'type': 'A'},
{'name': 'ROBIN', 'target': '5.6.7.8', 'ttl': 3600, 'type': 'A'},

First of all, if it's possible from the Freenom API, I need a way to add yet another round robin record, e.g. a third record called robin with type A and target 9.10.11.12 using fdu rather than the website. Additionally, if the API supplies an index or unique ID of some sort for the record list, I need a way to change the target of the second robin record rather than the first or the third. For example, I would like to be able to specify something like
fdu record add example.tk -n robin[2] -t A -a 7.8.9.10 -l 3600 -u
which would keep the first robin record with target 1.2.3.4 and the third robin record with target 9.10.11.12 unchanged, but would change the second robin record, which had the IP 5.6.7.8 to IP 7.8.9.10. If something like this can already be done, I would need some documentation to explain exactly how this is implemented, as I was unable to find it either here on Github or in the fdu help system. Thanks.

Error while updating: Cant prase given HTML

followed the quik start, and it can see the domains, but it doesnt update. running it on a pi...
/home/pi/.local/lib/python3.7/site-packages/freenom_dns_updater/encrypted_string.py:28: UserWarning: Using default key is not secure at all
warnings.warn("Using default key is not secure at all")
Error while updating: can't parse the given html
No record updated

Doesn't work - multiple errors

Hi !

I can't make it working. When running with inline config, for instance:
fdu record update [email protected] myPassword123 mydomain.tk
I get the following output:

_> Traceback (most recent call last):

File "fdu.py", line 318, in
cli()
File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 716, in call
return self.main(_args, *_kwargs)
File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 696, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 1060, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 1060, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 889, in invoke
return ctx.invoke(self.callback, *_ctx.params)
File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 534, in invoke
return callback(_args, **kwargs)
TypeError: record_update() takes exactly 8 arguments (7 given)
_

And when running with yml config - it says that credentials are incorrect. However they are correct.

Can you please advise?
Thanks!

Update error

Hello,

I've been using freenom-dns-updater for a while to update my ip in my dns and for some time I have this error when I did not have it before. Can you help me ?

Traceback (most recent call last):
File "fdu.py", line 318, in
cli()
File "/home/tib-kpl/.local/lib/python2.7/site-packages/click/core.py", line 764, in call
return self.main(*args, **kwargs)
File "/home/tib-kpl/.local/lib/python2.7/site-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/home/tib-kpl/.local/lib/python2.7/site-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/tib-kpl/.local/lib/python2.7/site-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/tib-kpl/.local/lib/python2.7/site-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/tib-kpl/.local/lib/python2.7/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "fdu.py", line 156, in record_update
ok_count, err_count = record_action(lambda freenom, rec: freenom.add_record(rec, True), config, False)
File "fdu.py", line 252, in record_action
action(freenom, rec)
File "fdu.py", line 156, in
ok_count, err_count = record_action(lambda freenom, rec: freenom.add_record(rec, True), config, False)
File "/usr/local/lib/python2.7/dist-packages/freenom_dns_updater/freenom.py", line 64, in add_record
return self.update_record(record, records=records)
File "/usr/local/lib/python2.7/dist-packages/freenom_dns_updater/freenom.py", line 115, in update_record
raise UpdateError([e.text for e in errs], record, records)
freenom_dns_updater.exception.update_error.UpdateError

ssl error

i get the following error
\python37-32\lib\site-packages\requests\adapters.py", line 514, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='my.freenom.com', port=443): Max retries exceeded with url: /clientarea.php (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)')))

"Unable to login".. functioned before

Hi,

first of all thanks for your work.
I'm using your tool with a .yaml-config file which I'am starting every 10 minutes with cron.
Since yesterday I always get this error: "Unable to login with the given credential"
But my credentials are to 100 % correct.
I also tryied the manual method via fdu record update and uninstall/install, but no success.

Thanks

Running on Synology

Hi,
Years back i used this on Synology in a Docker.
sudo docker run \ -v /volume2/docker/Freenom-updater/etc:/etc\ --rm \ --name FreenomDNSupdater\ maxisoft/freenom-dns-updater:latest \ fdu process\ sudo docker stop maxisoft/freenom-dns-updater:latest
Worked fine. Now that doesn't work anymore...

So i've tried to install this directly.

sudo python3 -m pip install freenom-dns-updater Collecting freenom-dns-updater Downloading freenom_dns_updater-1.2.9-py3-none-any.whl (25 kB) Collecting requests Downloading requests-2.25.1-py2.py3-none-any.whl (61 kB) |████████████████████████████████| 61 kB 924 kB/s Collecting click Downloading click-7.1.2-py2.py3-none-any.whl (82 kB) |████████████████████████████████| 82 kB 256 kB/s Collecting oscrypto Downloading oscrypto-1.2.1-py2.py3-none-any.whl (192 kB) |████████████████████████████████| 192 kB 15.4 MB/s Collecting beautifulsoup4 Downloading beautifulsoup4-4.9.3-py3-none-any.whl (115 kB) |████████████████████████████████| 115 kB 51.5 MB/s Collecting six Downloading six-1.15.0-py2.py3-none-any.whl (10 kB) Collecting PyYAML Downloading PyYAML-5.4.1-cp38-cp38-manylinux1_x86_64.whl (662 kB) |████████████████████████████████| 662 kB 51.7 MB/s Collecting soupsieve>1.2 Downloading soupsieve-2.2.1-py3-none-any.whl (33 kB) Collecting asn1crypto>=1.0.0 Downloading asn1crypto-1.4.0-py2.py3-none-any.whl (104 kB) |████████████████████████████████| 104 kB 50.0 MB/s Collecting urllib3<1.27,>=1.21.1 Downloading urllib3-1.26.4-py2.py3-none-any.whl (153 kB) |████████████████████████████████| 153 kB 49.9 MB/s Collecting chardet<5,>=3.0.2 Downloading chardet-4.0.0-py2.py3-none-any.whl (178 kB) |████████████████████████████████| 178 kB 46.3 MB/s Collecting idna<3,>=2.5 Downloading idna-2.10-py2.py3-none-any.whl (58 kB) |████████████████████████████████| 58 kB 1.6 MB/s Collecting certifi>=2017.4.17 Downloading certifi-2020.12.5-py2.py3-none-any.whl (147 kB) |████████████████████████████████| 147 kB 49.0 MB/s Installing collected packages: urllib3, soupsieve, idna, chardet, certifi, asn1crypto, six, requests, PyYAML, oscrypto, click, beautifulsoup4, freenom-dns-updater WARNING: The script chardetect is installed in '/var/packages/py3k/target/usr/local/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. WARNING: The script fdu is installed in '/var/packages/py3k/target/usr/local/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. Successfully installed PyYAML-5.4.1 asn1crypto-1.4.0 beautifulsoup4-4.9.3 certifi-2020.12.5 chardet-4.0.0 click-7.1.2 freenom-dns-updater-1.2.9 idna-2.10 oscrypto-1.2.1 requests-2.25.1 six-1.15.0 soupsieve-2.2.1 urllib3-1.26.4 Haldi@NAS:~$ fdu -sh: fdu: command not found

Added that to path...
Haldi@NAS:~$ source /etc/profile Haldi@NAS:~$ echo $PATH | tr ":" "\n" | nl 1 /sbin 2 /bin 3 /usr/sbin 4 /usr/bin 5 /usr/syno/sbin 6 /usr/syno/bin 7 /usr/local/sbin 8 /usr/local/bin 9 /var/packages/py3k/target/usr/local/bin

and now i'm getting this:
Haldi@NAS:~$ fdu Traceback (most recent call last): File "/var/packages/py3k/target/usr/local/bin/fdu", line 5, in <module> from freenom_dns_updater.scripts.fdu import cli File "/var/packages/py3k/target/usr/local/lib/python3.8/site-packages/freenom_dns_updater/__init__.py", line 2, in <module> from .config import Config File "/var/packages/py3k/target/usr/local/lib/python3.8/site-packages/freenom_dns_updater/config.py", line 11, in <module> from .encrypted_string import EncryptedString File "/var/packages/py3k/target/usr/local/lib/python3.8/site-packages/freenom_dns_updater/encrypted_string.py", line 5, in <module> from oscrypto.symmetric import aes_cbc_pkcs7_decrypt, aes_cbc_pkcs7_encrypt File "/var/packages/py3k/target/usr/local/lib/python3.8/site-packages/oscrypto/symmetric.py", line 43, in <module> from ._openssl.symmetric import ( File "/var/packages/py3k/target/usr/local/lib/python3.8/site-packages/oscrypto/_openssl/symmetric.py", line 8, in <module> from ._libcrypto import libcrypto, LibcryptoConst, handle_openssl_error File "/var/packages/py3k/target/usr/local/lib/python3.8/site-packages/oscrypto/_openssl/_libcrypto.py", line 15, in <module> from ._libcrypto_ctypes import ( File "/var/packages/py3k/target/usr/local/lib/python3.8/site-packages/oscrypto/_openssl/_libcrypto_ctypes.py", line 28, in <module> raise LibraryNotFoundError('The library libcrypto could not be found') oscrypto.errors.LibraryNotFoundError: The library libcrypto could not be found

something wen't wrong right?...

升级的A记录IP是错误的

升级的A记录IP是错误的,希望修正,谢谢!或者我能不能在配置文件freenom.yml中修改获取IP的方式?比如url

经过检查,是代理的原因造成IP不正确,请问能不能,在freenom.yml中设置获取IP的url?谢谢

405 Error

It used to work until a month ago. Now I get the following error:

Error while updating: 405 Client Error: Not Allowed for url: https://my.freenom.com/clientarea.php
No record updated

Is it due to some new policies upstream?
I own a .ml domain only, not .ga

freenom-dns-updater.service

Hi, good work.
I use debian jessie.
U need to modify something:

[Service]
ExecStart=/usr/local/bin/fdu process -c -i -t 900 /etc/freenom.yml

-i find fdu app. in /usr/local/bin/
-you forgott -t parameter

I hope is useful my notifications.

Can it also change the forward url

Hello,

I would like to change the freenom forward url (as I use tunneling and I am not always getting the same subdomain). Is this possible with this tool or could it be implemented easily?

Best regards

avoid plain text password

Hallo,
how can avoid to enter the password as plain text if the script becomes a chrono job.
I don't want to have a password stored as plain text.

SSLError CERTIFICATE_VERIFY_FAILED

I installed fdp without issues using pip install freenom-dns-updater

Then, I attempted to update an IP address using fdu record update [email protected] mypassword mysite.com

and I get the error below:

requests.exceptions.SSLError: HTTPSConnectionPool(host='my.freenom.com', port=443): Max retries exceeded with url: /clientarea.php (Caused by SSLError(SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:726)'),))

You don't own the domain

when I try to update my domain, i can only update it without www, whe i try to do it with the 3 www a message appears i cant be able, this is the message: 'You don't own the domain "example.tk" '

crontab no update

When I run the update manually, then

fdu update /etc/freenom.yml
/usr/local/lib/python3.7/dist-packages/freenom_dns_updater/encrypted_string.py:28: UserWarning: Using default key is not secure at all
  warnings.warn("Using default key is not secure at all")
No record updated

updates all A records.
When I set up crontab
crontab -e
*/3 * * * * fdu update /etc/freenom.yml
The execution is visible in the syslog
Feb 7 19:51:01 debian-10-test CRON[531]: (gusto) CMD (fdu update /etc/freenom.yml)
however, A records on the freenom are not updated

freenom.yml: ttl and target parameters seem to be ignored

Hi,
first of all, thank you for this nice dns updater !
I noticed something strange however when I try to set it up, using the provided systemd unit on my archlinux box. My /etc/freenom.yml file looks like this:

login: email@somedomain
password: mypassword

  • domain: mydomain.tk
    ttl: 300

So, the file seems to be all good, giving that fdu update /etc/freenom.yml gives no error and tell me the record was updated successfully. But here comes the issue. After doing this, if I check the result with fdu record ls email paswword domain.tk. I get:
[{'name': '', 'target': 'xx.xx.xxx.xxx', 'ttl': 14440.

Notice the ttl ? Using this instead works just fine:
fdu record add email password domain.tk -l 300

I also tried adding type: and target: just above the ttl: line in my /etc/freenom.yml. Nothing changed, Even the target: didn't apply, for that matter.

Any idea ? Is it something I'm doing wrong ? The systemd unit is relying on the /etc/freenom.yml file, so obviously it gets reset every time I reboot the computer, or every time I restart the service.

Thanks in advance
edit: I noticed the dash character problem... so yes, for the configuration all line are one below another, it's not on the same line

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.