diff --git a/README.md b/README.md index 7981255..5dbc7cf 100644 --- a/README.md +++ b/README.md @@ -6,11 +6,12 @@ ComposePress is a **Docker-based toolkit** designed to streamline WordPress upgr ## ๐Ÿš€ Project Configuration -### **Project Name & WordPress Version** +### **Project Name & WordPress Version & Compose Command** Define a **unique project name** and **WordPress version** in the `.env` file: ```bash COMPOSE_PROJECT_NAME=test WORDPRESS_VERSION=6-fpm +COMPOSE_COMMAND=podman-compose ``` --- @@ -26,10 +27,15 @@ IMAGE_DATABASE=mariadb:11.5 ### **Let's Encrypt Configuration** ```bash -VIRTUAL_HOST=test.test.org -LETSENCRYPT_HOST=test.test.org +VIRTUAL_HOST=podman.test.org +LETSENCRYPT_HOST=podman.test.org LETSENCRYPT_EMAIL=test@test.com LETSENCRYPT_TEST=true +HTTPS_METHOD=noredirect + +# redirect (default) - Redirects HTTP requests to HTTPS via HSTS. +# noredirect - Does not redirect HTTP requests to HTTPS. (e.g. https://podman.test.com:8080) +# nohttp - Disables the non-SSL site entirely. HTTP requests will get an error. ``` ### **Database Configuration** diff --git a/docker-compose.template.yml b/docker-compose.template.yml index e7d1e46..1d5d409 100644 --- a/docker-compose.template.yml +++ b/docker-compose.template.yml @@ -83,6 +83,7 @@ services: - ./nginx.conf:/etc/nginx/nginx.conf environment: - VIRTUAL_HOST=${VIRTUAL_HOST:-wordpress} + - HTTPS_METHOD=${HTTPS_METHOD:-noredirect} - LETSENCRYPT_HOST=${LETSENCRYPT_HOST:-wordpress} - LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL:-me} - LETSENCRYPT_TEST=${LETSENCRYPT_TEST:-true} diff --git a/wp-rocket-launch.sh b/wp-rocket-launch.sh index 0addd67..32856b0 100755 --- a/wp-rocket-launch.sh +++ b/wp-rocket-launch.sh @@ -3,34 +3,37 @@ # Define environment variables COMPOSE_FILE="docker-compose.first.yml" -echo "๐Ÿš€ Starting WordPress Deployment Process..." - -# Step 0: **Reset Environment** - Stop and remove volumes -echo "๐Ÿงน Cleaning up existing containers and volumes..." -docker compose down -v - -# Step 1: Build custom WordPress image -echo "๐Ÿ”ง Building custom WordPress image..." -docker compose -f "$COMPOSE_FILE" build - -# Step 2: Install or upgrade WordPress volume -echo "๐Ÿ“ฆ Installing or upgrading WordPress volume..." -docker compose -f "$COMPOSE_FILE" up -d - -# Step 3: Stop WordPress container (keep HTML volume) -echo "โน๏ธ Stopping WordPress container (keeping data)..." -docker compose -f "$COMPOSE_FILE" down - -# Step 4: Start production environment -echo "๐Ÿš€ Launching production environment..." -docker compose up -d - -# Step 5: Source .env and extract the first VIRTUAL_HOST address +# Source .env if it exists if [ -f .env ]; then set -o allexport source .env set +o allexport +fi +echo "๐Ÿš€ Starting WordPress Deployment Process..." + +# Step 0: **Reset Environment** - Stop and remove volumes +echo "๐Ÿงน Cleaning up existing containers and volumes..." +${COMPOSE_COMMAND:-podman-compose} down -v + +# Step 1: Build custom WordPress image +echo "๐Ÿ”ง Building custom WordPress image..." +${COMPOSE_COMMAND:-podman-compose} -f "$COMPOSE_FILE" build + +# Step 2: Install or upgrade WordPress volume +echo "๐Ÿ“ฆ Installing or upgrading WordPress volume..." +${COMPOSE_COMMAND:-podman-compose} -f "$COMPOSE_FILE" up -d + +# Step 3: Stop WordPress container (keep HTML volume) +echo "โน๏ธ Stopping WordPress container (keeping data)..." +${COMPOSE_COMMAND:-podman-compose} -f "$COMPOSE_FILE" down + +# Step 4: Start production environment +echo "๐Ÿš€ Launching production environment..." +${COMPOSE_COMMAND:-podman-compose} up -d + +# Step 5: Extract the first VIRTUAL_HOST address +if [ -f .env ]; then # Extract only the first address from VIRTUAL_HOST FIRST_VIRTUAL_HOST=$(echo "$VIRTUAL_HOST" | cut -d',' -f1) @@ -41,11 +44,11 @@ fi # Step 6: Copy new WordPress content after deployment echo "๐Ÿ“‚ Copying new WordPress content to wp-content and correct permissions..." -docker compose exec wordpress_${COMPOSE_PROJECT_NAME} bash -c "cp -a /var/www/html/wp-content-new/* /var/www/html/wp-content/" -docker compose exec wordpress_${COMPOSE_PROJECT_NAME} bash -c "/usr/bin/find /var/www/html/wp-content -type d -exec chmod 755 {} \; -o -type f -exec chmod 644 {} \;" +${COMPOSE_COMMAND:-podman-compose} exec wordpress_${COMPOSE_PROJECT_NAME} bash -c "cp -a /var/www/html/wp-content-new/* /var/www/html/wp-content/" +${COMPOSE_COMMAND:-podman-compose} exec wordpress_${COMPOSE_PROJECT_NAME} bash -c "/usr/bin/find /var/www/html/wp-content -type d -exec chmod 755 {} \; -o -type f -exec chmod 644 {} \;" echo "โœ… WordPress content successfully copied!" # Step 7: Shuffle salts echo "๐Ÿ“‚ Shuffle the salt keys...." -docker compose exec wpcli_${COMPOSE_PROJECT_NAME} wp config shuffle-salts +${COMPOSE_COMMAND:-podman-compose} exec wpcli_${COMPOSE_PROJECT_NAME} wp config shuffle-salts echo "โœ… Wordpress salt keys sucessfully shuffled!" \ No newline at end of file