All checks were successful
ci/woodpecker/push/build Pipeline was successful
53 lines
1.3 KiB
Bash
Executable File
53 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# Deploy UNT (NOVA) to server
|
|
# Usage: ./ctrl/deploy.sh [rsync|edge]
|
|
#
|
|
# rsync — sync source to server and rebuild there (bypass CI)
|
|
# edge — pull latest images and restart containers
|
|
|
|
set -e
|
|
cd "$(dirname "$0")/.."
|
|
|
|
SERVER="mcrn.ar"
|
|
REMOTE_DIR="~/unt"
|
|
|
|
case "${1:-rsync}" in
|
|
rsync)
|
|
echo "=== Syncing source to $SERVER ==="
|
|
rsync -avz --exclude='.git' --exclude='node_modules' --exclude='.venv' \
|
|
--exclude='ui/app/dist' --exclude='__pycache__' \
|
|
--filter=':- .gitignore' \
|
|
. "$SERVER:$REMOTE_DIR/"
|
|
|
|
echo "=== Building and restarting on server ==="
|
|
ssh "$SERVER" << 'EOF'
|
|
cd ~/unt
|
|
docker build -t registry.mcrn.ar/unt/api:latest -f ctrl/Dockerfile.api .
|
|
docker build -t registry.mcrn.ar/unt/ui:latest -f ctrl/Dockerfile.ui .
|
|
cd ctrl/edge
|
|
[ -f .env ] || cp .env.example .env
|
|
docker compose up -d --remove-orphans
|
|
docker image prune -f
|
|
docker compose ps
|
|
EOF
|
|
;;
|
|
|
|
edge)
|
|
echo "=== Pulling and restarting on $SERVER ==="
|
|
ssh "$SERVER" << 'EOF'
|
|
cd ~/unt/ctrl/edge
|
|
docker compose pull
|
|
docker compose up -d --remove-orphans
|
|
docker image prune -f
|
|
docker compose ps
|
|
EOF
|
|
;;
|
|
|
|
*)
|
|
echo "Usage: $0 [rsync|edge]"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
echo "=== Deploy complete ==="
|