Update codebase

This commit is contained in:
Hamza-Ayed
2026-08-09 16:56:13 +03:00
parent 95e2e4f35d
commit b64debaa88
1058 changed files with 164327 additions and 113928 deletions
+69
View File
@@ -0,0 +1,69 @@
# ============================================================
# turnserver.conf — خادم TURN (coturn) لمكالمات تربز الصوتية
# ------------------------------------------------------------
# لماذا TURN أصلاً: STUN وحده يكفي فقط حين يستطيع الطرفان رؤية بعضهما
# مباشرة. سائق وزبون كلاهما على بيانات الجوال يقعان غالباً خلف CGNAT
# (Symmetric NAT)، فتفشل المسارات المباشرة وتبقى المكالمة صامتة رغم
# نجاح الإشارات. TURN يمرّر الصوت عبر الخادم كملاذ أخير.
#
# المصادقة: use-auth-secret (بيانات مؤقتة عبر HMAC) — لا كلمات مرور
# ثابتة في التطبيق. المفتاح السرّي يُمرَّر من docker-compose، ونفسه
# يستعمله backend/ride/call/turn_credentials.php لتوليد البيانات.
#
# ⚠️ بورتات تربز مختلفة عن نسخة سيرو على نفس السيرفر:
# سيرو: listening-port=3478 relay 49160–49300
# تربز: listening-port=3479 relay 49301–49400
# ============================================================
listening-port=3479
# TLS (turns:) معطّل افتراضياً عمداً: بلا شهادة صالحة يرفض coturn تشغيل
# مستمع TLS ويسجّل خطأ فقط، فيصير عنوان turns: في قائمة ICE مساراً
# ميتاً يبطئ التفاوض. لتفعيله: ضع شهادة النطاق وامنح الحاوية قراءتها،
# ثم أزل التعليق عن الأسطر الثلاثة، واضبط TURN_TLS_ENABLED=true في .env
# كي يُعلنه الباك إند للتطبيق.
# tls-listening-port=5350
# cert=/keys/turn/fullchain.pem
# pkey=/keys/turn/privkey.pem
fingerprint
use-auth-secret
# static-auth-secret و realm و external-ip تُمرَّر كوسائط من docker-compose
# (من .env) حتى لا يُخزَّن السر داخل ملف متعقَّب في Git.
# نطاق منافذ التمرير — كل مكالمة تحجز منفذاً أو اثنين.
# يجب فتح هذا النطاق UDP على جدار الحماية وإلا فشل التمرير بصمت.
# (النطاق 49160–49300 محجوز لنسخة سيرو على السيرفر نفسه)
min-port=49301
max-port=49400
# ── تقييد الوجهات ──────────────────────────────────────────
# بلا هذا يصير TURN بوابة تصل للشبكة الداخلية: أي مستخدم يملك بيانات
# اعتماد صالحة يطلب من السلر فتح مسار إلى 127.0.0.1 أو 172.x فيصل
# إلى mysql/redis/الحاويات. نمنع كل النطاقات الخاصة صراحةً.
no-multicast-peers
denied-peer-ip=0.0.0.0-0.255.255.255
denied-peer-ip=10.0.0.0-10.255.255.255
denied-peer-ip=127.0.0.0-127.255.255.255
denied-peer-ip=169.254.0.0-169.254.255.255
denied-peer-ip=172.16.0.0-172.31.255.255
denied-peer-ip=192.168.0.0-192.168.255.255
denied-peer-ip=100.64.0.0-100.127.255.255
denied-peer-ip=::1
denied-peer-ip=fc00::-fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
denied-peer-ip=fe80::-febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff
# ── حدود الاستهلاك ─────────────────────────────────────────
# TURN يمرّر كل بايت من الصوت، فبلا سقف تصير الفاتورة والنطاق مفتوحين.
# مكالمة صوتية Opus ≈ 40 kbps لكل اتجاه — 500 kbps سقف سخيّ جداً للصوت
# ويقطع أي وقت يستعمله الخادم كبروكسي فيديو أو تنزيل.
user-quota=12
total-quota=1200
max-bps=64000
bps-capacity=0
# ── تشغيل ──────────────────────────────────────────────────
no-cli
stale-nonce=600
# لا نُسجّل كل مسارات — الأخطاء فقط
simple-log