MCPcopy
hub / github.com/exentriquesolutions/nip.io

github.com/exentriquesolutions/nip.io @main sqlite

repository ↗ · DeepWiki ↗
75 symbols 274 edges 5 files 3 documented · 4%
README

NIP.IO

Build Status

Dead simple wildcard DNS for any IP address.

[!NOTE] The project maintainer Roopinder Singh (1981–2024) have passed away. sslip.io could be considered a spirtual successor.

NIP.IO was powered by PowerDNS with a simple, custom PipeBackend: backend.py

Head to NIP.IO for more details. (now hosted by sslip.io)

NIP.IO is licensed under Apache 2.0, and was a free service ran by Exentrique Solutions.

Environment Variables Configuration Overrides

While all configuration settings can be specified in a file called backend.conf, the following environment variables override those:

NIPIO_DOMAIN: NIP.IO main domain.

NIPIO_TTL: Default TTL for NIP.IO backend.

NIPIO_NONWILD_DEFAULT_IP: Default IP address for non-wildcard entries.

NIPIO_SOA_ID: SOA serial number.

NIPIO_SOA_HOSTMASTER: SOA hostmaster email address.

NIPIO_SOA_NS: SOA name server.

NIPIO_SOA_REFRESH: SOA refresh.

NIPIO_SOA_RETRY: SOA retry.

NIPIO_SOA_EXPIRY: SOA expiry.

NIPIO_SOA_MINIMUM_TTL: SOA minimum time-to-live (TTL).

NIPIO_NAMESERVERS: A space-separated list of domain=ip nameserver pairs. Example: ns1.nip.io=127.0.0.1 ns2.nip.io=127.0.0.1.

NIPIO_WHITELIST: A space-separated list of description=range pairs for whitelisted ranges in CIDR format. An IP address must be in one of the whitelisted ranges for a response to be returned. Example: whitelist1=192.168.0.0/16 whitelist2=127.0.0.0/8.

NIPIO_BLACKLIST: A space-separated list of description=ip blacklisted pairs. Example: some_description=10.0.0.1 other_description=10.0.0.2.

NIPIO_CAA: A space-separated list of description=value pairs for CAA issue records returned for whitelisted IPs. Example: letsencrypt=letsencrypt.org.

This is useful if you're creating your own Dockerfile.

Troubleshooting

  • DNS Rebinding Protection

Some DNS resolvers, forwarders and routers have DNS rebinding protection which may result in failure to resolve local and private IP addresses. This service won't work in those situations. However, you may run a local nip.io instance in this case.

Development

If you'd like to develop and hack with nip.io, then the easiest way is to install uv and then run ./build.sh which invokes uv. ./build.sh will run linting and tests as well.

Core symbols most depended-on inside this repo

_log
called by 24
nipio/backend.py
_write
called by 13
nipio/backend.py
_is_debug
called by 8
nipio/backend.py
_resolve_configuration
called by 6
nipio/backend.py
_get_env_splitted
called by 4
nipio/backend.py
run
called by 3
nipio/backend.py
_get_next
called by 2
nipio/backend.py
configure
called by 2
nipio/backend.py

Shape

Method 65
Function 8
Class 2

Languages

Python100%

Modules by API surface

nipio_tests/backend_test.py51 symbols
nipio/backend.py24 symbols

For agents

$ claude mcp add nip.io \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact