pacoorozco / probind Goto Github PK
View Code? Open in Web Editor NEWProBIND3 - DNS Manager
Home Page: https://probind.pacoorozco.info
License: GNU General Public License v3.0
ProBIND3 - DNS Manager
Home Page: https://probind.pacoorozco.info
License: GNU General Public License v3.0
Describe the bug
When you resize the window the action buttons disappear. The slot in the grid for them remains, however, just with an empty space in it.
To Reproduce
Steps to reproduce the behaviour:
Expected behaviour
Action buttons remains (possibly in a more compact form) or entire actions section disappears, making room for other content.
Hi,
When you try to distribute ProBIND, following this instructions, you need to download and install CSS / JS theme (AdminLTE) using bower
.
This issue is opened to distribute CSS / JS inside public/
folder. Bower should be used only in development, and elixir
should copy CSS / JS to corresponding folders.
The instructions says
export UID="$(id -u)"
Which on Centos 7 at least results in:
-bash: UID: readonly variable
and then docker-compose fails with:
Step 10/12 : RUN useradd --groups www-data,root --uid $DOCKER_UID --create-home $USER
---> Running in a0ac44e61fae
useradd: UID 0 is not unique
So two problems, UID exists already and reseting won't do any difference and
the containers seems to be expected to run as non-root so the documentation needs to clarify this.
You could do something like this:
useradd docker-probind
export PROBIND_USER_UID=$(id -u docker-probind)
and update docker-compose.yml with PROBIND_USER_UID.
Then dont forget to chown -R the git directory with PROBIND_USER_UID, depending on how you run your compose.
Describe the bug
When attempting to use a default TTL, a validation error occurs
To Reproduce
Expected behavior
The default TTL should be used
Desktop (please complete the following information):
Additional context
Installed as per installation instructions
Describe the bug
When creating users or changing passwords, the passwords are getting stored in plaintext and not in bcrypt, like the "dummy" users.
To Reproduce
Steps to reproduce the behavior:
Or:
Expected behavior
It should hash the passwords with bcrypt.
I can not find any error in the error_log or in the laravel.log.
Describe the bug
After completing the database page and logging in
Symfony\Component\Debug\Exception\FatalErrorException thrown with message "Declaration of Symfony\Component\Translation\TranslatorInterface::setLocale($locale) must be compatible with Symfony\Contracts\Translation\LocaleAwareInterface::setLocale(string $locale)"
Stacktrace:
#0 Symfony\Component\Debug\Exception\FatalErrorException in /var/www/vendor/symfony/translation/TranslatorInterface.php:24
To Reproduce
Steps to reproduce the behavior:
Expected behavior
To not see an error
Is your feature request related to a problem? Please describe.
In order to increase support life we should update to Laravel 8.x
The APP_KEY variable in .env needs to be set to something with 32 chars otherwise you'll get a runtime error when visiting /install
So the note:
"NOTE: You don't need to touch anything from this file. It works with default settings." is not really correct.
Cheers
Describe the bug
When you push updates on the web, nothing happens. No changes has been made on the remote host.
To Reproduce
Steps to reproduce the behavior:
Improve the way we can test and develop using Docker.
Now we're creating a Docker based on Git master branch, it would be great to be able to use docker as development environment.
I'm following the instructions with installing composer, but I'm receiving this error:
Status: Downloaded newer image for docker.io/composer:latest
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Your lock file does not contain a compatible set of packages. Please run composer update.Problem 1
- rlanvin/php-ip is locked to version v2.0.0 and an update of this package was not requested.
- rlanvin/php-ip v2.0.0 requires ext-gmp * -> it is missing from your system. Install or enable PHP's gmp extension.
Problem 2
- rlanvin/php-ip v2.0.0 requires ext-gmp * -> it is missing from your system. Install or enable PHP's gmp extension.
- badcow/dns v3.5.0 requires rlanvin/php-ip ~2.0 -> satisfiable by rlanvin/php-ip[v2.0.0].
- badcow/dns is locked to version v3.5.0 and an update of this package was not requested.To enable extensions, verify that they are enabled in your .ini files:
- /usr/local/etc/php/php-cli.ini
- /usr/local/etc/php/conf.d/docker-php-ext-sodium.ini
- /usr/local/etc/php/conf.d/docker-php-ext-zip.ini
You can also run php --ini inside terminal to see which files are used by PHP in CLI mode.
ServerCreateRequest and ServerUpdateRequest contain "use App\Server;" which now would be "use App\Models\Server;" but they use the non-existent property $validServerTypes. I don't know how to fix this.
Describe the bug
"Import zone" tool throws an error when loading, is looking for a "zone" argument that doesn't exist (it's called "domain")
To Reproduce
Steps to reproduce the behavior:
Symfony \ Component \ Console \ Exception \ InvalidArgumentException
The "zone" argument does not exist.
55
Symfony\Component\Console\Exception\InvalidArgumentException
…/vendor/symfony/console/Input/ArrayInput.php198
54
Symfony\Component\Console\Input\ArrayInput addArgument
…/vendor/symfony/console/Input/ArrayInput.php141
53
Symfony\Component\Console\Input\ArrayInput parse
…/vendor/symfony/console/Input/Input.php55
52
Symfony\Component\Console\Input\Input bind
…/vendor/symfony/console/Command/Command.php214
domain | "test.domain."
Desktop (please complete the following information):
When use composer install
thows an error:
Generating autoload files
> Illuminate\Foundation\ComposerScripts::postInstall
> php artisan optimize
[ErrorException]
file_put_contents(/var/www/probind2/bootstrap/cache/services.php): failed to open stream: No such file or directory
Script php artisan optimize handling the post-install-cmd event returned with an error
[RuntimeException]
Error Output:
Migrate from master
terminology to main
one.
Describe the bug
It goes to /users.index
instead of /users
like the sidebar link
I like the simplicity of the product but there are a couple of things to add:
When a TXT record data is entered, it is added to the zone verbatim.
a1 IN TXT THIS IS SOME TEXT
# kdig +short a1.test4.com txt @::1
"THIS" "IS" "SOME" "TEXT"
This is likely to end up being treated as "THISISSOMETEXT", or who knows what, depending on the client software.
I think that the average user expects to be able to enter THIS IS SOME TEXT and have it treated as "THIS IS SOME TEXT". Perhaps if the first non-whitespace character entered is double-quotes, we can leave the input as-is, respecting the user's intention.
sir. docker-compose build Unsuccessful
error logs
bower Ionicons#^2.0.1 invalid-meta for:/tmp/45f3b7d08324b0b409499d2fb6de0147/bower/941fd5bcd422c1dd72cd362d7f683958-178-sMHDbI/bower.json
bower Ionicons#^2.0.1 invalid-meta The "name" is recommended to be lowercase, can contain digits, dots, dashes
bower Ionicons#^2.0.1 invalid-meta The "main" field cannot contain globs (example: "*.js")
bower ckeditor#^4.7.0 resolved https://github.com/ckeditor/ckeditor-releases.git#4.7.3
bower Ionicons#^2.0.1 mismatch Version declared in the json (2.0.0) is different than the resolved one (2.0.1)
bower Ionicons#^2.0.1 resolved https://github.com/driftyco/ionicons.git#2.0.1
bower ECONFLICT Unable to find suitable version for jquery
ERROR: Service 'web' failed to build: The command '/bin/sh -c git clone https://github.com/pacoorozco/probind.git ${PROBIND_ROOT} && cd ${PROBIND_ROOT} && composer install --no-plugins --no-scripts --prefer-dist --no-interaction && bower install --allow-root' returned a non-zero code: 1
you can fix it ?
so thanks .
Hi,
Wondering what happened to the directories templates/v[89-master/ that allowed for a custom shell script to be executed to deploy zones, which was present in earlier v2 versions? Or how they might be re-integrated here?
K.
Is your feature request related to a problem? Please describe.
DNS servers under ProBIND management needs to be accessible via SFTP with public key authentication. The SFTP plug-in will copy named configuration and zone files to the server.
The server should run a script to put all these files on the proper paths, check its correctness and restart named (rndc)
I (and most people) add way more PTR records than I do NS ones. Having PTR as the default would save many clicks.
when I push update,the /etc/named/probinder in named server has not modified, then,I add doman in the 'probinder' file ,I can dig@serverip 'domain',and get right result,I can't find where is my issuse?can you help me ,Thand you!
Describe the bug
probind:~/probind$ docker-compose exec app php artisan migrate --seed
Nothing to migrate.
Seeding: SettingsTableSeeder
Seeding: UsersTableSeeder
Illuminate\Database\QueryException : SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'admin' for key 'users_username_unique' (SQL: insert into `users` (`username`, `name`, `email`, `password`, `remember_token`, `updated_at`, `created_at`) values (admin, Administrator, [email protected], $2y$10$hqjb/3Ound.NM.yvBeY6WO0FXOe5r7UzWqnur0iK99ppFiFgWW7Qu, HL9efsIYcs, 2020-08-28 07:08:23, 2020-08-28 07:08:23))
at /var/www/vendor/laravel/framework/src/Illuminate/Database/Connection.php:664
660| // If an exception occurs when attempting to run a query, we'll format the error
661| // message to include the bindings with SQL, which will make this exception a
662| // lot more helpful to the developer instead of just the database's errors.
663| catch (Exception $e) {
> 664| throw new QueryException(
665| $query, $this->prepareBindings($bindings), $e
666| );
667| }
668|
Exception trace:
1 PDOException::("SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'admin' for key 'users_username_unique'")
/var/www/vendor/laravel/framework/src/Illuminate/Database/Connection.php:458
2 PDOStatement::execute()
/var/www/vendor/laravel/framework/src/Illuminate/Database/Connection.php:458
Please use the argument -v to see more details.
Although this error is seen, it is possible to connect (from another host, the docker host is headless) to http://hostname/install and to start the GUI steps, but that then leads to the following displayed in the browser
UnexpectedValueException
The stream or file "/var/www/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied
To Reproduce
Steps to reproduce the behavior:
Avatar image is relative referenced, so in some routes, like /servers/create
or servers/1/edit
isn't shown.
We need to use absolute referencing, may be using asset()
.
Describe the bug
;
(semi-colon) in TXT records cause the remainder of the record to be dropped, eg:
_dmarc IN TXT "v=DMARC1; p=quarantine; rua=mailto:[email protected]; ruf=mailto:[email protected]; fo=1; adkim=r; aspf=r; pct=100; sp=quarantine"
Gets imported as:
_dmarc IN TXT "v=DMARC1;
The issue lies with the parser, it hits ;
and assumes it is a comment marker, even though it is within a quote
To Reproduce
Import an existing zone file with TXT records with ;
(semi-colon's) in them.
Hi,
I've got exception when I try to import zone.
Note that zone file is correct and I'm running debian 11 + bind 9
Cannot construct an instance of ResourceRecordType using the value (string)
SOA. Possible values are [A, AAAA, CNAME, MX, NAPTR, NS, PTR, SRV, TXT].
Any idea what occurs here?
$TTL 38400 ; 10 hours 40 minutes
operativeit.es. IN SOA ns.nixus.es. hostmaster.nixus.es. (
2021111101 ; serial
10800 ; refresh (3 hours)
3600 ; retry (1 hour)
2419200 ; expire (4 weeks)
86400 ; minimum (1 day)
)
NS ns3.nixus.es.
NS ns4.nixus.es.
MX 1 mx0.mail.ovh.net.
MX 5 mx1.mail.ovh.net.
MX 50 mx2.mail.ovh.net.
MX 100 mx3.mail.ovh.net.
$ORIGIN operativeit.es.
...
Is your feature request related to a problem? Please describe.
Reduce vulnerabilities and improve look and feel.
Describe the bug
build failure on the web service
"
Successfully tagged probind_dns-server:latest
Building web
Step 1/9 : FROM nginx:alpine
alpine: Pulling from library/nginx
ERROR: Service 'web' failed to build: unauthorized: authentication required
"
To Reproduce
1)Follow all steps on "How to Test Probind" up to docker-compose build
2) See error
Expected behavior
Successful build
Desktop (please complete the following information):
Is your feature request related to a problem? Please describe.
Paranoia mostly, I run this in an environment where I don't control the network and cannot guarantee that traffic is not being observed. While I do VPN into that environment it would be better to include SSL support on the web container and for simplicity sake allow for letsencrypt to handle certs as well.
Perhaps an approach similar/same as https://medium.com/@pentacent/nginx-and-lets-encrypt-with-docker-in-less-than-5-minutes-b4b8a60d3a71 ?
It would be great to be able to import a zone file from ISC BIND and load it into ProBIND.
Just looking at probind for the 1st time, as I'm looking at a solution to replace an ageing poweradmin/pdns setup for our LAN at work.
My use case is a single hidden master for multilple pairs of separate slaves that only host the DNS of a subset of the domains the master knows about. Split DNS or a sort, but private/private, not private/public.
Is this something probind can do now? Just installed in docker to play about with, so I may have missed it..
Cheers.
bumpversion.sh
has disappeared from repository. Last commit was seen it is: #31
I don't know why has been removed. Let's investigate before recover it.
Zone names are required to be fully qualified with a final dot. However server names, when added to zones as NS records, are appended with a dot. Thus if they were entered with a final dot, we now have two dots, like so: ns1.example.com.. which causes an error when loading the zone.
In other DNS management interfaces, zone names are assumed to be FQDN and a final dot is not required. Sometimes if provided it is removed, for consistency.
With server names, I suppose we can avoid adding a dot when creating an NS record, if the server name already ends with a dot.
As I've read on this article:
For the really dangerous actions, forcing the user to enter something specific into an input box can help. You'll know that they at least read what was on the confirmation screen.
So in delete actions (that can't be undone) It must ask for a better confirmation.
in resources/views/record/create.blade.php, line 40
This file ends with no newline character. It won't render properly on a terminal, and it's considered a bad practice. Add a simple line feed as the last character to fix it.
@include('partials.notifications')
<!-- ./ notifications -->
@include('record/_form')
@endsection
Posted from SensioLabsInsight
Ubuntu 18.04
Docker version 19.03.3
docker-compose version 1.17.1
Step 4/9 : RUN apk update && apk upgrade && apk add --no-cache bash && adduser -D -H -u 1000 -s /bin/bash www-data
---> Running in 719e142e65d1
fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/community/x86_64/APKINDEX.tar.gz
v3.10.2-108-gaa2d5242fd [http://dl-cdn.alpinelinux.org/alpine/v3.10/main]
v3.10.2-105-g4416c0ae0e [http://dl-cdn.alpinelinux.org/alpine/v3.10/community]
OK: 10341 distinct packages available
(1/2) Upgrading libcrypto1.1 (1.1.1c-r0 -> 1.1.1d-r0)
(2/2) Upgrading libssl1.1 (1.1.1c-r0 -> 1.1.1d-r0)
OK: 28 MiB in 37 packages
fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/community/x86_64/APKINDEX.tar.gz
(1/2) Installing readline (8.0.0-r0)
(2/2) Installing bash (5.0.0-r0)
Executing bash-5.0.0-r0.post-install
Executing busybox-1.30.1-r2.trigger
OK: 29 MiB in 39 packages
adduser: group 'www-data' in use
ERROR: Service 'web' failed to build: The command '/bin/sh -c apk update && apk upgrade && apk add --no-cache bash && adduser -D -H -u 1000 -s /bin/bash www-data' returned a non-zero code: 1
I am trying to use this tool, migrated the data from our legacy system, etc... and I'm running into several issues that make me think maybe I shouldn't be using HEAD master or main (or whatever the default branch is called this week).
For one, the generated named.conf entries (see config_master.blade.php) have duplicate following section, and BIND ceremoniously refuses to even load with that:
allow-query {
any;
};
Then, in generating MX records, or basically, anything with a priority, I see Record:getResourceRecord()
doesn't even use the priority field of the record at all. Seriously, how is this possible? Without a prio you can't do MX, or NAPTR, or SRV, etc etc
One last thing, ProBindPushDnsZones.php
does indeed push the zones but it doesn't restart BIND, to actually reload the named.conf
and zonefiles.
I can provide examples, but this is all kind of obvious. So obvious, I am wondering, am I in the wrong branch?
Thank you for your time.
Describe the bug
A warning is shown when app
docker is build:
#############################################################################################################
# #
# W A R N I N G ! ! ! #
# #
# You are using an unsupported method to get install-php-extensions! #
# #
# Please update the way you fetch it. Read the instrictions at #
# https://github.com/mlocati/docker-php-extension-installer#usage #
# #
# For example, if you get this script by fetching #
# https://raw.githubusercontent.com/mlocati/docker-php-extension-installer/master/install-php-extensions #
# replace it with #
# https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions #
# #
# Sleeping for a while so you get bored of this and act ;) #
# #
#############################################################################################################
To Reproduce
Steps to reproduce the behavior:
docker-compose build
Expected behavior
No warning should be shown
As I read on this article:
While it's a good idea to have documentation available, a user shouldn't be forced to go hunt for the right documentation to figure out how to do something. Instead, give them some contextual help text. There's a lot of value in it!
We must check our forms to put some contextual help and provide examples on it.
In order to simplify setup mechanism and bring less requirements we could remove bower install
and use admin-lte
installation using composer
.
This will need we use Laravel Elixir (o similar) in order to compile themes.
I'm trying to stick an https SSL wrapper in front of probind. I've set APP_URL and ASSET_URL and they have both had some effect on returned content, but I still see some links come back pointing to https://127.0.0.1 in the html. e.g.:
<link rel='stylesheet' type='text/css' property='stylesheet' href='//127.0.0.1/_debugbar/assets/stylesheets?v=1626061298&theme=auto'><script type='text/javascript' src='//127.0.0.1/_debugbar/assets/javascript?v=1626061298'>
.
.
.
.
<body class="login-page">
<div class="login-box">
<div class="login-logo">
<a href="http://127.0.0.1"><b>ProBIND</b> v3</a>
</div>
.
.
.
<form method="POST" action="http://127.0.0.1/login" accept-charset="UTF-8"><input name="_token" type="hidden" value="...">
<div class="form-group has-feedback">
.
.
.
.
phpdebugbar.setOpenHandler(new PhpDebugBar.OpenHandler({"url":"http:\/\/127.0.0.1\/_debugbar\/open"}));
As someone with zero experience in Laravel or modern web frameworks, I'm struggling to find what other settings I need to alter.
When I create a new zone and push it our to servers, the default TTL isn't populated:
$ cat -A test.zone. | head -5
;$
; This file has been automatically generated using ProBIND v3 on 2021-07-13 02:28:23.$
$
$ORIGIN test.zone.$
$TTL $
I've changed the default TTL to a new value, and can see that value in the database:
mysql> select domain, default_ttl from zones;
+--------------------+-------------+
| domain | default_ttl |
+--------------------+-------------+
| test.zone | 300 |
+--------------------+-------------+
To Reproduce
Steps to reproduce the behavior:
Expected behavior
TTL should be populated with default TTL value
Actually validation is so simple.
It would be great to validate Record's data of every type.
Some ideas:
It would be great if app does an external DNS query for external data (NS, CNAME...)
Hello,
i have a fresh install of ProBind3 (latest release). I did not seed the database. I created one zone to try out the software. When i try to push to my dns servers, i get a 500 error response from my webserver.
The laravel log shows me the following error:
[2021-01-19 17:21:40] local.ERROR: Argument 1 passed to App\Console\Commands\ProBINDPushZones::generateDeletedZonesContent() must be of the type array, object given, called in /var/www/...
My server runs PHP 7.4.
Describe the bug
Once a zone is created, there's is no way to change it's serial number. It can be viewed, but not edited.
varchar(255) is too small for TXT records. In my case it is a DKIM record with a 2048 public key, 410 characters total data.
Locally I just changed the column type to text.
We need to add an installation script to ProBIND.
Now, install instructions need access to the server to run composer
, php artisan
, bower
...
I'm thinking to code an install script similar to this one.
May be on a future release :-D
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.