تثبيت الخادم
المتطلبات
نظام التشغيل
جميع أنظمة التشغيل الرئيسية، بما في ذلك Windows وLinux وmacOS، مدعومة.
البيئة
نوصي بشدة باستخدام Yarn 1.x لتشغيل وبناء واجهة المستخدم الأمامية لـ Casdoor. قد يتسبب استخدام NPM في مشاكل في أنماط واجهة المستخدم. لمزيد من التفاصيل، انظر: casdoor#294.
إذا فشلت شبكتك في مزامنة حزم تبعيات Go مباشرة بنجاح، تحتاج إلى استخدام بروكسي Go عن طريق تكوين متغير البيئة GOPROXY. نوصي بشدة باستخدام: https://goproxy.cn/
قاعدة البيانات
Casdoor يستخدم XORM للتواصل مع قاعدة البيانات. استنادًا إلى دعم برامج تشغيل Xorm، يوفر Casdoor حاليًا الدعم لقواعد البيانات التالية:
MySQL
MariaDB
PostgreSQL
CockroachDB
SQL Server
Oracle
SQLite 3
TiDB
تحميل
شيفرة مصدر Casdoor مستضافة على GitHub: https://github.com/casdoor/casdoor. كل من شيفرة الواجهة الخلفية Go وشيفرة الواجهة الأمامية React موجودة في مستودع واحد.
الاسم | الوصف | اللغة | شيفرة المصدر |
---|---|---|---|
واجهة المستخدم الأمامية | واجهة المستخدم الأمامية للويب لـ Casdoor | JavaScript + React | https://github.com/casdoor/casdoor/tree/master/web |
الواجهة الخلفية | واجهة برمجة التطبيقات الخلفية RESTful لـ Casdoor | Golang + Beego + XORM | https://github.com/casdoor/casdoor |
Casdoor يدعم Go Modules
. لتحميل الشيفرة، ببساطة انسخ الشيفرة باستخدام git:
cd path/to/folder
git clone https://github.com/casdoor/casdoor
التكوين
تكوين قاعدة البيانات
يدعم Casdoor قواعد بيانات MySQL، MSSQL، SQLite3، و PostgreSQL. بشكل افتراضي، يستخدم Casdoor قاعدة بيانات MySQL.
MySQL
يخزن Casdoor معلومات المستخدمين والعقد والمواضيع في قاعدة بيانات MySQL باسم casdoor
. إذا لم تكن قاعدة البيانات موجودة، يجب إنشاؤها يدويًا. يمكن تحديد سلسلة اتصال قاعدة البيانات على: https://github.com/casdoor/casdoor/blob/master/conf/app.conf
driverName = mysql
dataSourceName = root:123456@tcp(localhost:3306)/
dbName = casdoor
PostgreSQL
قبل تشغيل Casdoor، تحتاج إلى إعداد قاعدة بيانات يدويًا لـ PostgreSQL، حيث يتطلب Casdoor تحديد قاعدة بيانات عند فتح Postgres باستخدام xorm.
بافتراض أنك قد أعددت بالفعل قاعدة بيانات تسمى casdoor
، يجب أن تحدد app.conf
كما يلي:
driverName = postgres
dataSourceName = "user=postgres password=postgres host=localhost port=5432 sslmode=disable dbname=casdoor"
dbName = casdoor
dataSourceName
يحتوي على dbName
غير فارغ وأيضاً قم بتكرار اسم قاعدة البيانات لحقل dbname
كما هو موضح في المثال أعلاه. :::CockroachDB
يمكن أيضًا استخدام CockroachDB مع برنامج تشغيل PostgreSQL وله نفس التكوين كـ PostgreSQL.
driverName = postgres
dataSourceName = "user=postgres password=postgres host=localhost port=5432 sslmode=disable dbname=casdoor serial_normalization=virtual_sequence"
dbName = casdoor
SQLite3
لتكوين SQLite3، يجب أن تحدد app.conf
كما يلي:
driverName = sqlite
dataSourceName = "file:casdoor.db?cache=shared"
dbName = casdoor
عبر ملف Ini
يمكن تكوين Casdoor عبر ملف واحد: conf/app.conf، والذي يحتوي بشكل افتراضي على المحتوى التالي:
appname = casdoor
httpport = 8000
runmode = dev
SessionOn = true
copyrequestbody = true
driverName = mysql
dataSourceName = root:123456@tcp(localhost:3306)/
dbName = casdoor
tableNamePrefix =
showSql = false
redisEndpoint =
defaultStorageProvider =
isCloudIntranet = false
authState = "casdoor"
socks5Proxy = "127.0.0.1:10808"
verificationCodeTimeout = 10
initScore = 2000
logPostOnly = true
origin = "https://door.casdoor.com"
staticBaseUrl = "https://cdn.casbin.org"
enableGzip = true
inactiveTimeoutMinutes =
appname
هو اسم التطبيق، والذي ليس له حاليًا استخدام عملي.httpport
هو المنفذ الذي يستمع عليه تطبيق الخلفية الخاص بك.runmode
يمكن تعيينه إلىdev
أوprod
.SessionOn
يحدد ما إذا كان سيتم تمكين الجلسة وهو ممكن بشكل افتراضي.driverName
،dataSourceName
، وdbName
تم تقديمها في وقت سابق. يرجى الاطلاع على تكوين قاعدة البيانات للتفاصيل.verificationCodeTimeout
يحدد وقت انتهاء صلاحية رمز التحقق. بعد انتهاء الصلاحية، يحتاج المستخدم إلى الحصول عليه مرة أخرى.
كمبتدئ، تحتاج فقط إلى تعديل عنصرين: driverName
و dataSourceName
بناءً على قاعدة البيانات الخاصة بك. ستستخدم هذه القاعدة بيانات Casdoor لتخزين جميع البيانات، بما في ذلك المستخدمين والمنظمات والتطبيقات.
tableNamePrefix
هو بادئة الجدول عند استخدام محول.showSql
يحدد ما إذا كان سيتم عرض بيانات SQL على السجل إذا كان مستوى السجل أعلى من INFO.redisEndpoint
هو نقطة نهاية Redis المستخدمة بواسطة تخزين جلسات Beego. إذا كان هذا البارامتر فارغًا، سيتم تخزين بيانات الجلسة محليًا كملفات في مجلد./tmp
. لاستخدام Redis كتخزين جلسة Beego، ستكون القيمة شيئًا مثل:redis.example.com:6379
. إذا تم نشر Redis محليًا، يمكنك استخدامlocalhost:6379
. إذا تم تمكين كلمة مرور Redis، استخدمredis.example.com:6379,db,password
. راجع المزيد من التفاصيل على: https://github.com/beego/beedoc/blob/master/en-US/module/session.md#saving-provider-config.defaultStorageProvider
هو اسم خدمة تخزين الملفات الافتراضية. إذا كنت بحاجة إلى استخدام خدمات تخزين الملفات مثل تحميل الصور الرمزية، تحتاج إلى إعداد مزود تخزين وتطبيقه في تطبيقك. انظر التخزين للتفاصيل.isCloudIntranet
يستخدم لتحديد ما إذا كان نقطة نهاية مزود الخدمة هي نقطة نهاية داخلية.authState
هو اسم تطبيق المصادقة. سيتم التحقق من هذه البارامتر عند تسجيل الدخول.socks5Proxy
هو عنوان IP لخادم البروكسي SOCKS. اضبط منفذ الوكيل لأن لدينا خدمات متعلقة بـ Google أو استخدمGoogle
،GitHub
،Facebook
،LinkedIn
، أوSteam
كمزودي OAuth، والتي قد تكون مقيدة بالشبكة في بعض المناطق.initScore
هو النقاط الأولية لكل مستخدم. لكل مستخدم خاصية نقاط. النقاط تستخدم من قبل Casnode ولا تتحكم في أي شيء في Casdoor.logPostOnly
يستخدم لتحديد ما إذا كانت طريقة الإرسال فقط تستخدم لإضافة سجل.origin
هو اسم نطاق الواجهة الخلفية الأصلي.staticBaseUrl
هو عنوان الصورة الثابتة المستخدمة عندما يقوم النظام بتهيئة قاعدة البيانات.enableGzip
سيقبل ويستجيب بترميز gzip إذا تضمن رأس الطلبAccept-Encoding=gzip
.inactiveTimeoutMinutes
sets the maximum number of minutes of inactivity. If the inactivity time reaches this value, then casdoor will log the user out. Empty value or value less than or equal to 0 means there is no limit on the user's inactivity time.
عبر متغيرات البيئة
جميع عناصر التكوين التي حددها Casdoor في ملف ini المذكور أعلاه يمكن تكوينها عبر متغيرات البيئة، بالإضافة إلى بعض عناصر تكوين beego (httpport، appname).
على سبيل المثال، عندما تحاول بدء Casdoor، يمكنك استخدام شيء مثل هذا لتمرير التكوين عبر متغيرات البيئة:
appname=casbin go run main.go
بالإضافة إلى ذلك، مشتقات export
هي أيضًا طريقة ممكنة. يجب أن تتطابق أسماء متغيرات البيئة تمامًا مع الأسماء التي تريد استخدامها في ملف ini.
ملاحظة: يمكن للتكوينات في متغيرات البيئة أن تتجاوز التكوينات في ملف ini.
تشغيل
هناك حاليًا طريقتان للبدء، ويمكنك اختيار واحدة وفقًا لوضعك.
وضع التطوير
الواجهة الخلفية
يعمل الخلفية Go لـ Casdoor على المنفذ 8000 بشكل افتراضي. يمكنك بدء الخلفية Go بالأمر التالي:
go run main.go
بعد أن يعمل الخادم بنجاح، يمكنك بدء الجزء الأمامي.
الواجهة الأمامية
واجهة Casdoor الأمامية هي مشروع Create-React-App (CRA) كلاسيكي جدًا. يعمل بشكل افتراضي على المنفذ 7001
. استخدم الأوامر التالية لتشغيل الواجهة الأمامية:
cd web
yarn install
yarn start
قم بزيارة http://localhost:7001 في متصفحك. قم بتسجيل الدخول إلى لوحة تحكم Casdoor باستخدام حساب المدير العالمي الافتراضي: built-in/admin
.
admin
123
وضع الإنتاج
الواجهة الخلفية
قم ببناء كود خلفية Casdoor Go إلى ملف تنفيذي وابدأ تشغيله.
لنظام لينكس:
go build
./casdoor
لنظام ويندوز:
go build
casdoor.exe
الواجهة الأمامية
قم ببناء كود واجهة Casdoor الأمامية إلى موارد ثابتة (.html، .js، .css files):
cd web
yarn install
yarn build
قم بزيارة http://localhost:8000 في متصفحك. قم بتسجيل الدخول إلى لوحة تحكم Casdoor باستخدام حساب المدير العالمي الافتراضي: built-in/admin
.
admin
123
لإستخدام منفذ آخر، يرجى تعديل conf/app.conf
وتعديل httpport
، ثم أعد تشغيل خلفية Go.
في بيئة dev، يتم تشغيل الواجهة الأمامية بواسطة yarn run
على المنفذ 7001، لذا إذا أردت الذهاب إلى صفحة تسجيل الدخول Casdoor، تحتاج إلى ضبط رابط Casdoor كـ http://localhost:7001.
في بيئة prod، يتم أولاً بناء ملفات الواجهة الأمامية بواسطة yarn build
ويتم تقديمها على المنفذ 8000، لذا إذا أردت الذهاب إلى صفحة تسجيل الدخول Casdoor، تحتاج إلى ضبط رابط Casdoor كـ https://your-casdoor-url.com:8000 (إذا كنت تستخدم وكيل عكسي، تحتاج إلى ضبط الرابط كـ نطاقك).
خذ منتدانا الرسمي Casnode كمثال
Casnode يستخدم Casdoor للتعامل مع المصادقة.
عندما نقوم بتجربة Casnode في بيئة dev، نضبط serverUrl
كـ http://localhost:7001، لذا عندما نختبر وظائف تسجيل الدخول والتسجيل باستخدام Casdoor، سيتم الذهاب إلى localhost 7001، وهو منفذ Casdoor.
وعندما نضع Casnode في بيئة prod، نضبط serverUrl
كـ https://door.casdoor.com، لذا يمكن للمستخدمين تسجيل الدخول أو التسجيل باستخدام Casdoor.