Skip to content

Equationzhao/GodDns

Repository files navigation

GodDNS

   ______              __   ____     _   __        
  / ____/  ____   ____/ /  / __ \   / | / /  _____
 / / __   / __ \ / __  /  / / / /  /  |/ /  / ___/
/ /_/ /  / /_/ // /_/ /  / /_/ /  / /|  /  (__  ) 
\____/   \____/ \__,_/  /_____/  /_/ |_/  /____/  
                         .___  .___             
   ____   ____         __| _/__| _/____   ______
  / ___\ /  _ \  ___  / __ |/ __ |/    \ /  ___/
 / /_/  >  <_> ) --- / /_/ / /_/ |   |  \\___ \ 
 \___  / \____/      \____ \____ |___|  /____  |
/_____/                   \/    \/    \/     \/ 
                                               
                                                

GitHub Codacy Badge CodeFactor

GitHub last commit GitHub code size in bytes Go

FOSSA Status

a DDNS tool written in go

Intro

generate a default config file

GodDns generate

use ip set in config

GodDns run

use ip address of interface set in config

GodDns run auto 

get ip address from api

GodDns run --api=ipify/identMe/others

through proxy

GodDns run --proxy=http://127.0.0.1:10809
GodDns run --proxy=enable
GodDns run --proxy=disable

parallel executing

GodDns run --parallel

Usage

USAGE:
   GodDns [global options] command [command options] [arguments...]
   GodDns run - run the DDNS service
   GodDns run auto - run ddns, use ip address of interface set in Device Section automatically
   GodDns run auto override - run ddns, override the ip address of interface set in each service Section
   GodDns generate - generate a default configuration file
   GodDns show-config service/section - show the configuration of a service/section *case insensitive*
   GodDns show-config ls - list all available services/sections
COMMANDS:
   run, r, R       run the DDNS service 
   [--api ApiName, -i ApiName, -I ApiName  get ip address from provided ApiName, eg: ipify/identMe]
	   auto, a, A  run ddns, use ip address of interface set in Device Section automatically
   			override, o, O  run ddns, override the ip address of interface set in each service Section

COMMANDS:
   generate, g, G  generate a default configuration file
   help, h         Shows a list of commands or help for one command
   show-config, sc, SC  show the configuration of a service/section *case insensitive*
   show-config ls       list all available services/sections
   help, h              Shows a list of commands or help for one command
   
OPTIONS:
   --all, -a, -A  show all available services/sections configuration (default: false)

   CONFIG

   --config file, -c file, -C file, --Config file  set configuration file

   OUTPUT

   --log level, -l level, -L level, --Log level  level: Trace/Debug/Info/Warn/Error (default: Info)
   --no-output, -s, -S, --silent                 no message output (default: false)
   --print-in-markdown, --md, --markdown, --pim  print result in markdown (default: disabled)
   --print-in-table, --pt, --table, --pit        print result in table (default: disabled)
   
   PERFORMANCE

   --cpu-profile, --cpuprofile, --cpu, --cp  enable cpu profiling (default: disabled)
   --mem-profile, --memprofile, --mem, --mp  enable memory profiling (default: disabled)
   
   RUN

   --api ApiName, -i ApiName, -I ApiName     get ip address from provided ApiName, eg: ipify/identMe
   --parallel, --Parallel                    run ddns parallel (default: false)
   --proxy url, -p url, -P url, --Proxy url  set proxy url
   --retry times                             retry times (default: 3)
    
   TIMES

   --times-limitation n, --tl n, --TL n  run ddns per time(seconds) up to n times (default: infinity)

   TRIGGER

   --on-change, --oc, --OC                 run ddns automatically when ip changed (default: false)
   --time seconds, -t seconds, -T seconds  run ddns per time(seconds) (default: disabled)


GLOBAL OPTIONS:
   --help, -h, -H     show help
   --version, -v, -V  print the version info

Configuration

Program Config

Service Config

Download

download in release

Build from source

build binary

git clone https://github.com/Equationzhao/GodDns.git
cd GodDns
make build

install to $GOPATH/bin

git clone https://github.com/Equationzhao/GodDns.git
cd GodDns
make install

Arch Linux

git clone https://aur.archlinux.org/goddns.git
cd goddns
makepkg -si

or through aur helper

yay -S goddns

TODO

  • add more service
  • new feature support multi-device for each service(like Device does)

Recent activity Time period

Timeline graph

Structure

Structure