Giter Club home page Giter Club logo

probind's People

Contributors

anatoliykizyulya avatar dependabot[bot] avatar elias-ebrahimpour avatar francescopepe avatar gadall avatar marado avatar pacoorozco avatar scrutinizer-auto-fixer avatar thermionic avatar

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

probind's Issues

"Actions" buttons disappear when window is narrowed

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:

  1. Go to "Zones"
  2. Resize window
  3. Observe action buttons disappear when it get's to roughly 1000px

Expected behaviour
Action buttons remains (possibly in a more compact form) or entire actions section disappears, making room for other content.

Add CSS / JS code to distributed ProBIND

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 elixirshould copy CSS / JS to corresponding folders.

export UID="$(id -u)" cannot be used since UID is read only and container is expected to run as non-root

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.

TTL validation error when creating a new record

Describe the bug
When attempting to use a default TTL, a validation error occurs

To Reproduce

  • Open a zone
  • Create a new record
  • Leave the TTL blank (description of the field says "Leave empty, to use default's TTL value (see Settings)")

Expected behavior
The default TTL should be used

Screenshots
image

Desktop (please complete the following information):

  • OS: Debian Buster
  • Browser: Firefox
  • Version: 72.0.1

Additional context
Installed as per installation instructions

User passwords are not getting hashed

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:

  1. Go to '/users'
  2. Click on 'Create a new User'
  3. Create a new user and set the password.
  4. Check the database, passwords are getting stored as plaintext.

Or:

  1. Go to '/users'
  2. Click on a user and edit the password

Expected behavior
It should hash the passwords with bcrypt.

Screenshots
image

I can not find any error in the error_log or in the laravel.log.

Symphony error

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:

  1. Clean install of Ubuntu 18.04/Ubuntu 20.04/Alpine 3.12 (reproducible on all three)
  2. Install standard prerequisites (git, docker, docker-compose)
  3. Create non root user
  4. Add user to docker group
  5. Follow Docker instructions from README.md (apart from running "docker-compose exec app php artisan migrate --seed", as that also errors)
  6. As host that has had probind installed on is headless, go to http://hostname/install from desktop
  7. Complete database page
  8. Login with admin/secret

Expected behavior
To not see an error

Upgrade to Laravel 8.x

Is your feature request related to a problem? Please describe.
In order to increase support life we should update to Laravel 8.x

Documentation clarification: set APP_KEY in .env

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

Push updates is not pushing updates when it's called from the web

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:

  1. Go to 'Tools -> Bulk update'
  2. Click on 'Bulk update'
  3. Go to 'Tools -> Push updates'
  4. Click on 'Push updates'
  5. See green notification.
  6. See 'Tools -> Bulk update', there are still pending changes.

Improve Docker support

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.

Composer install fails with "Your lock file does not contain a compatible set of packages."

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.

Can not save server

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.

Zone import doesn't work

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:

  1. Go to Tools ->Import Zone
  2. Enter a valid zone name (e.g. "test.domain.")
  3. Attach a zone file
  4. Click "Import", see:
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):

  • OS: Win10
  • Browser Firefox

composer throws an error when install dependencies

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:                             

Export zone file & link zones with servers

I like the simplicity of the product but there are a couple of things to add:

  1. It would be quite helpful to be able to export a zone file in the normal BIND9 zone format for manual transfer.
  2. In order to manage multiple zones on different servers (for example, internal and www facing dns servers) the ability to link zones with servers would help. This would probably require the ability to link zones with servers and have per-server connection settings/zone paths. As it stands, I think the idea is that all zones are transferred to all servers and it depends on the server configuration to understand which zone files to use?

Quoting of TXT records

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.

docker-compose build error.

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 .

Document how servers should be configured.

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)

about probind do not modify named zone file

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!

error from "docker-compose exec app php artisan migrate --seed"

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:

  1. Clean install of Alpine 3.12
  2. Install standard prerequisites (git, docker, docker-compose)
  3. Create non root user
  4. Add user to docker group
  5. Follow Docker instructions from README.md

Avatar isn't shown on some routes

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().

; (semi-colon) in TXT records causes the remainder of the record to be dropped on import

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.

Issue importing zone...

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.
...

Upgrade admin-lte to v3.1

Is your feature request related to a problem? Please describe.
Reduce vulnerabilities and improve look and feel.

Issue running docker-compose build on 0.12 release

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):

  • OS: Ubuntu 18

Request for addition of SSL support in web container along with letsencrypt support.

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 ?

NS servers per zone

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 disappeared

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.

Inconsistency regarding final dot

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.

Delete confirmation

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.

Error in docker-compose buil

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

Record:getResourceRecord() doesn't handle priority?

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.

Warning when building app docker

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:

  1. Execute docker-compose build
  2. See error

Expected behavior
No warning should be shown

Provide contextual help

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.

QUESTION: Changing routes to custom domain

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.

New zones don't have default TTL applied

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:

  1. Create a brand new build as per the build instructions in README.MD
  2. Add a server, create a new zone
  3. Push changes
  4. Check contents of zone file - $TTL line will be missing a number

Expected behavior
TTL should be populated with default TTL value

  • OS: Centos 8 (docker-ce)

Validation of Record data for every type

Actually validation is so simple.
It would be great to validate Record's data of every type.

Some ideas:

  • A record must be a IPv4 data.
  • AAAA record must be a IPv6 data.
  • A CNAME can't exists with any other record.

It would be great if app does an external DNS query for external data (NS, CNAME...)

Error while pushing to bind servers

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.

No way to update a zones serial

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.

data column in records table too small

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.

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.