Skip to content

Commit

Permalink
Fixed #30
Browse files Browse the repository at this point in the history
We have a basic documentation now.
  • Loading branch information
getpinga committed Jan 11, 2024
1 parent 2175820 commit 61476df
Show file tree
Hide file tree
Showing 6 changed files with 378 additions and 3 deletions.
20 changes: 18 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,25 @@ Namingo is equipped with a comprehensive suite of features to meet the diverse n

- **Automation Scripts**: Ensures the continuous and smooth operation of the registry by performing routine checks and operations. Advanced scripting capabilities also facilitate the generation of RDE deposits, the creation of ICANN's monthly reports, Spec 11 abuse monitoring, and ensure full compliance with other ICANN gTLD requirements for streamlined regulatory adherence.

## Installation Instructions
## Documentation

For detailed installation steps, please refer to [Install.md](docs/install.md).
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:

```bash
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](docs/install.md).

## Support

Expand Down
42 changes: 42 additions & 0 deletions docs/architecture.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Architecture of Namingo

This document outlines the architecture of Namingo. The system is designed to efficiently manage domain registries and provide a seamless experience for registrars. It consists of several key components:

## Automation Scripts

- The system incorporates various automation scripts that perform numerous background tasks essential for the registry's operations.
- These scripts are managed and scheduled by a `cron.php` file, ensuring they run at specified times for optimal efficiency.

## Control Panel

- At the heart of our system is the Control Panel, a web-based application designed to control the entire registry system.
- It offers a user-friendly interface for administrative tasks and provides access for registrars.
- The Control Panel is central to coordinating the activities of the various servers in the system.

## Servers

The system includes several specialized servers, each serving a unique role in the management of domain registries:

### DAS Server (Domain Availability Service)

- This server is responsible for handling queries related to the availability of domain names.
- It utilizes Swoole TCP server for efficient, scalable, and concurrent connections.

### EPP Server (Extensible Provisioning Protocol)

- The EPP Server facilitates domain registration, renewal, transfer, and other related operations.
- Built on Swoole, it ensures high-performance and real-time processing of domain transactions.

### RDAP Server (Registration Data Access Protocol)

- This server provides access to registration data, complying with current industry standards for domain registration data retrieval.
- Leveraging the Swoole server, it offers fast and reliable access to registry data.

### WHOIS Server

- The WHOIS server offers a traditional protocol for querying information related to domain registration.
- Powered by Swoole's robust server capabilities, it ensures quick and accurate responses to WHOIS queries.

---

This architecture is designed to provide a comprehensive, efficient, and user-friendly system for managing domain registries. Each component plays a crucial role in the overall functionality and performance of Namingo.
208 changes: 208 additions & 0 deletions docs/configuration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,208 @@
# Configuration Guide

This document provides detailed instructions on configuring Namingo, the domain registry management tool, after installation. Each configuration file and its respective settings are explained for easy setup and customization.

## Automation Configuration (`/opt/registry/automation/config.php`)

This configuration file is essential for setting up the automation scripts for the registry tool.

```php
<?php

return [
// Database Configuration
'db_type' => 'mysql', // Type of the database (e.g., 'mysql', 'pgsql')
'db_host' => 'localhost', // Database server host
'db_port' => 3306, // Database server port
'db_database' => 'registry', // Name of the database
'db_username' => 'your_username', // Database username
'db_password' => 'your_password', // Database password

// Escrow Configuration
'escrow_deposit_path' => '/opt/escrow', // Path for escrow deposits
'escrow_deleteXML' => false, // Whether to delete XML files after processing
'escrow_RDEupload' => false, // Enable/disable RDE upload
'escrow_BRDAupload' => false, // Enable/disable BRDA upload
'escrow_BRDAday' => 'Tuesday', // Day for BRDA uploads
'escrow_keyPath' => '/opt/escrow/escrowKey.asc', // Path to the escrow key
'escrow_keyPath_brda' => '/opt/escrow/icann-brda-gpg.pub', // Path to the BRDA escrow key
'escrow_privateKey' => '/opt/escrow/privatekey.asc', // Path to the private key for escrow
'escrow_sftp_host' => 'your.sftp.server.com', // Host for escrow SFTP server
'escrow_sftp_username' => 'your_username', // Username for escrow SFTP server
'escrow_sftp_password' => 'your_password', // Password for escrow SFTP server
'escrow_sftp_remotepath' => '/path/on/sftp/server/', // Remote path on the escrow SFTP server
'brda_sftp_host' => 'your.sftp.server.com', // Host for BRDA SFTP server
'brda_sftp_username' => 'your_username', // Username for BRDA SFTP server
'brda_sftp_password' => 'your_password', // Password for BRDA SFTP server
'brda_sftp_remotepath' => '/path/on/sftp/server/', // Remote path on the BRDA SFTP server
'escrow_report_url' => 'https://ry-api.icann.org/report/', // URL for escrow reporting
'escrow_report_username' => 'your_username', // Username for escrow reporting
'escrow_report_password' => 'your_password', // Password for escrow reporting

// Reporting Configuration
'reporting_path' => '/opt/reporting', // Path for reporting
'reporting_upload' => false, // Enable/disable reporting upload
'reporting_username' => 'your_username', // Username for reporting
'reporting_password' => 'your_password', // Password for reporting

// Zone Writer Configuration
'dns_server' => 'bind', // DNS server type (e.g., 'bind', 'nsd')
'ns' => [
'ns1' => 'ns1.namingo.org', // Primary name server
'ns2' => 'ns2.namingo.org', // Secondary name server
// ... more name servers as needed ...
],
'dns_soa' => 'hostmaster.example.com', // SOA email address

// URS Configuration
'urs_imap_host' => '{your_imap_server:993/imap/ssl}INBOX', // IMAP host for URS
'urs_imap_username' => 'your_username', // IMAP username for URS
'urs_imap_password' => 'your_password', // IMAP password for URS

// Message Broker Configuration
'mailer' => 'phpmailer', // Mailer type ('phpmailer', 'sendgrid', 'mailgun')
'mailer_api_key' => 'YOUR_API_KEY', // API key for sendgrid/mailgun
'mailer_domain' => 'example.com', // Domain for sendgrid/mailgun
'mailer_from' => '[email protected]', // From email address for mailer
'mailer_smtp_host' => 'smtp.example.com', // SMTP host for mailer
'mailer_smtp_username' => '[email protected]', // SMTP username for mailer
'mailer_smtp_password' => 'your_password', // SMTP password for mailer
'mailer_smtp_port' => 587, // SMTP port for mailer

'mailer_sms' => 'twilio', // SMS provider ('twilio', 'telesign', 'plivo', 'vonage', 'clickatell')
'mailer_sms_account' => 'YOUR_ACCOUNT_SID/USERNAME', // Account SID/username for SMS
'mailer_sms_auth' => 'YOUR_AUTH_TOKEN/PASSWORD', // Auth token/password for SMS

// TMCH Configuration
'tmch_path' => '/tmp/', // Path for TMCH files
'tmch_smdrl_user' => 'your_username', // Username for TMCH SMDRL
'tmch_smdrl_pass' => 'your_password', // Password for TMCH SMDRL
'tmch_dnl_user' => 'your_username', // Username for TMCH DNL
'tmch_dnl_pass' => 'your_password', // Password for TMCH DNL

// LORDN Configuration
'lordn_user' => 'your_username', // Username for LORDN
'lordn_pass' => 'your_password', // Password for LORDN
];
```

## Control Panel Configuration (`/var/www/cp/.env`)

This file configures the environment for the control panel of Namingo.

```plaintext
APP_NAME='CP'
APP_ENV=public
APP_URL=https://cp.example.com
APP_DOMAIN=example.com
APP_ROOT=/var/www/cp
DB_DRIVER=mysql # Type of the database (e.g., 'mysql', 'pgsql')
DB_HOST=localhost # Database server host
DB_DATABASE=registry # Name of the database
DB_USERNAME=root # Database username
DB_PASSWORD= # Database password
DB_PORT=3306 # Database server port
# Mailer settings (Driver = smtp or utopia, API Provider = sendgrid or mailgun)
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=username
MAIL_PASSWORD=password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS='[email protected]'
MAIL_FROM_NAME='Example'
MAIL_API_KEY='test-api-key'
MAIL_API_PROVIDER='sendgrid'
STRIPE_SECRET_KEY='stripe-secret-key'
STRIPE_PUBLISHABLE_KEY='stripe-publishable-key'
TEST_TLDS=.test,.com.test
```

## DAS Server Configuration (`/opt/registry/das/config.php`)

Configurations for the Domain Availability Service (DAS) server.

```php
<?php

return [
'db_type' => 'mysql', // Type of the database (e.g., 'mysql', 'pgsql')
'db_host' => 'localhost', // Database server host
'db_port' => 3306, // Database server port
'db_database' => 'registry', // Name of the database
'db_username' => 'your_username', // Database username
'db_password' => 'your_password' // Database password
];
```

## EPP Server Configuration (`/opt/registry/epp/config.php`)

Settings for the Extensible Provisioning Protocol (EPP) server.

```php
<?php

return [
'db_type' => 'mysql', // Type of the database (e.g., 'mysql', 'pgsql')
'db_host' => 'localhost', // Database server host
'db_port' => 3306, // Database server port
'db_database' => 'registry', // Name of the database
'db_username' => 'your_username', // Database username
'db_password' => 'your_password', // Database password
'epp_host' => '0.0.0.0', // IP that the server will bind to, leave as is if no specific need
'epp_port' => 700, // Port that the server will use
'epp_pid' => '/var/run/epp.pid', // PID file of the server (do not change)
'epp_greeting' => 'Namingo EPP Server 1.0', // EPP server prefix
'epp_prefix' => 'namingo', // EPP server prefix
'ssl_cert' => '', // Path to the SSL certificate that will be used by the server
'ssl_key' => '', // Path to the SSL keyfile that will be used by the server
'test_tlds' => '.test,.com.test', // Test TLDs for debugging purposes
];
```

## RDAP Server Configuration (`/opt/registry/rdap/config.php`)

Configuration for the Registration Data Access Protocol (RDAP) server.

```php
<?php

return [
'db_type' => 'mysql', // Type of the database (e.g., 'mysql', 'pgsql')
'db_host' => 'localhost', // Database server host
'db_port' => 3306, // Database server port
'db_database' => 'registry', // Name of the database
'db_username' => 'your_username', // Database username
'db_password' => 'your_password', // Database password
'roid' => 'XX', // Registry Object ID
'registry_url' => 'https://example.com/rdap-terms', // URL of registry website
'rdap_url' => 'https://rdap.example.com', // URL of RDAP server
];
```

## WHOIS Server Configuration (`/opt/registry/whois/port43/config.php`)

Settings for the WHOIS server running on port 43.

```php
<?php

return [
'db_type' => 'mysql', // Type of the database (e.g., 'mysql', 'pgsql')
'db_host' => 'localhost', // Database server host
'db_port' => 3306, // Database server port
'db_database' => 'registry', // Name of the database
'db_username' => 'your_username', // Database username
'db_password' => 'your_password', // Database password
'privacy' => false, // Toggle for privacy mode
'roid' => 'XX', // Registry Object ID
];
```

In conclusion, this detailed configuration guide aims to streamline the setup process of the Namingo system for users of all expertise levels. The guide meticulously details each configuration file, providing clear explanations and guidance for customization to suit your specific needs. This approach ensures that you can configure Namingo with confidence, optimizing it for your registry management requirements. We are committed to making the configuration process as straightforward as possible, and we welcome any questions or requests for further assistance. Your successful deployment and efficient management of Namingo is our top priority.

After finalizing the configuration of Namingo, the next step is to consult the [Initial Operation Guide](docs/iog.md). This guide provides comprehensive details on configuring your registry, adding registrars, and much more, to ensure a smooth start with your system.
59 changes: 59 additions & 0 deletions docs/faq.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# FAQ

Welcome to the FAQ for Namingo. This document is intended as a resource for registries to share with their registrars, providing answers to common questions and guidance on managing registrar accounts.

## General Information

- **Configuration Access**: All configurations of a registrar account are managed via the control panel. Registrars can choose to manage their customers through the panel or via EPP (Extensible Provisioning Protocol).
- **SSL Requirement**: Access to the registry requires an SSL certificate. Any valid SSL certificate will work.

## Tools and Modules

- **EPP Client**: We provide an EPP client in PHP available at [Tembo EPP Client](https://github.com/getpinga/tembo).
- **WHMCS Module**: For integration with WHMCS, use our module available at [WHMCS EPP RFC](https://github.com/getpinga/whmcs-epp-rfc).
- **FOSSBilling Module**: For FOSSBilling integration, refer to [FOSSBilling EPP RFC](https://github.com/getpinga/fossbilling-epp-rfc).
- **Compatibility**: All other EPP clients that support RFC-compliant EPP will also work with our system.

## Contact Management

- **Contact Types**: We support registrant, admin, tech, and billing contacts. Contacts can be updated at any time.

## EPP Extensions

Namingo's EPP service supports the following extensions:

- `urn:ietf:params:xml:ns:rgp-1.0`
- `urn:ietf:params:xml:ns:secDNS-1.1`
- `urn:ietf:params:xml:ns:launch-1.0`
- `urn:ietf:params:xml:ns:epp:fee-1.0`
- `urn:ietf:params:xml:ns:mark-1.0`
- `urn:ietf:params:xml:ns:allocationToken-1.0`

## WHOIS and RDAP

- **Real-Time Updates**: WHOIS and RDAP information is updated in real-time.
- **Large Registries**: For registries with over 150,000 domains, updates are near-real-time.

## Nameserver Requirements

- **Host Objects**: Nameservers must be created as host objects in the registry before associating them with a domain.
- **IPv6 Support**: IPv6 is supported.
- **Hostname Validation**: Hostnames are not validated, but limits are as per RFCs.
- **IP Limitation**: Currently, we support one IP per nameserver.

## DNSSEC Support

- **DS and DNSKEY**: DNSSEC is supported, including both DS and DNSKEY records.
- **Supported Algorithms**:
- RSA/SHA-256
- ECDSA Curve P-256 with SHA-256
- ECDSA Curve P-384 with SHA-384
- Ed25519
- Ed448

## Internationalized Domain Names (IDNs)

- **Support for IDNs**: IDNs are supported in Namingo.
- **Script Mixing**: Mixing scripts in a single domain name is not supported.

This FAQ should cover the essential aspects of managing a registrar account with Namingo. If you have further questions or require additional assistance, please feel free to reach out to our support team.
8 changes: 7 additions & 1 deletion docs/install.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
# Installation & Usage
# Installation

Welcome to the Installation Guide for Namingo, the comprehensive domain registry management tool. For those who prefer a streamlined setup, an automated installation process is available at [https://namingo.org](https://namingo.org). We highly recommend utilizing this option for a hassle-free and efficient installation experience.

As you follow along with this document, it's important to also review the [Configuration Guide](configuration.md). This guide will provide you with detailed information on how to configure various components of Namingo, ensuring that your system is tailored to meet your specific requirements. Familiarizing yourself with these configuration steps during installation will help in setting up Namingo for optimal performance and functionality.

Once you have completed the installation process, we encourage you to proceed to the [Initial Operation Guide](docs/iog.md) for detailed instructions on how to configure your registry, add registrars, and other essential operational steps.

## 1. Install the required packages:

Expand Down
Loading

0 comments on commit 61476df

Please sign in to comment.