Coder Social home page Coder Social logo

getnamingo / registry Goto Github PK

View Code? Open in Web Editor NEW
21.0 5.0 4.0 9.81 MB

Open-source domain registry platform. Revolutionizing ccTLD and gTLD management with Namingo.

Home Page: https://namingo.org

License: MIT License

PHP 65.08% Twig 31.65% HTML 1.26% PLpgSQL 2.01%
cctld domain epp gtld icann rdap rdap-server registry tmch urs

registry's Introduction

Namingo Registry

StandWithUkraine

SWUbanner

Open-source domain registry platform. Revolutionizing ccTLD and gTLD management with Namingo.

Introduction

Namingo is a state-of-the-art open-source domain registry platform, diligently crafted to serve ccTLD, gTLD, brand and private domain registries. Written from scratch in 2023/2024, it adheres to the latest standards, ensuring a cutting-edge experience.

Namingo is optimally designed for the upcoming ICANN application round, providing a straightforward and easily updatable platform. Its contemporary architecture and intuitive interface make it an ideal choice for efficient and modern domain registry management.

Get Involved

Namingo has successfully reached its initial completion milestone, thanks to the collective effort and dedication of our community. However, the journey doesn't end here! We are committed to continuously enhancing Namingo to ensure it remains the best in its class. Whether you excel in coding, have an exceptional sense of design, or are bursting with innovative concepts, your contributions are invaluable. Join us in refining and expanding Namingo's capabilities to meet and exceed the ever-evolving needs of our users.

Namingo efficiently manages 150,000 domains on a VPS setup (2 cores, 4GB RAM, 100GB SSD) and is compatible with Ubuntu 22.04 LTS and Debian 12, supporting MariaDB/MySQL databases. After successful QA and security assessments, we're expanding our reach. We seek volunteers for testing and creating installation guides for AlmaLinux, Alpine Linux, FreeBSD 14, and Windows, aiming to include both MariaDB/MySQL and PostgreSQL database options. This effort will broaden Namingo's adaptability and ensure it remains a comprehensive domain registry solution.

Features

Namingo is equipped with a comprehensive suite of features to meet the diverse needs of modern domain registries:

  • ICANN Compliant: Robust support for both ccTLDs and gTLDs in line with ICANN requirements.

  • Control Panel: A sleek, user-friendly interface for effortless domain management and TLD administration, enhanced with advanced security measures (2FA, WebAuthn), Stripe/Adyen/Crypto payment options for registrars, and multilingual support, ensuring global accessibility. Seamlessly integrated with a robust API for direct access to the registry database.

  • EPP Server: Enables secure and robust communication for domain registration and management.

  • WHOIS Service: Offers both port 43 access and web access, ensuring transparency in domain information retrieval.

  • RDAP Server: Next-generation registration data access protocol server to provide public access to domain data. Also offers web RDAP client.

  • DAS Server: Efficient Domain Availability Service to quickly check domain availability.

  • DNS Interface: State-of-the-art zone generator tailored to support BIND, NSD, and KnotDNS, offering flexibility in DNS software choices. Seamlessly integrates with industry-leading solutions for DNSSEC signing, including native, OpenDNSSEC and DNS-tool, ensuring enhanced domain security and reliability.

  • Database Compatibility: Fully supports MySQL/MariaDB and offers beta support for PostgreSQL, providing flexibility to match users' technical needs and infrastructure for seamless integration and peak performance.

  • GDPR-Compliant Database Encryption: Supports comprehensive database encryption to ensure GDPR compliance. For more details, see our Encryption Guide.

  • Automation Scripts: Ensures the continuous and smooth operation of the registry by performing routine checks and operations. Included scripts for spec 11 abuse monitoring; automated approval of domain transfers; contact and host cleanup; backup processing and upload; domain lifetime status change; generation and upload of RDE deposits, LORDN file, ICANN's monthly reports, invoices; email dispatcher system; statistics generation; TMCH and URS processing; zone generator and signing.

In beta

  • Automated Registrar Onboarding - New registrars can join by filling up a form, signing the agreement online and even paying the application fee online. Then their account is activated after check by registry staff. No more emails, Word or PDF forms or copy-paste between systems.

  • Domain Registry API - Provides REST API access to domain availability checks and to the domain droplist.

Documentation

We invite you to thoroughly review all the .md files within the docs directory to familiarize yourself with the various aspects of Namingo. These documents provide comprehensive guidance on installation, configuration, and initial operation, ensuring you have all the information you need to successfully manage your domain registry.

Installation Instructions

Automated Install

For a quick and easy installation, you can use the automated install script by running the following command:

wget https://namingo.org/install.sh -O install.sh && chmod +x install.sh && ./install.sh

This command will download and execute the install.sh script from Namingo's website, which automates the installation process.

Manual Installation Steps

For detailed installation steps, please refer to install.md.

Support

Your feedback and inquiries are invaluable to Namingo's evolutionary journey. If you need support, have questions, or want to contribute your thoughts:

  • Email: Feel free to reach out directly at [email protected].

  • Discord: Or chat with us on our Discord channel.

  • GitHub Issues: For bug reports or feature requests, please use the Issues section of our GitHub repository.

  • GitHub Discussions: For general discussions, ideas, or to connect with our community, visit the Discussion page on our GitHub project.

We appreciate your involvement and patience as Namingo continues to grow and adapt.

Acknowledgements

Special thanks to XPanel Ltd for their inspirational work on XPanel Registry. Their project, licensed under the Apache 2.0 License (© 2017 XPanel Ltd), has been a key inspiration for Namingo. We've incorporated elements and certain code parts from XPanel Registry, which have been significantly rewritten in our project.

Additionally, we extend our gratitude to:

Licensing

Namingo is licensed under the MIT License.

registry's People

Contributors

getpinga avatar istiak101 avatar wvro-org avatar

Stargazers

 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

registry's Issues

Test platform on following OS

  • AlmaLinux
  • Alpine Linux
  • Debian 12
  • FreeBSD 13.2
  • Ubuntu 22.04
  • Windows Core Standard

And with following DB:

  • MariaDB/MySQL
  • PostgreSQL

Spec11 reporting to be enchanced

  • All discovered domains to be stored in database table.
  • To be generated better daily and monthly report - both total and per registrar.

File upload retry

Scripts that upload files, like escrow, lordn or reporting should have failsafe checks and if upload fails, to try to upload it again in some time. And if fails again, to try one more time.

Fix ($content) must be of type Stringable|string, null given

Testing Namingo on mac os on Astra Linux via Parallels....
Found this issue when creating and or checking domain....

Screenshot 2023-12-29 at 00 05 35 `Slim Application Error The application could not run because of the following error:

Details
Type: TypeError
Code: 0
Message: Pdp\TopLevelDomains::fromString(): Argument #1 ($content) must be of type Stringable|string, null given, called in /var/www/cp/bootstrap/helper.php on line 306
File: /var/www/cp/vendor/jeremykendall/php-domain-parser/src/TopLevelDomains.php
Line: 50
Trace
#0 /var/www/cp/bootstrap/helper.php(306): Pdp\TopLevelDomains::fromString()
#1 /var/www/cp/app/Controllers/DomainsController.php(28): extractDomainAndTLD()
#2 /var/www/cp/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponseArgs.php(36): App\Controllers\DomainsController->checkDomain()
#3 /var/www/cp/vendor/slim/slim/Slim/Routing/Route.php(358): Slim\Handlers\Strategies\RequestResponseArgs->__invoke()
#4 /var/www/cp/vendor/slim/slim/Slim/MiddlewareDispatcher.php(65): Slim\Routing\Route->handle()
#5 /var/www/cp/app/Middleware/AuthMiddleware.php(21): Slim\MiddlewareDispatcher->handle()
#6 /var/www/cp/vendor/slim/slim/Slim/MiddlewareDispatcher.php(269): App\Middleware\AuthMiddleware->__invoke()
#7 /var/www/cp/vendor/slim/slim/Slim/MiddlewareDispatcher.php(65): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#8 /var/www/cp/vendor/slim/slim/Slim/Routing/Route.php(315): Slim\MiddlewareDispatcher->handle()
#9 /var/www/cp/vendor/slim/slim/Slim/Routing/RouteRunner.php(68): Slim\Routing\Route->run()
#10 /var/www/cp/vendor/slim/twig-view/src/TwigMiddleware.php(115): Slim\Routing\RouteRunner->handle()
#11 /var/www/cp/vendor/slim/slim/Slim/MiddlewareDispatcher.php(121): Slim\Views\TwigMiddleware->process()
#12 /var/www/cp/app/Middleware/ValidationErrorsMiddleware.php(19): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#13 /var/www/cp/vendor/slim/slim/Slim/MiddlewareDispatcher.php(269): App\Middleware\ValidationErrorsMiddleware->__invoke()
#14 /var/www/cp/app/Middleware/OldInputMiddleware.php(18): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#15 /var/www/cp/vendor/slim/slim/Slim/MiddlewareDispatcher.php(269): App\Middleware\OldInputMiddleware->__invoke()
#16 /var/www/cp/app/Middleware/CsrfViewMiddleware.php(26): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#17 /var/www/cp/vendor/slim/slim/Slim/MiddlewareDispatcher.php(269): App\Middleware\CsrfViewMiddleware->__invoke()
#18 /var/www/cp/vendor/slim/csrf/src/Guard.php(476): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#19 /var/www/cp/bootstrap/app.php(224): Slim\Csrf\Guard->process()
#20 /var/www/cp/vendor/slim/slim/Slim/MiddlewareDispatcher.php(269): Closure->{closure}()
#21 /var/www/cp/routes/web.php(257): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#22 /var/www/cp/vendor/slim/slim/Slim/MiddlewareDispatcher.php(269): Closure->{closure}()
#23 /var/www/cp/vendor/slim/slim/Slim/Middleware/ErrorMiddleware.php(76): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#24 /var/www/cp/vendor/slim/slim/Slim/MiddlewareDispatcher.php(121): Slim\Middleware\ErrorMiddleware->process()
#25 /var/www/cp/vendor/slim/slim/Slim/MiddlewareDispatcher.php(65): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#26 /var/www/cp/vendor/slim/slim/Slim/App.php(199): Slim\MiddlewareDispatcher->handle()
#27 /var/www/cp/vendor/slim/slim/Slim/App.php(183): Slim\App->handle()
#28 /var/www/cp/public/index.php(5): Slim\App->run()
#29 {main}
Go Back`

Confirmation Dialog Box Missing for Delete Actions

We've encountered an issue within the tables module powered by Tabulator.io. The core of the problem lies in the interaction with the 'Delete' action buttons. When these buttons are clicked, the expected confirmation dialog box does not appear. This absence of a confirmation step is a critical issue, as it increases the risk of unintended data deletions.

Our team is diligently investigating to identify and rectify the underlying cause of this malfunction. However, we recognize the value of community input and diverse perspectives in troubleshooting complex issues. Thus, we are reaching out for assistance.

If you have experience with JavaScript event handling in Tabulator.io, or if you have encountered and addressed similar issues in your projects, we would greatly appreciate your insight. Any suggestions, experiences, or code examples that could help us understand and solve this issue are welcome.

issue with 3rd level domains

Finally figured it out with 3rd level domains

default test TLDs
.TEST
.COM.TEST

tlds with db id

id     tld
 1    .TEST
 2   .COM.TEST
 4   .example.com
 5   .COM
 6  .example.org

when creating 3rd level domain nic.com.test registry puts it into .TEST tld not into .COM.TEST
and for example.com when adding it Registry -> TLDs menu and specifiing .example.com in .env file "TEST_TLDs
it dosn't work ... (when checking Domain nic.example.com error= nic.example.com is not available: Zone is not supported)
so it requires to add .com TLD and when creating nic.example.com it adds it into .COM TLD not into .example.com too

Screenshot 2023-12-30 at 11 51 21 Screenshot 2023-12-30 at 11 50 48 Screenshot 2023-12-30 at 12 14 06 Screenshot 2023-12-30 at 12 14 32

Expand Documentation

We are actively seeking contributors to help expand our project documentation. Our goal is to create a thorough and user-friendly guide that covers various aspects of configuring and running a TLD registry in compliance with ICANN requirements.

Key areas where we need detailed documentation include:

  1. Architecture Overview: Insight into the system architecture, explaining how different components interact and the rationale behind design choices.

  2. Possible Settings and Configurations: Detailed guidance on various settings and configurations, providing users with the knowledge to tailor the system to their specific needs.

  3. Registrar Management: Information on managing registrar operations, addressing common registrar questions, and best practices for smooth functioning.

  4. Component Details: In-depth explanations of different components, how they can be configured, and their role in the overall system.

  5. ICANN Compliance: Guidance on how to ensure that the registry operations align with ICANN requirements, including necessary procedures and standards.

We believe that robust documentation is crucial for empowering users and fostering a collaborative community. Whether you have expertise in one of these areas or are interested in researching and writing about them, your contribution would be immensely valuable.

Please feel free to reach out if you have any questions, or jump straight into contributing by picking a section that aligns with your interest or expertise. We appreciate any level of involvement, whether it's writing a complete section or simply proofreading and suggesting improvements.

Thank you for considering contributing to our project's documentation. Your efforts will help make this tool more accessible and understandable to everyone looking to run their TLD registry.

Ensure Compatibility of All Commands with PostgreSQL

We have identified the need to test all commands in Namingo for compatibility with PostgreSQL. This is a crucial step in ensuring that our application functions seamlessly across different database systems, particularly when transitioning from MariaDB to PostgreSQL.

A key area of focus should be the "update" column in the domain table. We suspect that there might be nuances in how PostgreSQL handles data in this column compared to MariaDB. Thorough testing and validation are required to confirm its behavior and ensure data integrity.

Additionally, specific attention must be paid to date calculations. These operations are known to have subtle differences between database systems, and it's essential to ascertain that our date-related functionalities perform consistently across both MariaDB and PostgreSQL.

We are calling for contributors to assist in this testing process. Here’s how you can help:

1. Test Execution: Run existing commands and observe their behavior in a PostgreSQL environment. Pay special attention to data manipulation commands and those involving date calculations.

2. Issue Reporting: If you encounter any discrepancies or errors, please document them with detailed descriptions and steps to reproduce. This information will be invaluable in pinpointing and resolving compatibility issues.

3. Suggestions and Fixes: If you have expertise in PostgreSQL and have suggestions for modifications or fixes to improve compatibility, your input would be highly appreciated. Code snippets, pull requests, or detailed explanations of potential solutions are all welcome.

Your contributions to this effort will play a significant role in enhancing the robustness and flexibility of our system. Thank you in advance for your support and involvement!

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.