Giter VIP home page Giter VIP logo

pdnsmanager's People

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

pdnsmanager's Issues

Database driver issue..

I installed the stable and got those header errors. so I installed the master and still got it so for fun I did a fresh git pull and could not could not complete the install...

2017-07-09_20-26-49

Nothing happens when I click "Install"

Followed the instructions at https://pdnsmanager.lmitsystems.de/quickstart/ (but on CentOS) and got to the installation page. Filled in all of the fields, but absolutely nothing happens when I click the "Install" button. There is no activity in the browser or on the server.

  • Tried with the latest versions of both Firefox and Chromium, no plug-ins.
  • Tried with both versions 1.2.1 and 1.2.0 with the same results.
  • Did a web search; only one irrelevant result.
  • Don't see anything that would help on here.

Does anyone have any ideas?

Craig

Support punycode

Seems that powerdns do not handle special chars in domain names but works fine if I add the punycode variant.
We should abstract this.

Displayed: exömple.com
Database: xn--exmple-xxa.com

Stuck on upgrade page...

So I tried to complete the install and it put me to the upgrade page.
Every time I do an install it puts me to the upgrade page.
I tried removing all of it and installing the stable version.. that too puts me to the upgrade page after install.
The login button after the upgrade puts me to... the upgrade page.

2017-07-18_23-00-29

Trimming VARCHAR records

Hello,

You should trim the values that go into database (for VARCHAR/CHAR fields) before inserting/updating.
For instance:
in the api/edit-master.php file in action for save and insert, you should trim the $input->content variable before storing, as powerdns has some issues with AXFR, if record has space/tabs after the content. Eg: storing "my.cname.example.org " in content field of records table, will cause it to fail the AXFR with error:
Exception: All data was not consumed
Please correct this in your next version.

Kind regards,
Dejan

Unable to install version 1.2.1

Hi there.

I'm unable to install verison 1.2.1 - error in apache logs is:

[Wed Nov 08 13:27:08.320136 2017] [:error] [pid 1197] [client XXX:57968] PHP Fatal error: Uncaught Error: Call to a member function bind_param() on boolean in /var/www/html/pdnsmanager/api/install.php:126\nStack trace:\n#0 {main}\n thrown in /var/www/html/pdnsmanager/api/install.php on line 126, referer: http://XXX/poweradmin/install.php

When I click "Install" button, nothing happens, so I went to check error logs and found this.

Whitespace at the bottom of the edit-master page...

I know this is a bit of a petty request and I am sorry for that. What is important is that I know it is. (:

How do I add white space to the bottom fo the edit-master page. It is very uncomfortable for me to go way down there with my mouse and eyes when typing in information on my laptop. Also when I hit the add button on a record it pushes off the bottom of the page. I want to be able to scroll it up a bit (or a lot) on the page. Again.. really sorry to bother you all with this. Formatting is not my specialty.

Wrong pointer type on text in tables

When hovering a domain record the text cursor is shown instead of the "finger pointer". I think it's confusing that there is no visual indication for a link.

Config Option for default Values of TTL,...

Could we please move the default values for things like "zone-ttl" in the config file? Right now it is hard coded in the .php files.
I am editing them in the add-domain.php fully aware that when you update that my changes will be lost and have to be redone. Also.. to be clear.. Would love to set the default "Primary" and default "eMail" as those are almost always the same for me.

And the same for Add Record.

CAA records

Hi,
Very cool tool !
Just need CAA record type if you can add it ?
Thanks,
Bertrand

Increase visibility of user input errors.

Currently user input errors are handled with a red line around the erroneous field. This may confuse the user since there is no obvious response to the users action. Normally a user would probably expect a refresh of the current view after he pressed Addor Delete to get the updated content after his action was taken. A refresh doesn't happen and that is fine in my opinion. But the current red line may lead to the perception that the request was not executed, the interface stopped working, or what not because it's simply not recognized easily as a faulty input ...

A better approach would be to get "more" into the users eye and give him a better reasoning for the error. A better visible reaction to his failed action.

Take your install.php for example. A faulty mysql configuration will spawn a red bar at the top stating the error.

By the way,
happy easter and thanks for your project.

EDIT: Spelling

Connection to database failed.

When you follow all instructions as written on your website I end up with this error. Connection to database failed. Upon visiting http://example.com/index.php

When I setup my database details in /var/www/pdnsmanager/config/config-default.php the error is gone.

Nothing happens when install button pressed...

I just did a fresh git pull..
Gave full access to the install files chmod a+rwx
fill out the form as indicated.
Press install button.. button presses but nothing happens..
Also.. for fun.. I copied the config-user.php from my working site.. but passwords are not accepted when I try to login. Also tried adding $config['db_type'] = "mysql"; to the config-user.php and that did not help.

install screenshot

API Support for API tokens

The API should maybe not only support Keys and User/pass, but also API tokens - that would make usage in many cases easier.

The granularity of API access is another topic that explicitly should not be part of this issue.

Templates

Is there a future plan for templates ?

I think it's nice to have such feature for adding fast domainnames with the same scheme for records.

Something with placeholders and such.

Improvement Request - Users Permissions

Just a request for an improvement that would be nice. The user permissions can be set so that end users can manage their own domains, this is great but it'd be nice to have another level below that, EG: Minion (or something!)

The difference for this new user is that the SOA fields at the top of the domain are greyed out and un-editable and also the NS records are un-editable. Basically, no risk of breaking the core DNS function but they can add and remove A, MX, TXT, etc records.

This change will prevent Minions from breaking domains forcing Admins or Users to clean up the mess!

Implement the dyndns NIC API

Would it be possible to get the dyndns nic api working with this management panel?
something like: https://github.com/fwenzel/powerdns-dyndns and map it to your api thingy like here: https://pdnsmanager.lmitsystems.de/documentation/api/ this would make it very useful for system administrators and network guys because most network equipment already has support for custom dyndns2 protocol which means it would be a ready to go solution and maybe a good selling point aswell

Full name field..

This is a feature request...
Can we have a full name field added to the user form? Logins are usually nicknames or first initial and last name. It makes it easier if we can see the full name of the person so later when we look at it we can remember who that person was.

Thank you!!!

~ Merlin

Feature List

Hey. PDNS Manager is very nice, but I've found some feature's that would be nice:

  1. API Key per user - that would be nice to bond user with api key - then feature two would be simplest.
  2. Delegate selected records from domain for selected user - in this case User using apikey could change this record value.
  3. TXT and few others records should be a textarea not input.

Remember sort order

First of all I would like to thank you for sharing this great app and tell you that it is the best one I have seen so far for pdns.

Why is the default sort order by ID? That would make sense for a computer but not for a human. A human is going to look down a list for a username or domain name in alphabetical order. To me.. it all just looks scrambled and random. Is there a way to make this sort alpha by default? I am perfectly fine with hacking the code if you direct me to the right spots and give me a clue as to how to change it.

Note: I know I can click the top of the column and make it sort there. But that setting is not remembered when I return to the page and I am having to click that obsessively. This is counter to the general function/purpose of a computer.

Thank you again!!

Trailing dot added to the email address in SOA

As title, any change to the SOA and the email has a trailing dot appended to the end causing pdnsutil check-zone to throw up a warning.

Removing the trailing dot in the database manually and pdnsutil check-zone is happy :)

Update Documention - Requirements

It seems, that the pdnsmager needs a php version >= 5.5 and not 5.x

I tried to install it on an centos 7.2 which only has an php 5.4.x and it fails on install.php line 120 password_hash(), which is a new function of php 5.5

Show warning when pdnsmanager tables are not empty or silently use them

When pdnsmanager was already set up, the pdnsmanager specific tables are not empty. If this is the case, the install shoud prompt a warning.

Another possibility would be to silently use the exisiting configuration - which will work only if the name of the admin user that is specified during the installation differs from the one already set up or if they have the same password.

Show warning when config can't be written

Ahoy!
As I just installed pdnsmanager on a system where I forgot to give the webserver write access to the DocRoot of the vHost, I noticed that /install.php tries to write the config, but silently fails to do so.

When you then are redirected to the start page, it just puts "Connection to database failed" as it tries to use the credentials from config/config-default.php and fails to do so as they are not valid.

I propose that install.php should verify that it can write the configuration file and otherwise display a clear warning.

Max length on the content table

Currently the Content of the table has no max length or soft wrap, that can lead to a really "long" page. For example: a DKIM record may get you scrolling for a while. The navigation / control of a record becomes a "scroll fiesta".

db structure

I have installed pdns version 4 and pdnsmanager both seems to have different db structure which version of pdns does pdnsmanager support . I understand pdns has some of its own tables but that is not my concern, what i am concerned about the missing tables of pdns itself in the db structure of pdnsmanager . Following are two dbs

MariaDB [pdnsmanager]> show tables;
+-----------------------+
| Tables_in_pdnsmanager |
+-----------------------+
| domainmetadata |
| domains |
| options |
| permissions |
| records |
| remote |
| user |
+-----------------------+

MariaDB [powerdns]> show tables;
+--------------------+
| Tables_in_powerdns |
+--------------------+
| comments |
| cryptokeys |
| domainmetadata |
| domains |
| options |
| records |
| remote |
| supermasters |
| tsigkeys |
+--------------------+

Log files

The only thing missing is logs who was logged and what he did.

Let's encrypt does not work

I followed the docs on how to set up let's encrypt signing. I got a error if i named the file config.sh so i hade to rename it to just config.

But when i try to sign i get Id and domain do not match!

In the pdns-acme.json file i have the domain i want to sign and the same ID as the "ACME" key has on the _acme record.

Move or clone add inputs to top of page

Inputs for adding new record are at bottom of the page when editing zone.

With small zones its ok but if you have hundreds of records in one zone, it isn't comfortable to scroll down every time you want to add something.

Move the element to top is probably not best option. Cloning it so you can add new record from top and also from bottom would be probably better.

Enter key as default ADD button on edit-master

When adding a record I am a bit of a keyboard guy and hate reaching for the mouse. It would be nice if I could hack it so that pressing enter activates the ADD button.

(sorry I am generating so many issues for you)

Working with dnssec?

Hi, I just stumbled over your neat little project and got a question.

Since you state gmysql-dnssec=no in your documentation I'm asking myself if there are any Issues with the PDNS Manager and this aspect of powerdns functionality? If so, what kind of problems are to be expected?

Slow with more domains

We have about 5k domains and it takes about 8 seconds to load. While domains are loading, I'm not able to enter anything into search box.

I love that PDNS Manager don't have pagination but it would be probably better to use it :) I think if you load like 100 domains first and than use ajax search, it would be much comfortable to use. Of course number of domains to load can be configurable to suits everybody needs.

Thanks for considering.

pdnsmanager and letsencrypt setup

I want to use pdnsmanager for letsencrypt new domain certificate generation by dns based challenge after installing pdnsmanegr now I am at part of letsencrypt and the part which explains to add domain to json and pem certificate to domain using pdnsmanager interface . what I am confused about is that which domain is this part suggesting is it for each new domains I want to add to dns and for that each new domain I need to create txt record with pem certificate as key .

would appreciate some info on this part mentioned below related to domain .

change to the directory of pdns-client, generate a keypair and output the public key:

cd pdns-client
./pdns-keygen
cat pdns.public.pem
Copy the generated public key to your clipboard.

In the next step, open a browser and login to your PDNS Manager instance. Add a record to your domain with the name _acme-challenge., type TXT and content none. Use a Priority of 0 and a TTL of 60.

Afterwards, click on to share icon which is the last icon in the row of the record. Click on Add Key. Enter a description like ACME and paste the public key from your clipboard into the field. Confirm with Add. You now need to remember the ID of the permission you have added, which is displayed in the table on the left.

Configure pdns-acme
Change to the directory of pdns-acme and copy the example config.

cd ../pdns-acme
cp pdns-acme.json.example pdns-acme.json
Open the file pdns-acme.json with an editor of your choice. In the config section adjust the path of your PDNS Manager installation and also the deploy-wait value. The deploy-wait parameter determines how long the script should wait for the DNS servers to get the right results. This value depends on your nameserver setup. The default of 300 should do well for most setups. After these changes, the section looks like that:

"config": {
"server": "https:///",
"pdns-client": "../pdns-client/pdns-client",
"deploy-wait": 300
}

DynDNS Idea

Its possible to use the remote API for DynDNS like
https://pdns.example.com/api/remote.php?action=updateRecord&domain=home.example.com&id=1&password=secret&content=123.123.123.123
but its difficult to configure, especially setting the IP.

What about an api/dyndns.php endpoint?

  • Validation with simple token
  • Content (IP) from $_SERVER['REMOTE_ADDR']?

So I could configure in my Box https://pdns.example.com/api/dyndns.php?token=asd and I'm ready?

Confirm on Delete

Improvement request.

Can we have a confirm on Delete please. Currently deletes records without warning.

This could be a var set in the user config file so people could choose to enable/disable as required.

Not displaying any data in webinterface

PDNS newest debian-package version with enabled mysql-backend
Installed newest stable pdnsmanager version by hand
Running install.php successfully

Adding new master domain including records: Successfully
They are inserted into the database, but they are not displayed in webinterface. Just empty rows, although the DNS server is fully working and the records are in fact in database and were inserted by pdnsmanager.

Strange bug ...

Domain search

It would be great to have search box in header. Best with live search included.

Its common to edit one domain and need to switch to different one. In current version I have to

  1. edit domain
  2. click on domains
  3. input search pattern
  4. click on found domain

Thanks for considering.

MySQLi Exception causing 500 on api/domains.php (SQL92 compatibility issue)

I installed pdnsmanager on top of an existing PowerDNS + Poweradmin setup, looking to replace Poweradmin completely.
However, after install procedure is over, no domains are shown. Creating new zones is possible, they are also inserted into the DB properly, but the domain listing is still empty.

I was able to locate an exception after digging around

PHP message: PHP Fatal error:  Uncaught exception 'mysqli_sql_exception' with message 
''[my_db_name].D.name' isn't in GROUP BY' in /var/.../.../pdnsmanager/api/domains.php:66

Stack trace:
#0 /var/.../.../pdnsmanager/api/domains.php(66): mysqli->prepare('?        SELECT...')
#1 {main}
  thrown in /var/.../.../pdnsmanager/api/domains.php on line 66

SQL92 requires that all columns (except aggregates) in the select clause is part of the group by clause. SQL99 loosens this restriction a bit and states that all columns in the select clause must be functionally dependent of the group by clause.
MySQL allows the latter by default, however my sql_mode is set to ONLY_FULL_GROUP_BY to prevent MySQL from returning non-deterministic answers.

Including all columns in fixes this issue.

--- a/api/domains.php
+++ b/api/domains.php
@@ -35,7 +35,7 @@ if(isset($input->action) && $input->action == "getDomains") {
         LEFT OUTER JOIN records R ON D.id = R.domain_id
         LEFT OUTER JOIN permissions P ON D.id = P.domain
         WHERE (P.user=? OR ?)
-        GROUP BY D.id
+        GROUP BY D.id, D.name, D.type
         HAVING
         (D.name LIKE ? OR ?) AND
         (D.type=? OR ?)

I have two suggestions regarding this matter:

  • Either ensuring complete group by clauses in aggregating queries
  • or checking for ONLY_FULL_GROUP_BY during the installation procedure and issuing a warning if present.

Let me know what you think, I'm happy to help out 😊

More information on my setup:
My DB Schema: https://gist.github.com/alexdo/94ddfb9223cebfd7edcbd6461d640b5b
MySQL Version: 5.6.28-0ubuntu0.14.04.1-log
PHP Version: PHP 5.5.9-1ubuntu4.16 (Ubuntu 14.04 LTS default)

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.