- 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>
56 lines
2.2 KiB
Bash
Executable File
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
|