https://github.com/wgnet/wunderdns
Multitenant API for PowerDNS PostgreSQL database.
https://github.com/wgnet/wunderdns
Last synced: 6 months ago
JSON representation
Multitenant API for PowerDNS PostgreSQL database.
- Host: GitHub
- URL: https://github.com/wgnet/wunderdns
- Owner: wgnet
- License: apache-2.0
- Created: 2020-10-14T13:50:31.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2024-02-16T08:42:30.000Z (over 1 year ago)
- Last Synced: 2025-03-29T20:51:12.013Z (6 months ago)
- Language: Go
- Size: 1.33 MB
- Stars: 6
- Watchers: 7
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# WunderDNS
WunderDNS is a **multitenant api for PowerDNS PostgreSQL database**. Again, it's a API for PostgreSQL database, not to PowerDNS itself. It is used to alter DNS records in Wargaming since 2016 ( it was called sync_powerdns2.pl though ) and now it was reborned as a golang application.
## Key features
- **Multitenancy** - if you create a record, nobody else can change it
- **ACLs** - you may configure any combinations of domains and permissions
- **HTTP API** - simple way to get access
- **AMQP API** - a way to get your requests delivered
- **Flawless integration** - you even don't need to alter your powerdns server or postgresql database to start using wunderdns
- **Multiple databases support** - you may alter a `few` databases in one request
- **Two views support** - wunderdns supports both public & private `views` to separate local & public records## How it works
WunderDNS connects to PostgreSQL database and works directly with PowerDNS tables: records, domains & so on. It uses their own table records_api ( inherits records ) to alter records. WunderDNS uses AMQP to get requests and send replies. It also uses HTTP API that works as a AMQP<->HTTP gateway.## Dependencies
- [PowerDNS](https://www.powerdns.com/) with PostgreSQL database
- [RabbitMQ](https://www.rabbitmq.com/) cluster
- [golang](https://golang.org/) >= 1.11## Installation
- make
- powerdns\# CREATE TABLE records_api(owner VARCHAR(255)) INHERITS(records);
- configure
- run## Configuration
See [wunderdns.ini](wunderdns.ini) and [wunderapi.ini](wunderapi.ini) for details.## Usage
//TODO
## Known issues
[ISSUES.md](ISSUES.md)
## Getting help
Create an issue :)
## Getting involved
[CONTRIBUTING](CONTRIBUTING.md).