mirror of
https://github.com/getnamingo/registry.git
synced 2025-07-01 16:43:26 +02:00
Added support for Ubuntu 24.04 LTS
and PHP 8.3 / MariaDB 10.11.8
This commit is contained in:
parent
51a0a7215c
commit
e851c151f9
4 changed files with 126 additions and 4 deletions
|
@ -16,7 +16,7 @@ Namingo is optimally designed for the upcoming ICANN application round, providin
|
|||
|
||||
**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.
|
||||
**Namingo** efficiently manages 150,000 domains on a VPS setup (2 cores, 4GB RAM, 100GB SSD) and is compatible with Ubuntu 22.04/24.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
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
<a href="https://namingo.org" target="_blank" class="link-secondary" rel="noopener">Namingo</a>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
v1.0.0-RC4
|
||||
v1.0.0-RC5
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
|
|
@ -6,6 +6,8 @@ As you follow along with this document, it's important to also review the [Confi
|
|||
|
||||
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.
|
||||
|
||||
**To install Namingo on Ubuntu 24.04 LTS with PHP 8.3 and MariaDB 10.11.8, use the automated installer currently provided.**
|
||||
|
||||
## 1. Install the required packages:
|
||||
|
||||
```bash
|
||||
|
|
124
docs/install.sh
124
docs/install.sh
|
@ -31,7 +31,7 @@ if [[ -e /etc/os-release ]]; then
|
|||
fi
|
||||
|
||||
# Proceed if it's Ubuntu 22.04 or Debian 12
|
||||
if [[ ("$OS" == "Ubuntu" && "$VER" == "22.04") || ("$OS" == "Debian GNU/Linux" && "$VER" == "12") ]]; then
|
||||
if [[ ("$OS" == "Ubuntu" && "$VER" == "22.04") || ("$OS" == "Ubuntu" && "$VER" == "24.04") || ("$OS" == "Debian GNU/Linux" && "$VER" == "12") ]]; then
|
||||
# Prompt for details
|
||||
REGISTRY_DOMAIN=$(prompt_for_input "Enter main domain for registry")
|
||||
YOUR_IPV4_ADDRESS=$(prompt_for_input "Enter your IPv4 address")
|
||||
|
@ -56,6 +56,15 @@ if [[ ("$OS" == "Ubuntu" && "$VER" == "22.04") || ("$OS" == "Debian GNU/Linux" &
|
|||
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' -o caddy-stable.gpg.key
|
||||
gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg caddy-stable.gpg.key
|
||||
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list
|
||||
elif [[ "$OS" == "Ubuntu" && "$VER" == "24.04" ]]; then
|
||||
echo "Installing required packages..."
|
||||
apt update -y
|
||||
apt install -y apt-transport-https curl debian-archive-keyring debian-keyring software-properties-common ufw
|
||||
gpg --no-default-keyring --keyring /usr/share/keyrings/ondrej-php.gpg --keyserver keyserver.ubuntu.com --recv-keys 4F4EA0AAE5267A6C
|
||||
echo "deb [signed-by=/usr/share/keyrings/ondrej-php.gpg] http://ppa.launchpad.net/ondrej/php/ubuntu noble main" | sudo tee /etc/apt/sources.list.d/ondrej-php.list
|
||||
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' -o caddy-stable.gpg.key
|
||||
gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg caddy-stable.gpg.key
|
||||
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list
|
||||
else
|
||||
echo "Installing required packages..."
|
||||
apt update -y
|
||||
|
@ -70,7 +79,11 @@ if [[ ("$OS" == "Ubuntu" && "$VER" == "22.04") || ("$OS" == "Debian GNU/Linux" &
|
|||
echo "Updating package lists..."
|
||||
apt update -y
|
||||
echo "Installing additional required packages..."
|
||||
if [[ "$OS" == "Ubuntu" && "$VER" == "24.04" ]]; then
|
||||
apt install -y bzip2 caddy gettext git gnupg2 net-tools php8.3 php8.3-cli php8.3-common php8.3-curl php8.3-ds php8.3-fpm php8.3-gd php8.3-gmp php8.3-gnupg php8.3-igbinary php8.3-imap php8.3-intl php8.3-mbstring php8.3-opcache php8.3-readline php8.3-redis php8.3-soap php8.3-swoole php8.3-uuid php8.3-xml pv redis unzip wget whois
|
||||
else
|
||||
apt install -y bzip2 caddy gettext git gnupg2 net-tools php8.2 php8.2-cli php8.2-common php8.2-curl php8.2-ds php8.2-fpm php8.2-gd php8.2-gmp php8.2-gnupg php8.2-igbinary php8.2-imap php8.2-intl php8.2-mbstring php8.2-opcache php8.2-readline php8.2-redis php8.2-soap php8.2-swoole php8.2-uuid php8.2-xml pv redis unzip wget whois
|
||||
fi
|
||||
|
||||
# Set timezone to UTC if it's not already
|
||||
currentTimezone=$(timedatectl status | grep "Time zone" | awk '{print $3}')
|
||||
|
@ -80,8 +93,13 @@ if [[ ("$OS" == "Ubuntu" && "$VER" == "22.04") || ("$OS" == "Debian GNU/Linux" &
|
|||
fi
|
||||
|
||||
# Edit php.ini files
|
||||
if [[ "$OS" == "Ubuntu" && "$VER" == "24.04" ]]; then
|
||||
phpIniCli='/etc/php/8.3/cli/php.ini'
|
||||
phpIniFpm='/etc/php/8.3/fpm/php.ini'
|
||||
else
|
||||
phpIniCli='/etc/php/8.2/cli/php.ini'
|
||||
phpIniFpm='/etc/php/8.2/fpm/php.ini'
|
||||
fi
|
||||
|
||||
echo "Updating PHP configuration..."
|
||||
for file in "$phpIniCli" "$phpIniFpm"; do
|
||||
|
@ -96,12 +114,21 @@ if [[ ("$OS" == "Ubuntu" && "$VER" == "22.04") || ("$OS" == "Debian GNU/Linux" &
|
|||
edit_php_ini "$file" "memory_limit" "512M"
|
||||
done
|
||||
|
||||
if [[ "$OS" == "Ubuntu" && "$VER" == "24.04" ]]; then
|
||||
edit_php_ini "/etc/php/8.3/mods-available/opcache.ini" "opcache.jit" "1255"
|
||||
edit_php_ini "/etc/php/8.3/mods-available/opcache.ini" "opcache.jit_buffer_size" "100M"
|
||||
else
|
||||
edit_php_ini "/etc/php/8.2/mods-available/opcache.ini" "opcache.jit" "1255"
|
||||
edit_php_ini "/etc/php/8.2/mods-available/opcache.ini" "opcache.jit_buffer_size" "100M"
|
||||
fi
|
||||
|
||||
# Restart PHP-FPM service
|
||||
echo "Restarting PHP 8.2-FPM service..."
|
||||
echo "Restarting PHP FPM service..."
|
||||
if [[ "$OS" == "Ubuntu" && "$VER" == "24.04" ]]; then
|
||||
systemctl restart php8.3-fpm
|
||||
else
|
||||
systemctl restart php8.2-fpm
|
||||
fi
|
||||
echo "PHP configuration update complete!"
|
||||
|
||||
#if [ "$DB_TYPE" == "MariaDB" ]; then
|
||||
|
@ -120,6 +147,19 @@ if [[ ("$OS" == "Ubuntu" && "$VER" == "22.04") || ("$OS" == "Debian GNU/Linux" &
|
|||
Suites: jammy
|
||||
Components: main main/debug
|
||||
Signed-By: /etc/apt/keyrings/mariadb-keyring.pgp
|
||||
EOF
|
||||
elif [[ "$OS" == "Ubuntu" && "$VER" == "24.04" ]]; then
|
||||
cat > /etc/apt/sources.list.d/mariadb.sources << EOF
|
||||
# MariaDB 11.4 repository list - created 2024-07-23 18:24 UTC
|
||||
# https://mariadb.org/download/
|
||||
X-Repolib-Name: MariaDB
|
||||
Types: deb
|
||||
# deb.mariadb.org is a dynamic mirror if your preferred mirror goes offline. See https://mariadb.org/mirrorbits/ for details.
|
||||
# URIs: https://deb.mariadb.org/11.4/ubuntu
|
||||
URIs: https://fastmirror.pp.ua/mariadb/repo/11.4/ubuntu
|
||||
Suites: noble
|
||||
Components: main main/debug
|
||||
Signed-By: /etc/apt/keyrings/mariadb-keyring.pgp
|
||||
EOF
|
||||
else
|
||||
cat > /etc/apt/sources.list.d/mariadb.sources << EOF
|
||||
|
@ -137,7 +177,11 @@ EOF
|
|||
fi
|
||||
|
||||
apt-get update
|
||||
if [[ "$OS" == "Ubuntu" && "$VER" == "24.04" ]]; then
|
||||
apt install -y mariadb-client mariadb-server php8.3-mysql
|
||||
else
|
||||
apt install -y mariadb-client mariadb-server php8.2-mysql
|
||||
fi
|
||||
echo "Please follow the prompts for secure installation of MariaDB."
|
||||
mysql_secure_installation
|
||||
|
||||
|
@ -210,6 +254,81 @@ EOF
|
|||
BIND_LINE=$(generate_bind_line $YOUR_IPV4_ADDRESS $YOUR_IPV6_ADDRESS)
|
||||
|
||||
# Update Caddyfile
|
||||
if [[ "$OS" == "Ubuntu" && "$VER" == "24.04" ]]; then
|
||||
cat > /etc/caddy/Caddyfile << EOF
|
||||
rdaptest.$REGISTRY_DOMAIN {
|
||||
$BIND_LINE
|
||||
reverse_proxy localhost:7500
|
||||
encode gzip
|
||||
file_server
|
||||
tls $YOUR_EMAIL
|
||||
header -Server
|
||||
header * {
|
||||
Referrer-Policy "no-referrer"
|
||||
Strict-Transport-Security max-age=31536000;
|
||||
X-Content-Type-Options nosniff
|
||||
X-Frame-Options DENY
|
||||
X-XSS-Protection "1; mode=block"
|
||||
Content-Security-Policy "default-src 'none'; object-src 'none'; base-uri 'self'; frame-ancestors 'none'; img-src https:; font-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'none'; form-action 'self'; worker-src 'none'; frame-src 'none';"
|
||||
Feature-Policy "accelerometer 'none'; autoplay 'none'; camera 'none'; encrypted-media 'none'; fullscreen 'self'; geolocation 'none'; gyroscope 'none'; magnetometer 'none'; microphone 'none'; midi 'none'; payment 'none'; picture-in-picture 'self'; usb 'none';"
|
||||
Permissions-Policy: accelerometer=(), autoplay=(), camera=(), encrypted-media=(), fullscreen=(self), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), picture-in-picture=(self), usb=();
|
||||
}
|
||||
}
|
||||
|
||||
whoistest.$REGISTRY_DOMAIN {
|
||||
$BIND_LINE
|
||||
root * /var/www/whois
|
||||
encode gzip
|
||||
php_fastcgi unix//run/php/php8.3-fpm.sock
|
||||
file_server
|
||||
tls $YOUR_EMAIL
|
||||
header -Server
|
||||
header * {
|
||||
Referrer-Policy "no-referrer"
|
||||
Strict-Transport-Security max-age=31536000;
|
||||
X-Content-Type-Options nosniff
|
||||
X-Frame-Options DENY
|
||||
X-XSS-Protection "1; mode=block"
|
||||
Content-Security-Policy: default-src 'none'; object-src 'none'; base-uri 'self'; frame-ancestors 'none'; img-src https:; font-src 'self'; style-src 'self' 'unsafe-inline' https://cdnjs.cloudflare.com; script-src 'none'; form-action 'self'; worker-src 'none'; frame-src 'none';
|
||||
Feature-Policy "accelerometer 'none'; autoplay 'none'; camera 'none'; encrypted-media 'none'; fullscreen 'self'; geolocation 'none'; gyroscope 'none'; magnetometer 'none'; microphone 'none'; midi 'none'; payment 'none'; picture-in-picture 'self'; usb 'none';"
|
||||
Permissions-Policy: accelerometer=(), autoplay=(), camera=(), encrypted-media=(), fullscreen=(self), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), picture-in-picture=(self), usb=();
|
||||
}
|
||||
}
|
||||
|
||||
cptest.$REGISTRY_DOMAIN {
|
||||
$BIND_LINE
|
||||
root * /var/www/cp/public
|
||||
php_fastcgi unix//run/php/php8.3-fpm.sock
|
||||
encode gzip
|
||||
file_server
|
||||
tls $YOUR_EMAIL
|
||||
header -Server
|
||||
log {
|
||||
output file /var/log/caddy/access.log
|
||||
format console
|
||||
}
|
||||
log {
|
||||
output file /var/log/caddy/error.log
|
||||
level ERROR
|
||||
}
|
||||
# Adminer Configuration
|
||||
route /adminer.php* {
|
||||
root * /usr/share/adminer
|
||||
php_fastcgi unix//run/php/php8.3-fpm.sock
|
||||
}
|
||||
header * {
|
||||
Referrer-Policy "same-origin"
|
||||
Strict-Transport-Security max-age=31536000;
|
||||
X-Content-Type-Options nosniff
|
||||
X-Frame-Options DENY
|
||||
X-XSS-Protection "1; mode=block"
|
||||
Content-Security-Policy: default-src 'none'; object-src 'none'; base-uri 'self'; frame-ancestors 'none'; img-src https:; font-src 'self'; style-src 'self' 'unsafe-inline' https://rsms.me; script-src 'self' 'unsafe-inline' https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.18.5/; form-action 'self'; worker-src 'none'; frame-src 'none';
|
||||
Feature-Policy "accelerometer 'none'; autoplay 'none'; camera 'none'; encrypted-media 'none'; fullscreen 'self'; geolocation 'none'; gyroscope 'none'; magnetometer 'none'; microphone 'none'; midi 'none'; payment 'none'; picture-in-picture 'self'; usb 'none';"
|
||||
Permissions-Policy: accelerometer=(), autoplay=(), camera=(), encrypted-media=(), fullscreen=(self), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), picture-in-picture=(self), usb=();
|
||||
}
|
||||
}
|
||||
EOF
|
||||
else
|
||||
cat > /etc/caddy/Caddyfile << EOF
|
||||
rdap.$REGISTRY_DOMAIN {
|
||||
$BIND_LINE
|
||||
|
@ -283,6 +402,7 @@ EOF
|
|||
}
|
||||
}
|
||||
EOF
|
||||
fi
|
||||
|
||||
systemctl enable caddy
|
||||
systemctl restart caddy
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue