كيفية تثبيت وتكوين CyberPanel على خادم CentOS 7 الخاص بك
استخدام نظام مختلف؟ مقدمة تعد CyberPanel واحدة من أولى لوحات التحكم في السوق مفتوحة المصدر وتستخدم OpenLiteSpeed. ما هذا
ماتريكس هو بروتوكول اتصال قياسي مفتوح للاتصال اللامركزي في الوقت الحقيقي. يتم تطبيق Matrix كخوادم منزلية يتم توزيعها عبر الإنترنت ؛ ومن ثم لا توجد نقطة تحكم أو فشل واحدة. توفر Matrix واجهة برمجة تطبيقات HTTP RESTful لإنشاء وإدارة خوادم الدردشة الموزعة التي تتضمن إرسال واستقبال الرسائل ، ودعوة أعضاء غرفة الدردشة وإدارتهم ، والحفاظ على حسابات المستخدمين ، وتوفير ميزات محادثة متقدمة مثل VoIP ومكالمات الفيديو ، وما إلى ذلك. تنشئ Matrix أيضًا مزامنة آمنة بين الخوادم المنزلية التي يتم توزيعها في جميع أنحاء العالم.
Synapse هو تنفيذ خادم Matrix الرئيسي الذي كتبه فريق Matrix. يتكون النظام البيئي Matrix من شبكة العديد من الخوادم المنزلية الفيدرالية الموزعة في جميع أنحاء العالم. يستخدم مستخدم Matrix عميل دردشة للاتصال بالخادم المنزلي ، والذي بدوره يتصل بشبكة Matrix. يقوم Homeserver بتخزين محفوظات الدردشة ومعلومات تسجيل الدخول لهذا المستخدم بالذات.
في هذا البرنامج التعليمي ، سنستخدم matrix.example.com
كاسم المجال المستخدم لمصفوفة ماتريكس. استبدل كل تكرارات matrix.example.com
اسم المجال الفعلي الذي تريد استخدامه لخادم Synapse الرئيسي.
قم بتحديث نظامك الأساسي باستخدام الدليل كيفية تحديث CentOS 7 . بمجرد تحديث نظامك ، تابع تثبيت Python.
ماتريكس سينابس يحتاج بايثون 2.7 للعمل. يأتي Python 2.7 مثبتًا مسبقًا في جميع مثيلات خادم CentOS. يمكنك التحقق من الإصدار المثبت من Python.
python -V
يجب أن تحصل على ناتج مماثل.
[user@vultr ~]$ python -V
Python 2.7.5
قد يؤدي تغيير الإصدار الافتراضي من Python إلى تعطيل مدير مستودع YUM. ومع ذلك ، إذا كنت تريد أحدث إصدار من Python ، يمكنك إجراء تثبيت بديل ، دون استبدال Python الافتراضي.
قم بتثبيت الحزم في Development tools
المجموعة المطلوبة لتجميع ملفات المثبت.
sudo yum groupinstall -y "Development tools"
قم بتثبيت بعض التبعيات المطلوبة.
sudo yum -y install libtiff-devel libjpeg-devel libzip-devel freetype-devel lcms2-devel libwebp-devel tcl-devel tk-devel redhat-rpm-config python-virtualenv libffi-devel openssl-devel
قم بتثبيت Python pip. Pip هو مدير التبعية لحزم Python.
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
إنشاء بيئة افتراضية لتطبيق Synapse الخاص بك. يتم استخدام بيئة Python الظاهرية لإنشاء بيئة افتراضية معزولة لمشروع Python. تحتوي البيئة الافتراضية على أدلة التثبيت الخاصة بها ولا تشارك المكتبات مع البيئات الافتراضية العالمية والبيئية الأخرى.
sudo virtualenv -p python2.7 /opt/synapse
قم بتوفير ملكية الدليل للمستخدم الحالي.
sudo chown -R $USER:$USER /opt/synapse/
الآن تنشيط البيئة الافتراضية.
source /opt/synapse/bin/activate
تأكد من أن لديك أحدث إصدار من pip
و setuptools
.
pip install --upgrade pip
pip install --upgrade setuptools
قم بتثبيت أحدث إصدار من Synapse باستخدام النقطة.
pip install https://github.com/matrix-org/synapse/tarball/master
سيستغرق الأمر أعلاه بعض الوقت للتنفيذ حيث يقوم بسحب وتثبيت أحدث إصدار من Synapse وجميع التبعيات من مستودع Github.
يستخدم Synapse SQLite كقاعدة بيانات افتراضية. يخزن SQLite البيانات في قاعدة بيانات يتم الاحتفاظ بها كملف مسطح على القرص. يعد استخدام SQLite أمرًا بسيطًا للغاية ، ولكن لا يوصى به للإنتاج لأنه بطيء جدًا مقارنة بـ PostgreSQL.
PostgreSQL هو نظام قاعدة بيانات علائقية للكائنات. ستحتاج إلى إضافة مستودع PostgreSQL في نظامك ، حيث أن التطبيق غير متاح في مستودع YUM الافتراضي.
sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
قم بتثبيت خادم قاعدة بيانات PostgreSQL.
sudo yum -y install postgresql96-server postgresql96-contrib
تهيئة قاعدة البيانات.
sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb
تحرير /var/lib/pgsql/9.6/data/pg_hba.conf
لتمكين المصادقة المستندة إلى MD5.
sudo nano /var/lib/pgsql/9.6/data/pg_hba.conf
العثور على الأسطر التالية وتغيير peer
ل trust
و idnet
ل md5
.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 idnet
# IPv6 local connections:
host all all ::1/128 idnet
بمجرد التحديث ، يجب أن يبدو التكوين على هذا النحو.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
قم بتشغيل خادم PostgreSQL وتمكينه من البدء تلقائيًا عند التمهيد.
sudo systemctl start postgresql-9.6
sudo systemctl enable postgresql-9.6
قم بتغيير كلمة المرور لمستخدم PostgreSQL الافتراضي.
sudo passwd postgres
تسجيل الدخول.
sudo su - postgres
قم بإنشاء مستخدم PostgreSQL جديد لـ Synapse.
createuser synapse
يوفر PostgreSQL psql
الصدفة لتشغيل الاستعلامات في قاعدة البيانات. قم بالتبديل إلى غلاف PostgreSQL عن طريق التشغيل.
psql
تعيين كلمة مرور للمستخدم الذي تم إنشاؤه حديثًا لقاعدة بيانات Synapse.
ALTER USER synapse WITH ENCRYPTED password 'DBPassword';
استبدلها DBPassword
بكلمة مرور قوية وقم بتدوينها حيث سنستخدم كلمة المرور لاحقًا. إنشاء قاعدة بيانات جديدة لقاعدة بيانات PostgreSQL.
CREATE DATABASE synapse ENCODING 'UTF8' LC_COLLATE='C' LC_CTYPE='C' template=template0 OWNER synapse;
اخرج من psql
القشرة.
\q
التبديل إلى sudo
المستخدم من postgres
المستخدم الحالي .
exit
ستحتاج أيضًا إلى تثبيت الحزم المطلوبة لـ Synapse للتواصل مع خادم قاعدة بيانات PostgreSQL.
sudo yum -y install postgresql-devel libpqxx-devel.x86_64
source /opt/synapse/bin/activate
pip install psycopg2
يتطلب Synapse ملف تكوين قبل أن يبدأ. يخزن ملف التكوين إعدادات الخادم. قم بالتبديل إلى البيئة الافتراضية وقم بتكوين Synapse.
source /opt/synapse/bin/activate
cd /opt/synapse
python -m synapse.app.homeserver --server-name matrix.example.com --config-path homeserver.yaml --generate-config --report-stats=yes
استبدل matrix.example.com
اسم المجال الفعلي الخاص بك وتأكد من أن اسم الخادم قابل للحل إلى عنوان IP لمثيل Vultr الخاص بك. قم بتوفير ما --report-stats=yes
إذا كنت تريد أن تقوم الخوادم بإنشاء التقارير أم --report-stats=no
لا لتعطيل إنشاء التقارير والإحصائيات.
يجب أن تشاهد نتيجة مماثلة.
(synapse)[user@vultr synapse]$ python -m synapse.app.homeserver --server-name matrix.example.com --config-path homeserver.yaml --generate-config --report-stats=yes
A config file has been generated in 'homeserver.yaml' for server name 'matrix.example.com' with corresponding SSL keys and self-signed certificates. Please review this file and customise it to your needs.
If this server name is incorrect, you will need to regenerate the SSL certificates
بشكل افتراضي ، homeserver.yaml
تم تكوين لاستخدام قاعدة بيانات SQLite. نحتاج إلى تعديله لاستخدام قاعدة بيانات PostgreSQL التي أنشأناها سابقًا.
تحرير تم إنشاؤه حديثًا homeserver.yaml
.
nano homeserver.yaml
ابحث عن تكوين قاعدة البيانات الموجودة التي تستخدم SQLite3. التعليق على الخطوط كما هو موضح أدناه. أيضًا ، أضف تكوين قاعدة البيانات الجديد لـ PostgreSQL. تأكد من أنك تستخدم بيانات اعتماد قاعدة البيانات الصحيحة.
# Database configuration
#database:
# The database engine name
#name: "sqlite3"
# Arguments to pass to the engine
#args:
# Path to the database
#database: "/opt/synapse/homeserver.db"
database:
name: psycopg2
args:
user: synapse
password: DBPassword
database: synapse
host: localhost
cp_min: 5
cp_max: 10
يتم تعطيل تسجيل مستخدم جديد من واجهة ويب افتراضيًا. لتمكين التسجيل ، يمكنك الضبط enable_registration
على True
. يمكنك أيضًا تعيين مفتاح تسجيل سري ، والذي يسمح لأي شخص بالتسجيل لديه مفتاح السر ، حتى إذا تم تعطيل التسجيل.
enable_registration: False
registration_shared_secret: "YPPqCPYqCQ-Rj,ws~FfeLS@maRV9vz5MnnV^r8~pP.Q6yNBDG;"
احفظ الملف واخرج من المحرر. الآن ستحتاج إلى تسجيل أول مستخدم لك. قبل أن تتمكن من تسجيل مستخدم جديد ، ستحتاج إلى بدء التطبيق أولاً.
source /opt/synapse/bin/activate && cd /opt/synapse
synctl start
يجب أن ترى الأسطر التالية.
2017-09-05 11:10:41,921 - twisted - 131 - INFO - - SynapseSite starting on 8008
2017-09-05 11:10:41,921 - twisted - 131 - INFO - - Starting factory <synapse.http.site.SynapseSite instance at 0x44bbc68>
2017-09-05 11:10:41,921 - synapse.app.homeserver - 201 - INFO - - Synapse now listening on port 8008
2017-09-05 11:10:41,922 - synapse.app.homeserver - 442 - INFO - - Scheduling stats reporting for 3 hour intervals
started synapse.app.homeserver('homeserver.yaml')
تسجيل مستخدم Matrix جديد.
register_new_matrix_user -c homeserver.yaml https://localhost:8448
يجب أن ترى ما يلي.
(synapse)[user@vultr synapse]$ register_new_matrix_user -c homeserver.yaml https://localhost:8448
New user localpart [user]: admin
Password:
Confirm password:
Make admin [no]: yes
Sending registration request...
Success.
أخيرًا ، قبل أن تتمكن من استخدام Homeserver ، ستحتاج إلى السماح بالمنفذ 8448 من خلال جدار الحماية. ميناء 8448
يستخدم كمنفذ اتحاد المضمون. يستخدم خادم المنزل هذا المنفذ للتواصل مع بعضهم البعض بشكل آمن. يمكنك أيضًا استخدام عميل Matrix المدمج في الدردشة عبر الإنترنت من خلال هذا المنفذ.
sudo firewall-cmd --permanent --zone=public --add-port=8448/tcp
sudo firewall-cmd --reload
يمكنك الآن تسجيل الدخول إلى عميل Matrix web chat بالانتقال إلى https://matrix.example.com:8448
المتصفح المفضل لديك. سترى تحذيرًا حول شهادة SSL حيث أن الشهادات المستخدمة موقعة ذاتيًا. لن نستخدم برنامج الدردشة عبر الويب هذا لأنه قديم ولم تتم صيانته بعد الآن. ما عليك سوى محاولة التحقق مما إذا كان يمكنك تسجيل الدخول باستخدام حساب المستخدم الذي أنشأته للتو.
بدلاً من استخدام شهادة موقعة ذاتيًا لتأمين منفذ الاتحاد ، يمكننا استخدام Let's Encrypt free SSL. يمكن الحصول على Let's Encrypt المجاني من خلال عميل Let's Encrypt الرسمي المسمى Certbot.
قم بتثبيت Certbot.
sudo yum -y install certbot
ضبط إعدادات جدار الحماية للسماح معيار HTTP
و HTTPS
الموانئ من خلال جدار الحماية. يحتاج Certbot إلى إجراء HTTP
اتصال للتحقق من سلطة المجال.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
للحصول على شهادات من Let's Encrypt CA ، يجب عليك التأكد من أن النطاق الذي ترغب في إنشاء الشهادات له موجه نحو الخادم. إذا لم يكن الأمر كذلك ، فقم بإجراء التغييرات اللازمة على سجلات DNS الخاصة بنطاقك وانتظر حتى يتم نشر DNS قبل إجراء طلب الشهادة مرة أخرى. يتحقق Certbot من سلطة المجال قبل تقديم الشهادات.
استخدم الآن خادم الويب المضمن في Certbot لإنشاء الشهادات لنطاقك.
sudo certbot certonly --standalone -d matrix.example.com
من المرجح أن يتم تخزين الشهادات التي تم إنشاؤها /etc/letsencrypt/live/matrix.example.com/
. سيتم تخزين شهادة SSL كـ وسيتم تخزين fullchain.pem
المفتاح الخاص كـ privkey.pem
.
انسخ الشهادات.
sudo cp /etc/letsencrypt/live/matrix.example.com/fullchain.pem /opt/synapse/letsencrypt-fullchain.pem
sudo cp /etc/letsencrypt/live/matrix.example.com/privkey.pem /opt/synapse/letsencrypt-privkey.pem
ستحتاج إلى تغيير المسار إلى الشهادات والمفاتيح من homeserver.yaml
الملف. قم بتحرير التكوين.
nano /opt/synapse/homeserver.yaml
ابحث عن السطور التالية وقم بتعديل المسار.
tls_certificate_path: "/opt/synapse/letsencrypt-fullchain.pem"
# PEM encoded private key for TLS
tls_private_key_path: "/opt/synapse/letsencrypt-privkey.pem"
احفظ الملف واخرج من المحرر. أعد تشغيل خادم Synapse حتى تصبح التغييرات نافذة المفعول.
source /opt/synapse/bin/activate && cd /opt/synapse
synctl restart
من المقرر أن تنتهي صلاحية صلاحية شهادات التشفير خلال 90 يومًا ، لذلك يوصى بإعداد التجديد التلقائي للشهادات باستخدام وظائف cron. Cron هي خدمة نظام تُستخدم لتشغيل المهام الدورية.
إنشاء برنامج نصي جديد لتجديد الشهادات ونسخ الشهادات المجددة إلى دليل Synapse.
sudo nano /opt/renew-letsencypt.sh
تعبئة الملف.
#!/bin/sh
/usr/bin/certbot renew --quiet --nginx
cp /etc/letsencrypt/live/matrix.example.com/fullchain.pem /opt/synapse/letsencrypt-fullchain.pem
cp /etc/letsencrypt/live/matrix.example.com/privkey.pem /opt/synapse/letsencrypt-privkey.pem
تقديم إذن التنفيذ.
sudo chmod +x /opt/renew-letsencypt.sh
افتح ملف مهمة كرون.
sudo crontab -e
أضف السطر التالي في نهاية الملف.
30 5 * * 1 /opt/renew-letsencypt.sh
سيتم تشغيل وظيفة cron المذكورة أعلاه كل يوم إثنين الساعة 5:30 صباحًا. إذا كانت الشهادة ستنتهي صلاحيتها ، فسيتم تجديدها تلقائيًا.
الآن يمكنك زيارة https://matrix.example.com:8448
. سترى أنه لا يوجد تحذير SSL قبل الاتصال.
بصرف النظر عن منفذ الاتحاد 8448
الآمن ، يستمع Synapse أيضًا إلى منفذ العميل غير الآمن 8008
. سنقوم الآن بتكوين Nginx كوكيل عكسي لتطبيق Synapse.
sudo yum -y install nginx
قم بإنشاء ملف تكوين جديد.
sudo nano /etc/nginx/conf.d/synapse.conf
تعبئة الملف بالمحتوى التالي.
server {
listen 80;
server_name matrix.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name matrix.example.com;
ssl_certificate /etc/letsencrypt/live/matrix.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/matrix.example.com/privkey.pem;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/synapse.access.log;
location /_matrix {
proxy_pass http://localhost:8008;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
أعد تشغيل وتمكين Nginx من البدء تلقائيًا في وقت التمهيد.
sudo systemctl restart nginx
sudo systemctl enable nginx
أخيرًا ، يمكنك التحقق مما إذا كان يمكن الوصول إلى Synapse من خلال الوكيل العكسي.
curl https://matrix.example.com/_matrix/key/v2/server/auto
يجب أن تحصل على ناتج مماثل.
[user@vultr ~]$ curl https://matrix.example.com/_matrix/key/v2/server/auto
{"old_verify_keys":{},"server_name":"matrix.example.com","signatures":{"matrix.example.com":{"ed25519:a_ffMf":"T/Uq/UN5vyc4w7v0azALjPIJeZx1vQ+HC6ohUGkTSqiFI4WI/ojGpb2763arwSSQLr/tP/2diCi1KLU2DEnOCQ"}},"tls_fingerprints":[{"sha256":"eorhQj/kubI2PEQZyBZvGV7K1x3EcQ7j/AO2MtZMplw"}],"valid_until_ts":1504876080512,"verify_keys":{"ed25519:a_ffMf":{"key":"Gc1hxkpPmQv71Cvjyk+uzR5UtrpmgV/UwlsLtosawEs"}}}
يوصى باستخدام خدمة Systemd لإدارة عملية خادم Synapse. سيضمن استخدام Systemd بدء تشغيل الخادم تلقائيًا عند بدء تشغيل النظام وإخفاقاته.
قم بإنشاء ملف خدمة Systemd جديد.
sudo nano /etc/systemd/system/matrix-synapse.service
تعبئة الملف.
[Unit]
Description=Matrix Synapse service
After=network.target
[Service]
Type=forking
WorkingDirectory=/opt/synapse/
ExecStart=/opt/synapse/bin/synctl start
ExecStop=/opt/synapse/bin/synctl stop
ExecReload=/opt/synapse/bin/synctl restart
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=synapse
[Install]
WantedBy=multi-user.target
يمكنك الآن بدء تشغيل خادم Synapse بسرعة.
sudo systemctl start matrix-synapse
لإيقاف أو إعادة تشغيل الخادم باستخدام الأوامر التالية.
sudo systemctl stop matrix-synapse
sudo systemctl restart matrix-synapse
يمكنك التحقق من حالة الخدمة.
sudo systemctl status matrix-synapse
تم تثبيت خادم Matrix Synapse وتكوينه الآن على الخادم. نظرًا لأن عميل الويب المضمن لـ Matrix قديم ، يمكنك الاختيار من بين مجموعة متنوعة من تطبيقات العميل المتاحة للدردشة. Riot هو عميل الدردشة الأكثر شيوعًا ، والذي يتوفر على جميع الأنظمة الأساسية تقريبًا. يمكنك استخدام الإصدار المستضاف من عميل الدردشة عبر الإنترنت في Riot ، أو يمكنك أيضًا استضافة نسخة منه على خادمك الخاص. بصرف النظر عن ذلك ، يمكنك أيضًا استخدام عملاء Riot لسطح المكتب والمحمول ، والمتاحين لأنظمة Windows و Mac و Linux و IOS و Android.
إذا كنت ترغب في استضافة نسختك الخاصة من عميل الويب Riot ، يمكنك قراءة المزيد للحصول على تعليمات تثبيت Riot على الخادم الخاص بك. بالنسبة للعميل المستضاف وسطح المكتب والجوال ، يمكنك استخدام اسم المستخدم وكلمة المرور لتسجيل الدخول مباشرة إلى خادم المنزل. ما عليك سوى الاختيار my Matrix ID
من القائمة المنسدلة Sign In
للخيار وتقديم اسم المستخدم وكلمة المرور اللذين أنشأتهما أثناء تسجيل مستخدم جديد. انقر فوق Custom server
واستخدم اسم المجال لمثيل Synapse الخاص بك. نظرًا لأننا قد قمنا بالفعل بتكوين Nginx ، يمكننا فقط استخدامه كخادم https://matrix.example.com
Home https://matrix.org
وكعنوان URL لخادم الهوية.
مثال لتسجيل الدخول إلى أعمال الشغب
Riot أيضًا مفتوح المصدر ومجاني للاستضافة على الخادم الخاص بك. لا يتطلب أي قاعدة بيانات أو تبعيات. نظرًا لأن لدينا خادم Nginx يعمل بالفعل ، يمكننا استضافته على نفس الخادم.
يجب أن يكون المجال أو النطاق الفرعي الذي تستخدمه لـ Synapse و Riot مختلفين لتجنب البرمجة النصية عبر المواقع. ومع ذلك ، يمكنك استخدام نطاقين فرعيين من نفس المجال. في هذا البرنامج التعليمي ، سنستخدم
riot.example.com
كمجال لتطبيق Riot. استبدل كل ما يحدثriot.example.com
مع نطاقك الفعلي أو نطاقك الفرعي لتطبيق Riot.
قم بتنزيل Riot على الخادم الخاص بك.
cd /opt/
sudo wget https://github.com/vector-im/riot-web/releases/download/v0.12.3/riot-v0.12.3.tar.gz
يمكنك دائمًا العثور على رابط أحدث إصدار على Riot's Github .
استخرج الأرشيف.
sudo tar -xzf riot-v*.tar.gz
إعادة تسمية الدليل للتعامل مع الراحة.
sudo mv riot-v*/ riot/
نظرًا لأننا قمنا بالفعل بتثبيت Certbot ، يمكننا إنشاء الشهادات مباشرة. تأكد من أن النطاق أو النطاق الفرعي الذي تستخدمه موجه نحو الخادم.
sudo systemctl stop nginx
sudo certbot certonly --standalone -d riot.example.com
من المرجح أن يتم تخزين الشهادات التي تم إنشاؤها في /etc/letsencrypt/live/riot.example.com/
الدليل.
أنشئ مضيفًا افتراضيًا لتطبيق Riot.
sudo nano /etc/nginx/conf.d/riot.conf
تعبئة الملف.
server {
listen 80;
server_name riot.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name riot.example.com;
ssl_certificate /etc/letsencrypt/live/riot.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/riot.example.com/privkey.pem;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
root /opt/riot;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
access_log /var/log/nginx/riot.access.log;
}
انسخ ملف تكوين العينة.
sudo cp /opt/riot/config.sample.json /opt/riot/config.json
الآن قم بتحرير ملف التكوين لإجراء بعض التغييرات.
sudo nano /opt/riot/config.json
ابحث عن الخطوط التالية.
"default_hs_url": "https://matrix.org",
"default_is_url": "https://vector.im",
استبدل قيمة عنوان URL للخادم المنزلي الافتراضي بعنوان URL لخادم Matrix. بالنسبة إلى عنوان URL لخادم الهوية ، يمكنك استخدام الخيار الافتراضي ، أو يمكنك أيضًا توفير قيمته لخادم هوية Matrix ، وهو https://matrix.org
.
"default_hs_url": "https://matrix.example.com",
"default_is_url": "https://matrix.org",
احفظ الملف واخرج. توفير ملكية الملفات لمستخدم Nginx.
sudo chown -R nginx:nginx /opt/riot/
أعد تشغيل Nginx.
sudo systemctl restart nginx
يمكنك الوصول إلى Riot on https://riot.example.com
. يمكنك الآن تسجيل الدخول باستخدام اسم المستخدم وكلمة المرور اللذين أنشأتهما سابقًا. يمكنك الاتصال باستخدام الخادم الافتراضي حيث قمنا بالفعل بتغيير خادم Matrix الافتراضي لتطبيقنا.
لديك الآن خادم رئيسي Matrix Synapse جاهز للعمل. لديك أيضًا نسخة مستضافة من Riot ، والتي يمكنك استخدامها لإرسال رسالة إلى أشخاص آخرين باستخدام معرف Matrix أو البريد الإلكتروني أو رقم الهاتف المحمول الخاص بهم. ابدأ بإنشاء غرفة دردشة على الخادم الخاص بك ودعوة أصدقائك على Matrix للانضمام إلى غرفة الدردشة التي أنشأتها.
استخدام نظام مختلف؟ مقدمة تعد CyberPanel واحدة من أولى لوحات التحكم في السوق مفتوحة المصدر وتستخدم OpenLiteSpeed. ما هذا
أكتوبر هو نظام إدارة محتوى مفتوح المصدر يعتمد على Laravel PHP Framework. مع واجهة أنيقة وبنية وحدات موجزة
RockMongo هي أداة إدارة MongoDB على الويب تشبه أداة إدارة MySQL: phpMyAdmin. سيغطي هذا البرنامج التعليمي عملية التثبيت
Lets Chat هو تطبيق دردشة مفتوح المصدر مصمم لتوفير خدمة الرسائل ذاتية الاستضافة للفرق الصغيرة. يعتمد Lets Chat على NodeJS و MongoDB
استخدام نظام مختلف؟ Taiga هو تطبيق مجاني ومفتوح المصدر لإدارة المشاريع. على عكس أدوات إدارة المشاريع الأخرى ، يستخدم Taiga زيادة
استخدام نظام مختلف؟ المتطلبات الأساسية مثيل خادم Vultr CentOS 7. مستخدم sudo. الخطوة 1: تحديث النظام أولاً ، قم بتحديث خادم النظام الخاص بك إلى th
استخدام نظام مختلف؟ Netdata هي نجمة صاعدة في مجال مراقبة مقاييس النظام في الوقت الفعلي. مقارنة بالأدوات الأخرى من نفس النوع ، Netdata:
DreamFactory هو برنامج مفتوح المصدر يمكنه تحويل أي قاعدة بيانات إلى منصة RESTful API. يمكن نشر DreamFactory على منصات مختلفة. في ثي
استخدام نظام مختلف؟ في هذا البرنامج التعليمي ، سأشرح لك كيفية إعداد خادم Starbound على CentOS 7. المتطلبات الأساسية يجب أن تمتلك هذه اللعبة عليك
Go (تُعرف أيضًا باسم Golang) هي لغة برمجة مكتوبة بشكل ثابت ومجمعة على شكل حرف C تم تطويرها بواسطة Google. جعلت البساطة وتعدد الاستخدامات ب
Django هو إطار Python شائع لكتابة تطبيقات الويب. مع Django ، يمكنك بناء التطبيقات بشكل أسرع ، دون إعادة اختراع العجلة. إذا كنت تريد
مرحبًا بك في برنامج تعليمي Vultr آخر. هنا ، ستتعلم كيفية تثبيت خادم SAMP وتشغيله. تمت كتابة هذا الدليل الخاص بـ CentOS 6. المتطلبات الأساسية التي ستحتاج إليها
Revive Adserver هو نظام عرض إعلانات مجاني ومفتوح المصدر يمكن استخدامه لإدارة الإعلانات على مواقع الويب و / أو التطبيقات و / أو مشغلات الفيديو. في هذه المقالة ،
استخدام نظام مختلف؟ Elgg هو محرك تواصل اجتماعي مفتوح المصدر يسمح بإنشاء بيئات اجتماعية مثل الشبكات الاجتماعية في الحرم الجامعي
استخدام نظام مختلف؟ الشتات هو شبكة اجتماعية مفتوحة المصدر تدرك الخصوصية. في هذا البرنامج التعليمي ، ستتعلم كيفية إعداد وتكوين po Diaspora po
نظرة عامة تهدف هذه المقالة إلى مساعدتك في إنشاء مجموعة Kubernetes وتشغيلها باستخدام kubeadm في لمح البصر. سيقوم هذا الدليل بنشر خادمين في
استخدام نظام مختلف؟ مقدمة Sails.js هو إطار عمل MVC لـ Node.js ، مشابه لـ Ruby on Rails. يجعل لتطوير التطبيقات الحديثة ver
استخدام نظام مختلف؟ يمكن استخدام NGINX كخادم HTTP / HTTPS أو خادم وكيل عكسي أو خادم وكيل بريد أو موازن تحميل أو فاصل TLS أو ذاكرة تخزين مؤقت
استخدام نظام مختلف؟ dotCMS هو نظام إدارة محتوى من فئة مفتوحة المصدر مفتوح بلغة جافا. أنه يحتوي تقريبا على كل ميزة مطلوبة ر
مقدمة في هذا البرنامج التعليمي ، سيتم تثبيت PufferPanel على Vultr VPS. PufferPanel هي لوحة تحكم مفتوحة المصدر مجانية للاستخدام لإدارتك
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".
هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.
اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.
اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.
لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟
مع تطور العلم بمعدل سريع ، واستلام الكثير من جهودنا ، تزداد أيضًا مخاطر تعريض أنفسنا إلى تفرد غير قابل للتفسير. اقرأ ، ماذا يمكن أن يعني التفرد بالنسبة لنا.
ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!
ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.
أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد