62 lines
2.7 KiB
Bash
Executable File
62 lines
2.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
# ------------------------------------------------------------
|
||
# OURWORLD Web – Production build ( www_threefold_2025 )
|
||
# ------------------------------------------------------------
|
||
|
||
set -e
|
||
cd "$(dirname "$0")" # always run from the script’s directory
|
||
|
||
# -----------------------------------------------------------------
|
||
# 1️⃣ Configuration – adjust these values for your deployment
|
||
# -----------------------------------------------------------------
|
||
# Folder name that will be used as a URL‑prefix when the site is
|
||
# served from a sub‑directory (e.g. https://example.com/threefold/ ).
|
||
PREFIX="threefold" # <--- change if you need a different path
|
||
|
||
# Remote server where the built files should be copied (optional)
|
||
REMOTE_USER="root"
|
||
REMOTE_HOST="threefold.info"
|
||
REMOTE_PATH="/root/hero/www/info/$PREFIX/"
|
||
|
||
# -----------------------------------------------------------------
|
||
# 2️⃣ Set the Vite base URL (used by the app at runtime)
|
||
# -----------------------------------------------------------------
|
||
export VITE_APP_BASE_URL="/$PREFIX"
|
||
echo "🔧 Setting VITE_APP_BASE_URL to $VITE_APP_BASE_URL"
|
||
|
||
# -----------------------------------------------------------------
|
||
# 3️⃣ Install (exact) dependencies – ensures reproducible builds
|
||
# -----------------------------------------------------------------
|
||
echo "📦 Installing frozen dependencies…"
|
||
pnpm install --frozen-lockfile
|
||
|
||
# -----------------------------------------------------------------
|
||
# 4️⃣ Build the static site
|
||
# -----------------------------------------------------------------
|
||
echo "🏗️ Running Vite production build…"
|
||
pnpm run build # creates ./dist/
|
||
|
||
# -----------------------------------------------------------------
|
||
# 5️⃣ (Optional) Sync the build locally – useful for quick testing
|
||
# -----------------------------------------------------------------
|
||
if [ -d "${HOME}/hero/var/www/$PREFIX" ]; then
|
||
echo "🔄 Syncing build to local mirror: ${HOME}/hero/var/www/$PREFIX/"
|
||
rsync -av --delete dist/ "${HOME}/hero/var/www/$PREFIX/"
|
||
else
|
||
echo "⚠️ Local mirror folder not found – skipping local rsync"
|
||
fi
|
||
|
||
# -----------------------------------------------------------------
|
||
# 6️⃣ (Optional) Deploy to the remote threefold server
|
||
# -----------------------------------------------------------------
|
||
read -p "🚚 Deploy to remote server (${REMOTE_USER}@${REMOTE_HOST})? [y/N] " -n1 answer
|
||
echo
|
||
if [[ "$answer" =~ ^[Yy]$ ]]; then
|
||
echo "🔐 Syncing build to remote host…"
|
||
rsync -avz --delete dist/ "${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_PATH}"
|
||
echo "✅ Remote deployment finished."
|
||
else
|
||
echo "⏭️ Remote deployment skipped."
|
||
fi
|
||
|
||
echo "🏁 Build script completed." |