Go to file
2021-02-01 18:07:08 +01:00
config renamed service-binarayname and config file name to dynuiprefresher 2020-05-21 11:52:55 +02:00
Docker fix cleanup after conan build 2020-11-04 20:28:04 +01:00
docs doxygen docu support 2019-10-27 13:41:40 +01:00
inc remove unneccessary files 2021-02-01 18:07:08 +01:00
service renamed service-binarayname and config file name to dynuiprefresher 2020-05-21 11:52:55 +02:00
src remove unneccessary files 2021-02-01 18:07:08 +01:00
tests rename Version.h to StaticData.h 2020-05-26 16:51:29 +02:00
.gitignore readded intellij workspace files 2019-05-08 19:56:43 +02:00
.gitlab-ci.yml fix cleanup after conan build 2020-11-04 20:28:04 +01:00
CMakeLists.txt drop gui support - cmake 2021-02-01 17:28:07 +01:00
conanfile.txt remove unneccessary files 2021-02-01 18:07:08 +01:00
README.md added dockerfiles and edited readme 2020-06-08 10:54:22 +02:00

pipeline status

DynuIPRefresher

A lightweight C++ application to setup a service for refreshing a dynamic IP to the Dynu servers. Dynu.com is a free DDns service and provides an API. There is also a GUI for Windows Users and beginners.

Installation

Download the latest Release at Release_Page. I'm providing executables for Debian/Ubuntu (.deb) and RHEL/Debian (.rpm). But you can still compile the code my your own (see build section).

Configuration

There is a configuration file /etc/dynuiprefresher.cfg where you have to specify the DYNU API key (get it from their homepage), the domainid and your domain. Furthermore, you can optionally specify a Telegram API key and a Chat ID if you want to be notfied when your local ip changes.

To enable and start the service: systemctl enable dynuiprefresher.service and systemctl start dynuiprefresher.service

Usage

First of all configure the right keys in the /etc/dynuiprefresher.cfg or %appdata%\DynuIpRefresher\dynuiprefresher.cfg config file.

Afterwards use the following options:

help page: 
[-h] [--help]  print this help page
[-v] [--version] print the software version
[-f] [--force] force refresh of ip
[-l] [--loop] infinite loop to refresh ip every five minutes
[-c] [--checkconfig] validate configuration
[-ip] [--currentip] get current global ip
[no argument] normal ip check and refresh

GUI

You can also build the grapical user inteface if you want. There you can manually trigger a refresh in a gui and set all the config parameters.

Home Page: couldn't load image

Config Page: couldn't load image

Build

Basic Build

Download source files

git clone https://github.com/Lukas-Heiligenbrunner/DynuIPRefresher.git

install build dependencies

libcurl libconfig

Debian:

apt install libcurl4-openssl-dev

Fedora:

dnf install libcurl-devel libconfig-devel

Alpine Linux:

Compiler dependencies:

apk add make cmake g++

Lib dependencies:

apk add libcurl curl-dev libconfig libconfig-dev

Packaging dependencies:

apk add dpkg rpm

dependencies for package build

dpkg --> debian/ubuntu package

rpmbuild --> Fedora/RedHat/CentOS package

cmake project

cd into downloaded files and Generate makefiles:

cmake -S . -B build

compile project

make

[root] install it to the system

make install

(optional) create Linux packages

make package

GUI Build

please use the predefined Docker-Image here: DockerHub

Windows cross build

Set Winbuild flag in CMakeList.txt.

Dependencies:

  • MinGW Compiler
  • MinGW-libcurl
  • MinGW-libconfig++

Optional dependencies

  • NSIS Pack tool (for creating installer)
  • doxygen (for generating html doc)

The Simplest way to install all dependencies is the preconfigured Docker-Image: DockerHub

make package will pack it into a NSIS installer for Windows.