From 6b34d08cae7217f45649911b99b58ab9bff3118c Mon Sep 17 00:00:00 2001 From: counterweight Date: Wed, 24 Dec 2025 10:55:22 +0100 Subject: [PATCH] deploy helper --- .gitignore | 14 ++++++++++++++ deploy.config.example | 21 +++++++++++++++++++++ deploy.sh | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 69 insertions(+) create mode 100644 .gitignore create mode 100644 deploy.config.example create mode 100755 deploy.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8f24f11 --- /dev/null +++ b/.gitignore @@ -0,0 +1,14 @@ +# Deployment configuration (contains sensitive server details) +deploy.config + +# OS files +.DS_Store +Thumbs.db + +# Editor files +.vscode/ +.idea/ +*.swp +*.swo +*~ + diff --git a/deploy.config.example b/deploy.config.example new file mode 100644 index 0000000..1c84f53 --- /dev/null +++ b/deploy.config.example @@ -0,0 +1,21 @@ +# Deployment Configuration +# Copy this file to deploy.config and fill in your server details +# deploy.config is gitignored to keep your credentials safe + +# Remote server hostname or IP address +REMOTE_HOST="example.com" + +# SSH username for the remote server +REMOTE_USER="username" + +# Remote path where the website should be deployed +# This should be the directory served by your webserver (e.g., /var/www/html, /home/username/public_html) +REMOTE_PATH="/var/www/html" + +# Optional: Path to SSH private key (if not using default ~/.ssh/id_rsa) +# Leave empty to use default SSH key +SSH_KEY="" + +# Optional: SSH port (defaults to 22 if not specified) +# SSH_PORT="22" + diff --git a/deploy.sh b/deploy.sh new file mode 100755 index 0000000..5cf9692 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +# Deployment script for pablohere website +# This script syncs the public folder to a remote webserver + +set -e # Exit on error + +# Load deployment configuration +if [ ! -f "deploy.config" ]; then + echo "Error: deploy.config file not found!" + echo "Please copy deploy.config.example to deploy.config and fill in your server details." + exit 1 +fi + +source deploy.config + +# Validate required variables +if [ -z "$REMOTE_HOST" ] || [ -z "$REMOTE_USER" ] || [ -z "$REMOTE_PATH" ]; then + echo "Error: Required variables not set in deploy.config" + echo "Please ensure REMOTE_HOST, REMOTE_USER, and REMOTE_PATH are set." + exit 1 +fi + +# Use rsync to sync files +echo "Deploying public folder to $REMOTE_USER@$REMOTE_HOST:$REMOTE_PATH" +rsync -avz --delete \ + --exclude='.git' \ + --exclude='.DS_Store' \ + $SSH_OPTS \ + public/ \ + $REMOTE_USER@$REMOTE_HOST:$REMOTE_PATH + +echo "Deployment complete!" +