Update codebase

This commit is contained in:
Hamza-Ayed
2026-07-16 16:01:28 +03:00
parent 951f6d80e1
commit 83f2d0854a
16 changed files with 343 additions and 48 deletions
+13 -48
View File
@@ -1,55 +1,20 @@
#!/usr/bin/env bash
# ============================================================
# Tripz — مزامنة الكود من الماك إلى السيرفر (نصوص فقط)
# الاستخدام من تيرمينال الماك:
# ./sync-to-server.sh # مزامنة فقط
# ./sync-to-server.sh --deploy # مزامنة ثم docker compose up على السيرفر
# ./sync-to-server.sh --logs # عرض لوغ الحاويات على السيرفر
# ملاحظة: لا نبني ولا نشغّل شيئاً على الماك — كل التشغيل على السيرفر عبر Docker.
# Tripz — رفع الكود محلياً إلى Git
# الاستخدام:
# ./sync-to-server.sh "رسالة التحديث"
# ============================================================
set -euo pipefail
# ---- إعدادات السيرفر (عدّل عند اللزوم) ----
SERVER_USER="root"
SERVER_IP="194.163.173.157"
REMOTE_DIR="/home/tripz-llc" # مجلد مخصّص جديد (منفصل عن مواقع CloudPanel)
LOCAL_DIR="$(cd "$(dirname "$0")" && pwd)/"
MSG="${1:-Update codebase}"
SSH="ssh ${SERVER_USER}@${SERVER_IP}"
echo "==> رفع الكود محلياً إلى Git..."
git add .
git commit -m "$MSG" || true
git push origin main
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
echo "==> تمت عملية الرفع بنجاح!"
echo "الآن يمكنك الذهاب إلى تيرمينال السيرفر وتشغيل الأوامر التالية:"
echo " cd /home/tripz-llc"
echo " git pull origin main"
echo " cd backend && docker compose up -d --build"