clio/clio-infra/scripts/deploy.sh
Your Name 56d8fb4d56
Some checks failed
Deploy API / deploy (push) Failing after 1s
adding a bunch of untested files
2026-05-19 20:12:49 -04:00

78 lines
1.8 KiB
Bash
Executable file

#!/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"