In order to clone an existing website create a new .sh file named clonewebsite.sh and put the following code within it.
#!/bin/bash
# Usage: ./create-ddev-staging.sh sourceproject stagingproject
set -e
SOURCE_PROJECT=$1
STAGING_PROJECT=$2
if [ -z "$SOURCE_PROJECT" ] || [ -z "$STAGING_PROJECT" ]; then
echo "❌ Please provide both source and staging project names."
echo "Usage: $0 <source-project> <staging-project>"
exit 1
fi
echo "🚀 Cloning $SOURCE_PROJECT into new DDEV project: $STAGING_PROJECT"
mkdir "$STAGING_PROJECT"
rsync -a --exclude=".ddev/sequelpro.spf" "$SOURCE_PROJECT/" "$STAGING_PROJECT/"
cd "$STAGING_PROJECT"
# Replace DDEV config
ddev config --project-type=wordpress
ddev start
# Replace URLs in DB dump
echo "📦 Exporting and importing DB..."
ddev --project "$SOURCE_PROJECT" wp db export /tmp/source-db.sql
ddev wp db import /tmp/source-db.sql
# Update site URLs
OLD_URL="${SOURCE_PROJECT}.ddev.site"
NEW_URL="${STAGING_PROJECT}.ddev.site"
echo "🔁 Updating URLs from $OLD_URL to $NEW_URL"
ddev wp search-replace "$OLD_URL" "$NEW_URL" --skip-columns=guid
ddev wp rewrite flush
echo "✅ Staging site ready at: https://${NEW_URL}"
ddev launch