Files
tripz-llc/sync-to-server.sh
T
HamzaandClaude Opus 4.8 95fea546f5 first commit: منصة Tripz — خطط كاملة + سكافولد باك إند NestJS/Docker
- docs/00-15: دراسة، بنية، محرك تعرفة، تسعير، نموذج استئجار، تكاملات، بيانات، realtime، خطة، devops، لاندنج، مخاطر، اصطلاحات سيرفر، تدفق نشر
- backend/: NestJS 11 على Docker (health + tenants + عزل tenant_id + بادئة tripz_ + Redis DB 3)
- apps/rider, apps/driver, dashboards/admin-web, dashboards/superadmin-web (هياكل)
- sync-to-server.sh + .gitignore

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 15:22:06 +03:00

56 lines
2.2 KiB
Bash
Executable File

#!/usr/bin/env bash
# ============================================================
# Tripz — مزامنة الكود من الماك إلى السيرفر (نصوص فقط)
# الاستخدام من تيرمينال الماك:
# ./sync-to-server.sh # مزامنة فقط
# ./sync-to-server.sh --deploy # مزامنة ثم docker compose up على السيرفر
# ./sync-to-server.sh --logs # عرض لوغ الحاويات على السيرفر
# ملاحظة: لا نبني ولا نشغّل شيئاً على الماك — كل التشغيل على السيرفر عبر Docker.
# ============================================================
set -euo pipefail
# ---- إعدادات السيرفر (عدّل عند اللزوم) ----
SERVER_USER="root"
SERVER_IP="194.163.173.157"
REMOTE_DIR="/home/tripz-llc" # مجلد مخصّص جديد (منفصل عن مواقع CloudPanel)
LOCAL_DIR="$(cd "$(dirname "$0")" && pwd)/"
SSH="ssh ${SERVER_USER}@${SERVER_IP}"
echo "==> مزامنة ${LOCAL_DIR} ⟶ ${SERVER_USER}@${SERVER_IP}:${REMOTE_DIR}"
# تأكد من وجود المجلد على السيرفر
$SSH "mkdir -p ${REMOTE_DIR}"
# rsync: يرفع النصوص فقط، يستثني المخرجات والأسرار، ويحذف المحذوف محلياً
# لكن يُبقي .env على السيرفر (يُنشأ هناك ولا يُرفع من الماك)
rsync -avz --delete \
--exclude='.git/' \
--exclude='node_modules/' \
--exclude='dist/' \
--exclude='build/' \
--exclude='.dart_tool/' \
--exclude='**/pgdata/' \
--exclude='**/redisdata/' \
--exclude='.env' \
--exclude='.DS_Store' \
--exclude='*.log' \
"${LOCAL_DIR}" "${SERVER_USER}@${SERVER_IP}:${REMOTE_DIR}/"
echo "==> تمت المزامنة."
# ---- خيارات إضافية ----
case "${1:-}" in
--deploy)
echo "==> تشغيل docker compose على السيرفر..."
$SSH "cd ${REMOTE_DIR}/backend && \
[ -f .env ] || cp .env.example .env && \
docker compose up -d --build && \
docker compose exec -T api npm run migration:run || true"
echo "==> التطبيق: http://${SERVER_IP}:4010/api/health"
;;
--logs)
$SSH "cd ${REMOTE_DIR}/backend && docker compose logs --tail=100 -f"
;;
esac