79 lines
1.8 KiB
Bash
79 lines
1.8 KiB
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
set -euo pipefail
|
||
|
|
|
||
|
|
# Clio deployment script
|
||
|
|
# Deploys clio-api and clio-ui to server (10.0.0.45)
|
||
|
|
#
|
||
|
|
# Usage: ./deploy.sh [api|ui|all]
|
||
|
|
|
||
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
|
|
CLIO_ROOT="$(dirname "$(dirname "$SCRIPT_DIR")")"
|
||
|
|
|
||
|
|
SERVER_HOST="10.0.0.45"
|
||
|
|
SERVER_USER="thallock"
|
||
|
|
SERVER_PORT="2252"
|
||
|
|
|
||
|
|
# Server paths
|
||
|
|
API_CODE_DIR="/work/hosting/recordings"
|
||
|
|
UI_DIR="/work/hosting/recordings-viewer"
|
||
|
|
|
||
|
|
SSH_OPTS="-p ${SERVER_PORT}"
|
||
|
|
SSH_CMD="ssh ${SSH_OPTS} ${SERVER_USER}@${SERVER_HOST}"
|
||
|
|
RSYNC_SSH="ssh -p ${SERVER_PORT}"
|
||
|
|
|
||
|
|
deploy_api() {
|
||
|
|
echo "=== Deploying clio-api ==="
|
||
|
|
rsync -avz --delete \
|
||
|
|
--exclude '.venv' \
|
||
|
|
--exclude '__pycache__' \
|
||
|
|
--exclude '*.pyc' \
|
||
|
|
--exclude 'recordings/' \
|
||
|
|
--exclude 'recordings.db' \
|
||
|
|
--exclude 'keys/' \
|
||
|
|
--exclude 'data/' \
|
||
|
|
--exclude '.git' \
|
||
|
|
--exclude 'nixos/' \
|
||
|
|
-e "${RSYNC_SSH}" \
|
||
|
|
"${CLIO_ROOT}/clio-api/" \
|
||
|
|
"${SERVER_USER}@${SERVER_HOST}:${API_CODE_DIR}/"
|
||
|
|
|
||
|
|
echo "Running uv sync on server..."
|
||
|
|
${SSH_CMD} "cd ${API_CODE_DIR} && uv sync"
|
||
|
|
echo "clio-api deployed."
|
||
|
|
}
|
||
|
|
|
||
|
|
deploy_ui() {
|
||
|
|
echo "=== Deploying clio-ui ==="
|
||
|
|
rsync -avz --delete \
|
||
|
|
-e "${RSYNC_SSH}" \
|
||
|
|
"${CLIO_ROOT}/clio-ui/" \
|
||
|
|
"${SERVER_USER}@${SERVER_HOST}:${UI_DIR}/"
|
||
|
|
echo "clio-ui deployed."
|
||
|
|
}
|
||
|
|
|
||
|
|
case "${1:-all}" in
|
||
|
|
api)
|
||
|
|
deploy_api
|
||
|
|
;;
|
||
|
|
ui)
|
||
|
|
deploy_ui
|
||
|
|
;;
|
||
|
|
all)
|
||
|
|
deploy_api
|
||
|
|
deploy_ui
|
||
|
|
;;
|
||
|
|
*)
|
||
|
|
echo "Usage: $0 [api|ui|all]"
|
||
|
|
exit 1
|
||
|
|
;;
|
||
|
|
esac
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "=== Deployment complete ==="
|
||
|
|
echo ""
|
||
|
|
echo "To restart the API service:"
|
||
|
|
echo " ssh -p ${SERVER_PORT} ${SERVER_USER}@${SERVER_HOST} 'sudo systemctl restart phone-recorder'"
|
||
|
|
echo ""
|
||
|
|
echo "To check status:"
|
||
|
|
echo " curl https://recordings.hallocks.xyz/health"
|