From d9b8802f9f316a84206a9f72b898ed925ca8dd12 Mon Sep 17 00:00:00 2001
From: Pinga <121483313+getpinga@users.noreply.github.com>
Date: Tue, 10 Dec 2024 15:27:03 +0200
Subject: [PATCH] Preparation for 1.0.10
---
README.md | 2 +
cp/resources/views/partials/footer.twig | 2 +-
docs/install.sh | 2 +-
docs/update1010.sh | 126 ++++++++++++++++++++++++
4 files changed, 130 insertions(+), 2 deletions(-)
create mode 100644 docs/update1010.sh
diff --git a/README.md b/README.md
index 140d910..dcbc45f 100644
--- a/README.md
+++ b/README.md
@@ -91,6 +91,8 @@ After installation, be sure to review all the guides in the Documentation sectio
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.9 to v1.0.10 - backup registry, download and run the [update1010.sh](docs/update1010.sh) script.
+
- 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.
diff --git a/cp/resources/views/partials/footer.twig b/cp/resources/views/partials/footer.twig
index e43a5ce..77181fe 100644
--- a/cp/resources/views/partials/footer.twig
+++ b/cp/resources/views/partials/footer.twig
@@ -14,7 +14,7 @@
Namingo
- v1.0.9
+ v1.0.10
diff --git a/docs/install.sh b/docs/install.sh
index eef7a9f..c85d38b 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.9 --single-branch https://github.com/getnamingo/registry /opt/registry
+ git clone --branch v1.0.10 --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/update1010.sh b/docs/update1010.sh
new file mode 100644
index 0000000..283002e
--- /dev/null
+++ b/docs/update1010.sh
@@ -0,0 +1,126 @@
+#!/bin/bash
+
+# Prompt the user for confirmation
+echo "This will update Namingo Registry from v1.0.9 to v1.0.10."
+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.10 from the repository..."
+git clone --branch v1.0.10 --single-branch https://github.com/getnamingo/registry /opt/registry1010
+
+# 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/registry1010/automation" "/opt/registry/automation"
+copy_files "/opt/registry1010/cp" "/var/www/cp"
+copy_files "/opt/registry1010/whois/web" "/var/www/whois"
+copy_files "/opt/registry1010/das" "/opt/registry/das"
+copy_files "/opt/registry1010/whois/port43" "/opt/registry/whois/port43"
+copy_files "/opt/registry1010/rdap" "/opt/registry/rdap"
+copy_files "/opt/registry1010/epp" "/opt/registry/epp"
+copy_files "/opt/registry1010/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/registry1010..."
+ rm -rf /opt/registry1010
+else
+ echo "There was an issue starting the services. /opt/registry1010 will not be deleted."
+fi
+
+echo "Upgrade to v1.0.10 completed successfully."