@@ -3,7 +3,20 @@ set -euo pipefail |
| 3 | 3 | |
| 4 | 4 | STAMP=$(date +%Y-%m-%d-%H%M%S) |
| 5 | 5 | OUTDIR=~/builds/$STAMP |
| 6 | | -SITE=/var/www/dougk.musicsian.com |
| 6 | +SITE=/var/www/dougk.world |
| 7 | + |
| 8 | +# Detect distro |
| 9 | +if [ -f /etc/os-release ]; then |
| 10 | + . /etc/os-release |
| 11 | + DISTRO="${ID:-unknown}" |
| 12 | +else |
| 13 | + DISTRO="unknown" |
| 14 | +fi |
| 15 | + |
| 16 | +echo "▶ Detected distro: $DISTRO" |
| 17 | + |
| 18 | +# Ensure builds directory exists |
| 19 | +mkdir -p ~/builds |
| 7 | 20 | |
| 8 | 21 | echo "▶ npm ci" |
| 9 | 22 | npm ci |
@@ -16,8 +29,23 @@ echo "▶ copy into releases" |
| 16 | 29 | sudo mkdir -p "$SITE/releases" |
| 17 | 30 | sudo rsync -az --delete "$OUTDIR"/ "$SITE/releases/$STAMP/" |
| 18 | 31 | |
| 19 | | -echo "▶ fix selinux context" |
| 20 | | -sudo restorecon -Rv "$SITE/releases/$STAMP" |
| 32 | +# SELinux context fix (Alma/RHEL/Fedora only) |
| 33 | +case "$DISTRO" in |
| 34 | + almalinux|rhel|centos|fedora|rocky) |
| 35 | + echo "▶ fix selinux context" |
| 36 | + sudo restorecon -Rv "$SITE/releases/$STAMP" |
| 37 | + ;; |
| 38 | + arch|manjaro|endeavouros) |
| 39 | + echo "▶ skipping selinux (not used on $DISTRO)" |
| 40 | + ;; |
| 41 | + *) |
| 42 | + # Fallback: run restorecon if available |
| 43 | + if command -v restorecon &>/dev/null; then |
| 44 | + echo "▶ fix selinux context" |
| 45 | + sudo restorecon -Rv "$SITE/releases/$STAMP" |
| 46 | + fi |
| 47 | + ;; |
| 48 | +esac |
| 21 | 49 | |
| 22 | 50 | echo "▶ flip current symlink" |
| 23 | 51 | sudo rm -rf "$SITE/current" |
@@ -26,4 +54,4 @@ sudo ln -s "$SITE/releases/$STAMP" "$SITE/current" |
| 26 | 54 | echo "▶ reload nginx" |
| 27 | 55 | sudo systemctl reload nginx |
| 28 | 56 | |
| 29 | | -echo "✓ Deployed dougk $STAMP" |
| 57 | +echo "✓ Deployed dougk $STAMP on $DISTRO" |