39 lines
1.0 KiB
Bash
Executable File
39 lines
1.0 KiB
Bash
Executable File
#!/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."
|