From cf9b4cfa528064e097f43a0ad1084c73e4d621cb Mon Sep 17 00:00:00 2001
From: Pinga <121483313+getpinga@users.noreply.github.com>
Date: Tue, 26 Nov 2024 12:46:38 +0200
Subject: [PATCH] 1.0.9 version
---
README.md | 4 +
cp/resources/views/partials/footer.twig | 2 +-
docs/install.sh | 2 +-
docs/update109.sh | 126 ++++++++++++++++++++++++
4 files changed, 132 insertions(+), 2 deletions(-)
create mode 100644 docs/update109.sh
diff --git a/README.md b/README.md
index c281b94..a912c16 100644
--- a/README.md
+++ b/README.md
@@ -88,6 +88,10 @@ After installation, be sure to review all the guides in the Documentation sectio
### Update
+If your current version is not immediately before the latest, you must run the update scripts sequentially for each version, e.g., from 1.0.3 to 1.0.4, then from 1.0.4 to 1.0.5, and so on, until you reach the latest version.
+
+- v1.0.8 to v1.0.9 - backup registry, download and run the [update109.sh](docs/update109.sh) script.
+
- v1.0.7 to v1.0.8 - backup registry, download and run the [update108.sh](docs/update108.sh) script.
- v1.0.6 to v1.0.7 - backup registry, download and run the [update107.sh](docs/update107.sh) script.
diff --git a/cp/resources/views/partials/footer.twig b/cp/resources/views/partials/footer.twig
index bede812..e43a5ce 100644
--- a/cp/resources/views/partials/footer.twig
+++ b/cp/resources/views/partials/footer.twig
@@ -14,7 +14,7 @@
Namingo
- v1.0.8
+ v1.0.9
diff --git a/docs/install.sh b/docs/install.sh
index 10335f1..eef7a9f 100644
--- a/docs/install.sh
+++ b/docs/install.sh
@@ -240,7 +240,7 @@ EOF
wget "http://www.adminer.org/latest.php" -O /usr/share/adminer/latest.php
ln -s /usr/share/adminer/latest.php /usr/share/adminer/adminer.php
- git clone --branch v1.0.8 --single-branch https://github.com/getnamingo/registry /opt/registry
+ git clone --branch v1.0.9 --single-branch https://github.com/getnamingo/registry /opt/registry
mkdir -p /var/log/namingo
chown -R www-data:www-data /var/log/namingo
diff --git a/docs/update109.sh b/docs/update109.sh
new file mode 100644
index 0000000..9c3b65e
--- /dev/null
+++ b/docs/update109.sh
@@ -0,0 +1,126 @@
+#!/bin/bash
+
+# Prompt the user for confirmation
+echo "This will update Namingo Registry from v1.0.8 to v1.0.9."
+echo "Make sure you have a backup of the database, /var/www/cp, and /opt/registry."
+read -p "Are you sure you want to proceed? (y/n): " confirm
+
+# Check user input
+if [[ "$confirm" != "y" ]]; then
+ echo "Upgrade aborted."
+ exit 0
+fi
+
+# Create backup directory
+backup_dir="/opt/backup"
+mkdir -p "$backup_dir"
+
+# Backup directories
+echo "Creating backups..."
+tar -czf "$backup_dir/cp_backup_$(date +%F).tar.gz" -C / var/www/cp
+tar -czf "$backup_dir/whois_backup_$(date +%F).tar.gz" -C / var/www/whois
+tar -czf "$backup_dir/registry_backup_$(date +%F).tar.gz" -C / opt/registry
+
+# Database credentials
+config_file="/opt/registry/whois/port43/config.php"
+db_user=$(grep "'db_username'" "$config_file" | awk -F "=> '" '{print $2}' | sed "s/',//")
+db_pass=$(grep "'db_password'" "$config_file" | awk -F "=> '" '{print $2}' | sed "s/',//")
+db_host=$(grep "'db_host'" "$config_file" | awk -F "=> '" '{print $2}' | sed "s/',//")
+
+# List of databases to back up
+databases=("registry" "registryAudit" "registryTransaction")
+
+# Backup specific databases
+for db_name in "${databases[@]}"; do
+ echo "Backing up database $db_name..."
+ sql_backup_file="$backup_dir/db_${db_name}_backup_$(date +%F).sql"
+ mysqldump -u"$db_user" -p"$db_pass" -h"$db_host" "$db_name" > "$sql_backup_file"
+
+ # Compress the SQL backup file
+ echo "Compressing database backup $db_name..."
+ tar -czf "${sql_backup_file}.tar.gz" -C "$backup_dir" "$(basename "$sql_backup_file")"
+
+ # Remove the uncompressed SQL file
+ rm "$sql_backup_file"
+done
+
+# Stop services
+echo "Stopping services..."
+systemctl stop caddy
+systemctl stop epp
+systemctl stop whois
+systemctl stop rdap
+systemctl stop das
+
+# Clear cache
+echo "Clearing cache..."
+php /var/www/cp/bin/clear_cache.php
+
+# Clone the new version of the repository
+echo "Cloning v1.0.9 from the repository..."
+git clone --branch v1.0.9 --single-branch https://github.com/getnamingo/registry /opt/registry109
+
+# Copy files from the new version to the appropriate directories
+echo "Copying files..."
+
+# Function to copy files and maintain directory structure
+copy_files() {
+ src_dir=$1
+ dest_dir=$2
+
+ if [[ -d "$src_dir" ]]; then
+ echo "Copying from $src_dir to $dest_dir..."
+ cp -R "$src_dir/." "$dest_dir/"
+ else
+ echo "Source directory $src_dir does not exist. Skipping..."
+ fi
+}
+
+# Copy specific directories
+copy_files "/opt/registry109/automation" "/opt/registry/automation"
+copy_files "/opt/registry109/cp" "/var/www/cp"
+copy_files "/opt/registry109/whois/web" "/var/www/whois"
+copy_files "/opt/registry109/das" "/opt/registry/das"
+copy_files "/opt/registry109/whois/port43" "/opt/registry/whois/port43"
+copy_files "/opt/registry109/rdap" "/opt/registry/rdap"
+copy_files "/opt/registry109/epp" "/opt/registry/epp"
+copy_files "/opt/registry109/docs" "/opt/registry/docs"
+
+# Run composer update in copied directories (excluding docs)
+echo "Running composer update..."
+
+composer_update() {
+ dir=$1
+ if [[ -d "$dir" ]]; then
+ echo "Updating composer in $dir..."
+ cd "$dir" && composer update
+ else
+ echo "Directory $dir does not exist. Skipping composer update..."
+ fi
+}
+
+# Update composer in relevant directories
+composer_update "/opt/registry/automation"
+composer_update "/var/www/cp"
+composer_update "/opt/registry/das"
+composer_update "/opt/registry/whois/port43"
+composer_update "/opt/registry/rdap"
+composer_update "/opt/registry/epp"
+
+# Start services
+echo "Starting services..."
+systemctl start epp
+systemctl start whois
+systemctl start rdap
+systemctl start das
+systemctl start caddy
+
+# Check if services started successfully
+if [[ $? -eq 0 ]]; then
+ echo "Services started successfully. Deleting /opt/registry109..."
+ rm -rf /opt/registry109
+else
+ echo "There was an issue starting the services. /opt/registry109 will not be deleted."
+fi
+
+echo "Upgrade to v1.0.9 completed successfully."