Serein
Rust로 만든 가볍고 성능 좋은 Discord 전용 네이티브 클라이언트
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗نسخة أولية قابلة للنشر على Vercel باستخدام Next.js وNeon PostgreSQL. الواجهة عربية RTL وتستند إلى تصور AXIS المرفق.
#007BFF، والسماوي #00C4CC، مع كحلي داكن للنصوص والمساحات.public/axis-logo.svg (والنسخة الداكنة public/axis-logo-dark.svg).public/axis-mark.svg وأيقونات PWA داخل public/icons/.docs/BRAND_GUIDE.md لقواعد استخدام الشعار حسب السياق. لا تستخدم صورة لوحة الشعار المرجعية كصورة واجهة./admin/login و/admin، لإدارة طلبات التوثيق والأعضاء والبلاغات والأحداث حسب دور الحساب.انسخ .env.example إلى .env.local.
من Neon افتح Connect واختر قاعدة البيانات والفرع، وانسخ عنوان الاتصال pooled إلى DATABASE_URL. يمكن وضع اتصال direct في DATABASE_URL_UNPOOLED لتطبيق المخطط وإدارة البيانات. لا تضع الأسرار في Git.
أنشئ مفتاحين مختلفين من 32 بايت (64 حرف hex):
node -e "console.log(require('node:crypto').randomBytes(32).toString('hex'))"
بديلًا من ذلك، شغّل npm run secrets:generate لعرض مفتاحين مختلفين، ثم انسخهما إلى DATA_ENCRYPTION_KEY وMEMBERSHIP_HMAC_KEY. لا تستخدم المفتاح نفسه للحاجتين، ولا تغيّر المفتاحين من غير خطة لترحيل بيانات التوثيق الحالية.
ثبّت الحزم وشغّل إنشاء الجداول:
npm install
npm run db:migrate
npm run dev
يمكن تفعيل استعادة كلمة المرور وتأكيد البريد الإلكتروني عبر Resend: اضبط RESEND_API_KEY وEMAIL_FROM على عنوان مرسل موثّق في Resend، واضبط APP_URL على عنوان المنصة الفعلي. من دون إعداد البريد ستظهر رسالة توضح أن الاستعادة/التأكيد غير مفعّلين.
أنشئ حساب مدير النظام من جهازك بعد ضبط ADMIN_EMAIL, ADMIN_USERNAME, ADMIN_DISPLAY_NAME, ADMIN_PASSWORD في .env.local أو في shell، ثم:
npm run admin:create
كلمة المرور الإدارية يجب أن تكون 12 حرفًا على الأقل. لا توجد صفحة لتسجيل مدير ذاتيًا. سجّل الدخول من /admin/login.
اختبر رحلة المستخدم: التسجيل ← طلب التوثيق ← مراجعة الإدارة ← الموافقة ← دخول /feed. واختبر الدليل /people، والمجموعات /groups، والرسائل /messages، واستعادة كلمة المرور /forgot-password.
axis_app) من لوحة Neon، ومنحه صلاحيات CONNECT وUSAGE وSELECT, INSERT, UPDATE, DELETE للجداول. يمكن تنفيذ db/grant-app-role.sql بعد إنشاء الدور axis_app وضبط كلمة مروره. احتفظ بدور المالك لاتصال الترحيل فقط. استخدم كلمة مرور قوية خاصة بدور التطبيق.DATABASE_URL — اتصال Neon pooled.DATA_ENCRYPTION_KEY — مفتاح AES-256-GCM.MEMBERSHIP_HMAC_KEY — مفتاح HMAC منفصل.APP_URL — أصل الموقع الفعلي، مثل https://your-project.vercel.app بعد توفره.npm run db:migrate من بيئة آمنة لها وصول إلى Neon. لا تعتمد على زيارة صفحة الموقع لإنشاء الجداول.npm run admin:create من جهازك مع اتصال Neon نفسه. لا تضف ADMIN_PASSWORD كمتغير بيئة دائم للإنتاج إذا لم تكن تحتاجه لعملية التهيئة.npm run db:migrate من بيئة آمنة بدور المالك، أو نفّذ ملف الترحيل الموحّد db/migrations/20261025_one_sprint.sql في Neon SQL Editor. يحتوي الملف على ترحيلات الردود والمشاركة الداخلية والشبكة الاجتماعية والرسائل وتحديد المعدل، وهو مصمم لإعادة التنفيذ دون حذف المستخدمين أو المنشورات أو التعليقات الحالية./, /register, /login, /verification, /admin/login, /admin، ورفض الوصول إلى /feed قبل التوثيق.تأكد من ضبط APP_URL على النطاق النهائي. قارن دائمًا إعدادات Production مع Preview حتى لا تستخدم قاعدة الإنتاج دون قصد في تجارب المعاينة.
المنصة تدعم التثبيت كـ Progressive Web App (PWA) عبر HTTPS؛ لا يلزم إنشاء تطبيق منفصل في متجر التطبيقات لبدء تجربة التثبيت. تشمل ملفات PWA ملف public/manifest.webmanifest وأيقونات Android/iOS وتسجيل Service Worker وصفحة توضيح عند انقطاع الاتصال.
npm run pwa:check ثم npm run typecheck وnpm run build. افحص التثبيت الفعلي بعد النشر عبر HTTPS وعلى جهاز iOS وAndroid.تحتاج هذه النسخة مخطط Neon الذي يحتوي على الردود وإعجابات التعليقات والمشاركة الداخلية ومتابعة المهندسين والمجموعات والمحادثات والرموز المؤقتة لاستعادة كلمة المرور/تأكيد البريد وجدول تحديد المعدل.
DATABASE_URL_UNPOOLED على اتصال دور مالك قاعدة البيانات ثم شغّل npm run db:migrate، أو نفّذ ملف db/migrations/20261025_one_sprint.sql في Neon SQL Editor.axis_app محدود الصلاحيات لتنفيذ تغييرات المخطط.admin: إدارة كاملة، بما فيها إدارة الأعضاء.reviewer: مراجعة العضوية والمستندات والشهادات المهنية.moderator: مراجعة البلاغات وإدارة أهم الأحداث.member: لا يدخل المجتمع حتى يصبح verification_status='verified'.يُنشأ أول admin باستخدام السكريبت، وتُمنع الإدارة من التسجيل الذاتي. الدخول الإداري له مسار منفصل ومحدد المعدل.
src/app/ الصفحات وواجهات API
src/components/ مكونات الواجهة
src/lib/ الجلسات والتشفير وقاعدة البيانات والحد من الطلبات
src/app/people/ دليل المهندسين والملفات العامة
src/app/groups/ المجموعات الهندسية
src/app/messages/ المحادثات الخاصة
db/schema.sql مخطط PostgreSQL
db/migrations/ ترحيلات idempotent لنسخ الإنتاج
scripts/migrate.mjs إنشاء/تحديث المخطط
scripts/create-admin.mjs إنشاء أول مدير
.env.example أسماء المتغيرات المطلوبة دون أسرار
RESEND_API_KEY وEMAIL_FROM وAPP_URL؛ هذه المزايا غير فعالة افتراضيًا حتى إعداد مزود البريد والتحقق من نطاق الإرسال.npm run typecheck
npm test
npm run build
npm test اختبار بنيوي ثابت لوجود بوابات التوثيق والإدارة الأساسية؛ ليس بديلًا لاختبار تكاملي على Neon أو اختبار نشر حقيقي.
AXIS supports opt-in Web Push for installed browsers and mobile web apps. Set VAPID_PUBLIC_KEY, VAPID_PRIVATE_KEY, and VAPID_SUBJECT in the deployment environment. Users explicitly enable notifications in Settings; members waiting for verification can enable them on the verification screen. On iPhone, users must add AXIS to the Home Screen and open the installed app before requesting push permission. Push notifications supplement the in-app notification center; browser/platform delivery is not guaranteed.