diff options
| author | Benjamin Sanders <ben@Benjamins-MacBook-Pro.local> | 2025-07-08 19:19:31 -0400 |
|---|---|---|
| committer | Benjamin Sanders <ben@Benjamins-MacBook-Pro.local> | 2025-07-08 19:19:31 -0400 |
| commit | 8b89dc4156decbe5ef98981724d1cf1324adcab8 (patch) | |
| tree | 87e1a21ef59c4498a83bce4db633928179285a0a /_site/jekyll-nginx.sh | |
| parent | cb192289eeecccb750f613b993dc3f366446d4f2 (diff) | |
fixed up a post removing a plus sign
Diffstat (limited to '_site/jekyll-nginx.sh')
| -rw-r--r-- | _site/jekyll-nginx.sh | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/_site/jekyll-nginx.sh b/_site/jekyll-nginx.sh new file mode 100644 index 0000000..634449d --- /dev/null +++ b/_site/jekyll-nginx.sh @@ -0,0 +1,83 @@ +#!/bin/bash + +# Exit on errors +set -e + +# Variables +USER_HOME="/data" +SITE_NAME="stg-jekyll" +BARE_REPO="$USER_HOME/repos/$SITE_NAME.git" +SITE_DIR="$USER_HOME/sites/$SITE_NAME" +PUBLIC_DIR="$SITE_DIR/html" +DOMAIN="sanderstechnologygroup.com" +NGINX_CONF="/etc/nginx/sites-available/$DOMAIN.conf" + +# Update and install dependencies +sudo apt update +sudo apt install -y ruby-full build-essential zlib1g-dev git nginx + +# Setup Ruby environment in .bashrc if not already present +if ! grep -q 'export GEM_HOME' "$USER_HOME/.bashrc"; then + echo 'export GEM_HOME="$HOME/gems"' >> "$USER_HOME/.bashrc" + echo 'export PATH="$HOME/gems/bin:$PATH"' >> "$USER_HOME/.bashrc" +fi + +# Load environment +export GEM_HOME="$USER_HOME/gems" +export PATH="$USER_HOME/gems/bin:$PATH" + +# Install Jekyll and Bundler +gem install jekyll bundler + +# Create directories +mkdir -p "$BARE_REPO" "$SITE_DIR" "$PUBLIC_DIR" + +# Setup Git bare repo +cd "$BARE_REPO" +git init --bare + +# Create post-receive hook +cat > hooks/post-receive <<EOF +#!/bin/bash +TARGET_DIR="$SITE_DIR" +PUBLIC_DIR="$PUBLIC_DIR" + +export GEM_HOME="$USER_HOME/gems" +export PATH="$USER_HOME/gems/bin:$PATH" + +GIT_WORK_TREE="\$TARGET_DIR" git checkout -f + +cd "\$TARGET_DIR" +bundle install --path vendor/bundle +bundle exec jekyll build -d "\$PUBLIC_DIR" +EOF + +chmod +x hooks/post-receive + +# Adjust permissions for NGINX access +chmod o+x "$USER_HOME" +chmod -R o+rX "$PUBLIC_DIR" + +# Create NGINX config +sudo tee "$NGINX_CONF" > /dev/null <<EOF +server { + listen 80; + server_name $DOMAIN; + + root $PUBLIC_DIR; + index index.html; + + location / { + try_files \$uri \$uri.html \$uri/ =404; + } +} +EOF + +# Enable NGINX site +sudo ln -s "$NGINX_CONF" /etc/nginx/sites-enabled/ + +# Test and reload NGINX +sudo nginx -t && sudo systemctl reload nginx + +echo "✅ Jekyll site deployment setup complete." +echo "➡️ Push your site with: git remote add live ssh://ben@64.42.180.156/$BARE_REPO && git push live master" |
