diff --git a/README.md b/README.md index c8d6bb7..ac889c6 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,39 @@ # name-dyndns -Client that automatically updates name.com DNS records +Client that automatically updates name.com DNS records. + +## Getting name-dyndns + +Since name-dyndns has no external dependencies, you can get it simply by: + +```go +go get github.com/mfycheng/name-dyndns.git +``` + +## Requirements + +In order to use name-dyndns, you must have an API key from name.com, which +can be requested from https://www.name.com/reseller/apply. + +Once you have your API key, all you must do is setup `config.json`. An example +`config.json` file can be found in `api/config_test.json`. + +## Command Line Arguments + +By default, running name-dyndns will run a one-time update, using `./config.json` +as a configuration file, and stdout as a log output. However, these can be configured. For example: + +``` +./name-dyndns -daemon=true -log="/var/log/name-dyndns/out.log" -config="~/name_config.json" +``` + +This will run name-dyndns in daemon mode, outputting to `/var/log/name-dyndns/out.log`, using the configuration file `~/name_config.json` + +## Error Handling + +Currently, there is limited testing, primarily on none-api dependant utilities. +While error handling **should** be done gracefully, not every edge case has been tested. + +Ideally, when running in daemon mode, name-dyndns tries to treat any errors +arising from network (API, fetching external IP) as transient failures, and tries again next iteration. The idea behind this is that a single network failure shouldn't +kill the daemon, which could then potentially result in having the DNS records out +of sync, which would defeat the whole point of name-dyndns.