Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/exentriquesolutions/nip.io
https://github.com/exentriquesolutions/nip.io
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/exentriquesolutions/nip.io
- Owner: exentriquesolutions
- License: other
- Created: 2019-02-08T07:08:41.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-04-12T08:14:43.000Z (5 months ago)
- Last Synced: 2024-06-12T17:05:29.540Z (3 months ago)
- Language: Python
- Homepage: http://nip.io
- Size: 92.8 KB
- Stars: 1,286
- Watchers: 21
- Forks: 146
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
- awesome-starred - exentriquesolutions/nip.io - (others)
- awesome-starts - exentriquesolutions/nip.io - (others)
README
# NIP.IO
![Build Status](https://github.com/exentriquesolutions/nip.io/actions/workflows/ci.yaml/badge.svg)
Dead simple wildcard DNS for any IP Address.
[NIP.IO](http://nip.io) is powered by [PowerDNS](https://powerdns.com) with a simple,
custom [PipeBackend](https://doc.powerdns.com/authoritative/backends/pipe.html):
[backend.py](nipio/backend.py)Head to [NIP.IO](http://nip.io) for more details.
NIP.IO is licensed under [Apache 2.0](LICENSE.txt), and is a free service run by
[Exentrique Solutions](http://exentriquesolutions.com)## Environment Variables Configuration Overrides
While all configuration settings can be specified in a file called [backend.conf](nipio/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`.
This is useful if you're creating your own [Dockerfile](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](dns-rebind.md) in this case.
## DevelopmentIf you'd like to develop and hack with nip.io, then the easiest way is to install [Poetry](https://python-poetry.org/)
and then run `./build.sh` which invokes Poetry. `./build.sh` will run linting and tests as well.