Files
Kikomiko/kikomiko/deploy/rsync-upload.sh
T

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."