All Projects → skibish → Ddns

skibish / Ddns

Licence: mit
Personal DDNS client with Digital Ocean Networking DNS as backend.

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Ddns

Black.box
Plug-and-Play VPN router and unblocker
Stars: ✭ 89 (-49.72%)
Mutual labels:  digitalocean
Getaredis
A one click, docker based, auto scaling, Redis host implemented in Go and hosted on Digitalocean.
Stars: ✭ 135 (-23.73%)
Mutual labels:  digitalocean
Hacktoberfest 2k18 Katas
Game has ended :: Little challenges to up your Hacktoberfest game!
Stars: ✭ 160 (-9.6%)
Mutual labels:  digitalocean
Typhoon
Minimal and free Kubernetes distribution with Terraform
Stars: ✭ 1,397 (+689.27%)
Mutual labels:  digitalocean
Cluster.dev
Kubernetes-based Dev Environments with GitOps
Stars: ✭ 122 (-31.07%)
Mutual labels:  digitalocean
Learn Devops
🚧 Learn the craft of "DevOps" (Developer Operations) to Deploy your App and Monitor it so it stays "Up"!
Stars: ✭ 139 (-21.47%)
Mutual labels:  digitalocean
Shadowsocks Tutorial
🐱给小白的Shadowsocks和V2ray翻墙教程
Stars: ✭ 1,273 (+619.21%)
Mutual labels:  digitalocean
Digitalocean Indicator
Manage and monitor your Droplets from you panel
Stars: ✭ 171 (-3.39%)
Mutual labels:  digitalocean
Awesome Travel
Do you want to build a travel app?
Stars: ✭ 133 (-24.86%)
Mutual labels:  digitalocean
Nginxconfig.io
⚙️ NGINX config generator on steroids 💉
Stars: ✭ 14,983 (+8364.97%)
Mutual labels:  digitalocean
Do Latency
🐳 Digital Ocean regions latency checker
Stars: ✭ 109 (-38.42%)
Mutual labels:  digitalocean
Tugboat
A command line tool for interacting with your DigitalOcean droplets.
Stars: ✭ 1,465 (+727.68%)
Mutual labels:  digitalocean
Marketplace Partners
Image validation, automation, and other tools for DigitalOcean Marketplace partners and Custom Image users
Stars: ✭ 139 (-21.47%)
Mutual labels:  digitalocean
S3 Beam
🚀 direct-to-S3 uploading using ClojureScript
Stars: ✭ 91 (-48.59%)
Mutual labels:  digitalocean
Digitalocean Api Java
DigitalOcean API Client in Java
Stars: ✭ 162 (-8.47%)
Mutual labels:  digitalocean
Digitalocean Js
JavaScript library for the DigitalOcean API
Stars: ✭ 90 (-49.15%)
Mutual labels:  digitalocean
Generate Ssh Configs
Automatically generate ssh config files for your cloud servers
Stars: ✭ 136 (-23.16%)
Mutual labels:  digitalocean
Easy Proxy
Make mass proxies easily. (DigitalOcean)
Stars: ✭ 176 (-0.56%)
Mutual labels:  digitalocean
Spaces Api
An API wrapper for DigitalOcean's Spaces object storage designed for easy use.
Stars: ✭ 166 (-6.21%)
Mutual labels:  digitalocean
Hacktoberfest2018
A repository for HacktoberFest 2018.
Stars: ✭ 139 (-21.47%)
Mutual labels:  digitalocean

DDNS

Test Release Go Report Card

Personal DDNS client with Digital Ocean Networking DNS as backend.

Read about it in the Blog

Motivation

We have services like DynDNS, No-IP to access PCs remotely. But do we need them? This project is your own DDNS solution and will work for free (thanks to Digital Ocean Networking DNS).

What is DDNS

From Wikipedia

Dynamic DNS (DDNS or DynDNS) is a method of automatically updating a name server in the Domain Name System (DNS), often in real time, with the active DDNS configuration of its configured hostnames, addresses or other information.

Installation

Download binary from releases to /usr/local/bin/ddns.

And start it as:

ddns

Or you can download Docker image and use it:

docker run \
  -v /path/to/config.yml:/config/.ddns.yml \
  skibish/ddns -conf-file /config/.ddns.yml

Documentation

You can download binary for your OS from releases page.

ATTENTION! Currently tested on Linux and macOS.

Run ddns -h, to see help. It will output:

Usage of ./ddns:
  -check-period duration
      Check if IP has been changed period (default 5m0s)
  -conf-file string
      Location of the configuration file (default "$HOME/.ddns.yml")
  -req-timeout duration
      Request timeout to external resources (default 10s)
  -v  Show version and exit

Configuration should be supplied. By default it is read from $HOME/.ddns.yml.

You need to setup your domain in Digital Ocean Networks panel.

In your domain name provider configuration point domain to Digital Ocean NS records.

Refer to: How To Point to DigitalOcean Nameservers From Common Domain Registrars

Configuration should be in the following format:

token: "AMAZING TOKEN"                          # Digital Ocean token
domains:                                        # Domains to update
  - "example.com"
forceIPV6: true                                 # Use IPv6 address resolve (Default false and force IPv4)
records:                                        # Records of the domains to update
  - type: "A"                                   # Record type
    name: "www"                                 # Record name
  - type: "TXT"
    name: "demo"
    data: "My IP is {{.IP}} and I am {{.mood}}" # "data" key is optional. You can write here
                                                # what you want and reference values from "params".
                                                # Key "IP" is reserved.
params:
  mood: "cool"
notify:                                         # Optional notifiers
  smtp:
    read: below
  telegram:
    read: below
  gotify:
    read: below

Notifications

These notifications are based on sirupsen/logrus hooks. Add them to the configuration file as:

# config part from the top
#...

notify:
  <name of notification>:
    # ...configuration

List of supported notifications:

SMTP

smtp:
  user: "[email protected]"
  password: "1234"
  host: "localhost"
  port: "22"
  to: "[email protected]"
  subject: "My DDNS sending me a message"
  secure: true # Optional flag. Set it, if you will send emails with SSL

Telegram

telegram:
  token: "telegram bot token"
  chat_id: "1234"

Gotify

gotify:
  app_url: "https://gotify.example.com" # url for gotify
  app_token: "" # token from gotify app
  title: "DDNS" #optional title of messages, defaults to DDNS
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].