Git Product home page Git Product logo

nsupdate.info's Introduction

About nsupdate.info

https://nsupdate.info is a free dynamic DNS service.

nsupdate.info is also the name of the software used to implement it. If you like, you can use it to host the service on your own server.

Documentation: https://nsupdateinfo.readthedocs.io/

Software project: https://github.com/nsupdate-info/nsupdate.info

Documentation Build Status Test Coverage PyPI Package

(build and coverage are for latest repo code, package and downloads are for PyPI release)

Features

  • Frontend: Dynamic DNS updates via dyndns2 protocol (like supported by many DSL/cable routers and client software).
  • Backends:
    • Uses Dynamic DNS UPDATE protocol (RFC 2136) to update compatible nameservers like BIND, PowerDNS and others (the nameserver itself is not included).
    • Optionally uses the dyndns2 protocol to update other services - we can send updates to configurable third-party services when we receive an update from the router / update client.
  • Prominently shows visitor's IP addresses (v4 and v6) on main view, shows reverse DNS lookup results (on host overview view).
  • Multiple Hosts per user (using separate secrets for security)
  • Add own domains / nameservers (public or only for yourself)
  • Related Hosts: support updating DNS records of other hosts in same LAN by a single updater (e.g. for IPv6 with changing prefix, IPv4 also works)
  • Login with local or remote accounts (Google, GitHub, Bitbucket, ... accounts - everything supported by the python-social-auth package)
  • Manual IP updates via web interface
  • Browser-based update client for temporary/adhoc usage
  • Shows time since last update via API, whether it used TLS or not
  • Shows IP v4 and v6 addresses (from master nameserver records)
  • Shows client / server fault counters, available and abuse flags
  • Supports IP v4 and v6, TLS.
  • Easy and simple web interface, it tries to actively help to configure routers / update clients / nameservers.
  • Made with security and privacy in mind
  • No nagging, no spamming, no ads - trying not to annoy users
  • Free and open source software, made with Python and Django

nsupdate.info's People

Contributors

asmaps avatar brice-gros avatar cit avatar dependabot[bot] avatar do3cc avatar elnappo avatar enricostano avatar freeminded avatar hensing avatar infothrill avatar jhass avatar jluebbe avatar marcinkuzminski avatar mirzazulfan avatar nougad avatar pelzvieh avatar phrozenbyte avatar resmo avatar samuirai avatar taknok avatar thomaswaldmann avatar vanillajonathan avatar walditm 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  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

nsupdate.info's Issues

2factor auth

ThomasWaldmann wrote:
later add 2factor auth, TOTP, QR-Code rendering.

log useragent and IP

ThomasWaldmann wrote:
for the dnstools log output, we should log the useragent.

in general, we should log the IP.

stale ip address in session

ThomasWaldmann wrote:
if one HAD a ipv6 connection and visited the web UI, it'll put the ipv6addr into the session (so it can display it on the UI).

if you later revisit the web UI without ipv6 connectivity, it will still show the outdated ipv6addr from the session.

(of course this can also happen with the ipv4 address under similar circumstances)

update-other-services feature

ThomasWaldmann wrote:
optional / later:

like dnsomatic.com, something like a hub for dyndns2 requests: one in, multiple out.

add a status / statistics view

ThomasWaldmann wrote:
could show whether the nameservers are up

could show some stats (user, host count)

requests per second

....

some fritz boxes only can handle 1 update url

ThomasWaldmann wrote:
My fritzbox 6360 from "Kabel BW" (Fritz!OS 05.50) can only handle 1 URL.

if one enters 2 URLs, separated by a space, this happens:

2013-09-30 12:51:21 [15897] [DEBUG] GET /nic/update%20http:/ipv6.nsupdate.info/nic/update

It works correctly with 1 URL, so documentation should get updated to first try 1 URL only and the 2 URLs for fritz boxes.

If it works ok for 1, and does 404 (see fritzbox log) for 2, it can't handle 2.

Instruction page

asmaps wrote:
write a page with instructions how to configure most common routers.

Could be the success_page after generating a new update_secret (with prebuild urls etc)

use multiple shared nameservers

ThomasWaldmann wrote:
optional, needs generalizing the target nameserver / key / zone from 1 to N

maybe move nameservers / keys / zones from config to database.

also, UI changes to select the zones.

keep spammers away

spam bots might register users (and after email roundtrip) add hosts/domains.

different solutions to avoid that come to mind:

  • use recaptcha (owned by google) - privacy / UX / accessibility?
  • use akismet?
  • use honeypot?

EPIPE?

ThomasWaldmann wrote:
what's that?

2013-09-30 02:23:01 [15897] [DEBUG] GET /overview/
2013-09-30 02:23:02 [15896] [DEBUG] Ignoring EPIPE

fritzbox 2 Update URLs do not work

ThomasWaldmann wrote:
AVM documents that 2 Update URLs can be entered, separated by a space, but it definitely is NOT implemented for:

FritzBox 6360 (Kabel BW) Fritz!OS 05.50

The (one) update request the service is receiving looks like:

/nic/update%20http:/ipv6.nsupdate.info/nic/update

I contacted AVM Support about this, let's see what happens.

encourage SSL usage on the UI

ThomasWaldmann wrote:
if someone visits the service via http, encourage using it via https - without enforcing it.

show update links in the hosts list

ThomasWaldmann wrote:
so people can use a bookmark to update hosts (or just click a link to immediately update).

separate links for v4 / v6.

dns / database cleanup mechanism

if hostnames are orphaned (not updated any more, for a long time), have some means to remove them from dns and database.

same for users who did not use the service for a longer time (and didn't update hosts either).

browser auto-update client via javascript

ThomasWaldmann wrote:
similar to manual browser ip-update, but supported by javascript that runs in a loop and checks the IP addresses every N minutes, detects changes and uses the update api service url to update the dns when the IP(s) change.

could use http basic auth or form based login or reuse admin session.

shows the update results codes somehow on the UI.

DNSSEC

document usage with DNSSEC, add a configuration example, useful links, ...

split dynamic, templated help and static documentation

ThomasWaldmann wrote:
dynamic, templated help (like showing configs for the user, with hostname, password, etc. already in place): should stay in django templates

static help, like FAQ should go into sphinx docs and linked from UI.
it is easier to update there than in html templates.

we can link to the sphinx docs from either footer or a minimal help page.

where will sphinx docs get hosted?

include it, so it is statically served on same site?

put it on rtd? versioning?

screenshots, link to a big rotation view

ThomasWaldmann wrote:
the screenshots on the home view are nicely rotated, so you see them all like in a slideshow.

They are rather small and if you want to see them in original size you click on them.

But: you don't get to a big screenshot rotation then, but just to an individual image.

additionally, users might get confused as the screenshots also include the navigation in the image (but the working navigation is gone), so they might click on non-working navigation and get lost.

add a remember-me per-user profile setting

Some users may want to use rather short term sessions (cookie gets deleted on browser close) while other may want to stay logged in if they close and reopen the browser.

piwik params are hardcoded in base.html

ThomasWaldmann wrote:
e.g. where it logs to (piwik.thelabmill.de).

also, it seems to use domain cookies, please check whether issue #38 is relevant here.

also, how can we access the statistics there?

registration without cookies enabled

ThomasWaldmann wrote:
this is what you get:
"""
Forbidden (403)

CSRF verification failed. Request aborted.

More information is available with DEBUG=True.
"""

We should warn the user early that it won't work without cookies.

document how to force fritzbox dyndns update

ThomasWaldmann wrote:
one needs to:

disable dyndns in the fritzbox (uncheck that "use dynamic dns"), apply

re-enable it again, apply

Then it sends an update.

It might be good or nochg, depending on what we have in DNS.

caution: do not use domain cookies

ThomasWaldmann wrote:
we only use single host cookies, this issue just serves as a warning:

if we would use domain cookies like for ".nsupdate.info", all hosts in that domain would be able to read and write these cookies. our sites, but also users' sites.

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.