#!/usr/bin/env bash set -euo pipefail # Usage: ./deploy/rsync-upload.sh user@server [/remote/path] # Example: ./deploy/rsync-upload.sh root@203.0.113.10 if [[ $# -lt 1 ]]; then echo "Usage: $0 user@host [remote_root]" >&2 exit 1 fi HOST="$1" REMOTE_ROOT="${2:-/var/www/kikomiko}" ROOT="$(cd "$(dirname "$0")/.." && pwd)" echo "Uploading storefront -> ${HOST}:${REMOTE_ROOT}/dist/" rsync -avz --delete \ "${ROOT}/dist/" \ "${HOST}:${REMOTE_ROOT}/dist/" echo "Uploading admin -> ${HOST}:${REMOTE_ROOT}/admin/" rsync -avz \ --exclude 'data/*.db' \ --exclude 'data/*.db-*' \ --exclude 'data/.admin-credentials' \ --exclude '__pycache__/' \ --exclude '*.pyc' \ "${ROOT}/admin/" \ "${HOST}:${REMOTE_ROOT}/admin/" echo "Uploading deploy configs -> ${HOST}:${REMOTE_ROOT}/deploy/" rsync -avz \ "${ROOT}/deploy/" \ "${HOST}:${REMOTE_ROOT}/deploy/" ssh "${HOST}" "mkdir -p '${REMOTE_ROOT}/admin/data' '${REMOTE_ROOT}/dist/data' && chmod 750 '${REMOTE_ROOT}/admin/data'" echo "Done. On the server, follow deploy/DEPLOY.txt for Nginx/systemd/certbot."