#!/bin/bash # # Sample git post-receive hook for /srv/git/prism-v2.git on the VPS. # # Install: # sudo cp /var/www/prism-v2/scripts/post-receive.sample /srv/git/prism-v2.git/hooks/post-receive # sudo chmod +x /srv/git/prism-v2.git/hooks/post-receive # # Required sudoers entry so the git user can restart services without a password. # Adjust GIT_USER if your git is owned by a different account. # GIT_USER ALL=(root) NOPASSWD: /var/www/prism-v2/scripts/deploy.sh set -euo pipefail BRANCH="master" WEB_DIR="/var/www/prism-v2" GIT_DIR="/srv/git/prism-v2.git" LOG="/var/log/git-deploy.log" exec >> "$LOG" 2>&1 while read -r oldrev newrev refname; do if [ "$refname" = "refs/heads/$BRANCH" ]; then echo "$(date -Is): Checking out $BRANCH to $WEB_DIR" sudo -u www-data git --work-tree="$WEB_DIR" --git-dir="$GIT_DIR" checkout -f "$BRANCH" echo "$(date -Is): Running deploy.sh" sudo "$WEB_DIR/scripts/deploy.sh" echo "$(date -Is): Done." fi done