يتجه كثيرون بعيداً عن الخدمات الشائعة كـ Google Drive وDropbox نحو الحلول ذاتية الاستضافة التي تمنحك التحكم الكامل في بياناتك، ومن أبرز هذه الحلول Nextcloud.
ستأخذك هذه المقالة خطوة بخطوة عبر شرح كامل لتثبيت Nextcloud Docker على أنظمة Ubuntu وDebian. تشمل الخطوات كل شيء، من تحديث النظام وتثبيت المتطلبات، إلى ضبط خادم الويب وإعداد PHP وقاعدة البيانات، وإتمام التثبيت باستخدام Nextcloud Docker Compose.
لماذا تستضيف Nextcloud بنفسك؟
استضافة Nextcloud بنفسك تعني التحكم الكامل في تخزين بياناتك بدلاً من الاعتماد على خدمات من أطراف ثالثة كـ Google Drive وDropbox. مع Nextcloud، تملك حرية تخزين ملفاتك ومشاركتها وفق شروطك أنت، مع ملكية كاملة لبياناتك والتحكم التام في إعدادات الخصوصية.
من أبرز ما يجذب المستخدمين إمكانية تخصيص المنصة وتوسيعها عبر الإضافات والتكاملات المختلفة. باستخدام Nextcloud docker وNextcloud docker compose، يمكنك نشر نظام مشاركة ملفات موثوق وآمن بسرعة على الأنظمة الشائعة، إذ يتوفر كل من Nextcloud Ubuntu وNextcloud Debian.
هذا الإعداد حل عملي إن كنت تريد تثبيت Nextcloud دون التقيد بقيود خدمات الطرف الثالث. عملية تثبيت Nextcloud docker مصممة لتكون مباشرة، بحيث يستطيع حتى من ليس لديهم خبرة واسعة في إدارة الخوادم الدخول إلى عالم الاستضافة الذاتية.
يمكن أن يوفر تثبيت Nextcloud Docker تكاليف مقارنةً بحلول التخزين السحابي التجارية، إذ أنت تدفع أساساً مقابل أجهزتك أو خادمك الخاص. فضلاً عن ذلك، تتيح خيارات التخصيص المتاحة - كضبط إعدادات PHP أو دمج قاعدة بيانات MySQL - تهيئة البيئة بما يناسب احتياجاتك تحديداً.
إذا كنت تتساءل عن كيفية تثبيت Nextcloud docker، فثمة مجتمع دعم واسع وموارد متعددة توفر أمثلة جاهزة لملفات Nextcloud docker compose، مما يجعل العملية تعليمية ومجزية في آن واحد.
المتطلبات الأساسية
قبل البدء بعملية التثبيت، من المهم التأكد من جاهزية بيئتك. يغطي هذا القسم الأساسيات، من متطلبات النظام وإعداد الخادم إلى المتطلبات البرمجية اللازمة لتثبيت Nextcloud docker بسلاسة:
| المكوّن | المتطلبات / الخيارات | ملاحظات |
| نظام التشغيل | Ubuntu (يُنصح بـ 22.04 LTS، أو 24.04 LTS)، Red Hat Enterprise Linux 9/8، Debian 12 (Bookworm)، SUSE Linux Enterprise Server 15، openSUSE Leap 15.5، CentOS Stream، Alpine Linux | Nextcloud Ubuntu شائع الاستخدام |
| CPU ومعمارية نظام التشغيل | ٦٤-بت | تأكد من أن CPU ونظام التشغيل وPHP جميعها تعمل بنظام ٦٤-بت |
| PHP | PHP 8.3 (أو إصدارات أخرى) | استخدم إصداراً 64-بت لتجنب مشكلات التوافق |
| الذاكرة | الحد الأدنى: ١٢٨ ميغابايت RAM لكل عملية؛ الموصى به: ٥١٢ ميغابايت لكل عملية؛ المحدِّث: ٢٥٦ ميغابايت | اضبط هذه القيمة بحسب الاستخدام الفعلي |
| الوصول | صلاحيات Root أو sudo | مطلوب لإجراء تعديلات على مستوى النظام |
| أدوات الحاويات | Docker، Docker Compose | يُبسِّط عملية التثبيت والإدارة |
| خادم الويب | Apache 2.4 (يُنصح باستخدام mod_php أو php-fpm) أو nginx مع php-fpm | اختر بحسب احتياجاتك الشخصية أو متطلبات مؤسستك |
| قاعدة بيانات | MySQL (8.0/8.4)، أو MariaDB (يُنصح بـ 10.6/10.11 أو 11.4)، أو PostgreSQL | يجب أن يدعم InnoDB ومستوى العزل READ COMMITTED |
الخطوة الأولى: تحديث النظام وتجهيزه
قبل إعداد نسخة Nextcloud Docker، خصص لحظة لتحديث نظامك وتثبيت جميع الأدوات اللازمة. فكِّر في الأمر كترتيب مساحة عملك قبل البدء بمشروع جديد. نفِّذ هذه الأوامر على خادم Nextcloud Ubuntu الخاص بك:
تحديث قائمة الحزم وترقيتها:
حدِّث مستودعات الحزم وقم بترقية الحزم المثبتة باستخدام هذه الأوامر:
| sudo apt update sudo apt upgrade -y |
تثبيت Docker و Docker Compose والأدوات المساعدة:
ثبِّت Docker و Docker Compose إضافةً إلى أدوات مفيدة مثل curl و wget و build-essential بتشغيل:
| sudo apt install docker.io docker-compose curl wget build-essential -y |
(اختياري) إضافة مستخدمك إلى مجموعة Docker:
تتيح لك هذه الخطوة تشغيل أوامر Docker دون الحاجة إلى إضافة sudo في كل مرة:
| sudo usermod -aG docker $USER |
بعد تنفيذ هذا الأمر، سجِّل خروجاً ثم أعد تسجيل الدخول لتطبيق التغييرات.
التحقق من التثبيت:
تحقق من تثبيت Docker و Docker Compose بشكل صحيح:
| docker –version docker-compose –version |
يُنصح أيضاً بمراقبة سجلات Docker باستمرار لتسهيل استكشاف الأخطاء وإصلاحها، ويمكنك الاطلاع عليها وإدارتها باتباع هذه الخطوات.
بعد تحديث النظام وتجهيز جميع المتطلبات، لا بد من اختيار حل استضافة موثوق. تقدم Cloudzy خدمات VPS فائقة السرعة بسعة تخزين NVMe SSD تصل إلى ٢٤٠ GB (وحتى 2 TB مع VPS GPU) ونسبة تشغيل ٩٩٫٩٥٪، مما يجعلها خياراً ممتازاً لاستضافة نسخة Nextcloud الخاصة بك.
سنقوم الآن بإعداد خادم الويب وضبط إعدادات PHP للتأكد من أن كل شيء يعمل بشكل سليم مع نسخة Nextcloud Docker.
الخطوة ٢: ضبط إعدادات Apache/Nginx و PHP
بعد إعداد النظام بالكامل، حان وقت تهيئة خادم الويب و PHP. يرشدك هذا القسم خطوة بخطوة عبر إعداد Apache و Nginx، إلى جانب تعديلات PHP اللازمة لتشغيل Nextcloud بشكل سليم داخل Docker.
ضبط إعدادات Apache
إذا كنت تستخدم Apache، اتبع الخطوات التالية:
إنشاء ملف الإعداد:
- افتح ملفاً جديداً لـ Nextcloud:
| sudo nano /etc/apache2/sites-available/Nextcloud.conf |
- أضف داخل هذا الملف ما يلي:
| Alias /Nextcloud "/var/www/Nextcloud/"
<Directory /var/www/Nextcloud/> <IfModule mod_dav.c> |
تفعيل الموقع:
- تفعيل الإعداد الجديد:
| sudo a2ensite Nextcloud.conf |
تفعيل وحدات Apache المطلوبة:
- شغِّل هذه الأوامر لتفعيل الوحدات الضرورية:
| sudo a2enmod rewrite sudo a2enmod headers sudo a2enmod env sudo a2enmod dir sudo a2enmod mime |
إذا كنت تخطط لاستخدام PHP-FPM مع Apache (عبر mod_fcgi)، فعِّل أيضاً:
| sudo a2enmod setenvif |
تفعيل SSL (اختياري):
- لتأمين الاتصال، فعِّل SSL بالأمر:
| sudo a2enmod ssl sudo a2ensite default-ssl sudo service apache2 reload |
ضبط إعدادات Nginx
- لمستخدمي Nginx، تبدأ العملية بإنشاء كتلة server:
إنشاء ملف كتلة Server:
- افتح ملفاً جديداً:
| sudo nano /etc/nginx/sites-available/Nextcloud |
- الصق إعداداً مشابهاً لما يلي:
| server { listen 80; server_name your-server-ip or cloud.example.com;root /var/www/Nextcloud/; index index.php index.html /index.php$request_uri;location / { try_files $uri $uri/ /index.php?$args; }location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/run/php/php8.3-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } } |
تفعيل الإعدادات:
- أنشئ رابطاً رمزياً لتفعيل الموقع:
| sudo ln -s /etc/nginx/sites-available/Nextcloud /etc/nginx/sites-enabled/ |
اختبار NGINX وإعادة تحميله:
- تحقق من الإعدادات ثم أعد التحميل:
| sudo nginx -t sudo systemctl reload nginx |
ضبط إعدادات PHP
تعتمد Nextcloud على PHP مع إعدادات بعينها. عدّلها بفتح ملف إعداد PHP المناسب:
مع Apache وPHP:
| sudo nano /etc/php/8.3/apache2/php.ini |
مع Nginx وPHP-FPM:
| sudo nano /etc/php/8.3/fpm/php.ini |
في الملف، عدّل الإعدادات التالية على سبيل المثال:
- memory_limit (مثال: 512M)
- upload_max_filesize (مثال: 100M)
- post_max_size (مثال: 100M)
- max_execution_time (مثال: 360)
بعد إجراء التغييرات، أعد تشغيل الخدمات المعنية:
- Apache:
| sudo service apache2 restart |
- PHP-FPM:
| sudo systemctl restart php8.3-fpm |
بعد ضبط خادم الويب وتهيئة PHP، أصبحت جاهزاً للمرحلة التالية: إعداد قاعدة البيانات لتخزين بيانات Nextcloud.
الخطوة ٣: إعداد قاعدة البيانات
بعد تهيئة النظام وخادم الويب، تأتي الخطوة التالية وهي إعداد قاعدة بيانات لتثبيت Nextcloud. يتضمن ذلك إنشاء قاعدة البيانات ومستخدم مخصص بالصلاحيات المناسبة. إليك الطريقة:
١. تثبيت خادم MariaDB
ابدأ بتثبيت حزمة خادم MariaDB:
| sudo apt install mariadb-server -y |
٢. تأمين تثبيت MariaDB
شغّل سكريبت الأمان لإزالة الإعدادات الافتراضية غير الآمنة:
| sudo mysql_secure_installation |
ستُطلب منك تعيين كلمة مرور للمستخدم الجذر والإجابة على عدد من الأسئلة الأمنية. يُنصح بالإجابة بـ 'Y' (نعم) على جميع الأسئلة.
٣. تسجيل الدخول إلى واجهة MariaDB
ادخل إلى واجهة MariaDB بصلاحيات المستخدم الجذر:
| sudo mysql -u root -p |
أدخل كلمة مرور الجذر التي حددتها أثناء عملية التثبيت الآمن.
٤. إنشاء قاعدة بيانات جديدة لـ Nextcloud
من داخل واجهة MariaDB، نفّذ الأمر التالي لإنشاء قاعدة بيانات باسم Nextcloud:
| CREATE DATABASE Nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; |
٥. إنشاء مستخدم قاعدة بيانات مخصص
أنشئ مستخدماً جديداً باسم Nextclouduser وكلمة مرور قوية. استبدل your_password_here بكلمة مرور آمنة من اختيارك:
| CREATE USER 'Nextclouduser'@'localhost' IDENTIFIED BY 'your_password_here'; |
٦. منح الصلاحيات اللازمة للمستخدم
امنح Nextclouduser كافة الصلاحيات على قاعدة بيانات Nextcloud:
| GRANT ALL PRIVILEGES ON Nextcloud.* TO 'Nextclouduser'@'localhost'; |
٧. تطبيق التغييرات
نفّذ أمر مسح الصلاحيات لضمان تفعيل جميع التغييرات:
| FLUSH PRIVILEGES; |
٨. الخروج من واجهة MariaDB
اخرج من واجهة MariaDB بكتابة:
| EXIT; |
بعد إعداد قاعدة البيانات وتهيئتها، أصبحت جاهزاً للانتقال إلى الخطوة التالية: تثبيت Nextcloud. تتضمن هذه الخطوة تنزيل ملفات Nextcloud وتهيئتها للاتصال بقاعدة البيانات التي أنشأتها للتو.
الخطوة ٤: تنزيل Nextcloud وتثبيته
تتضمن هذه الخطوة تثبيت أحدث إصدار من Nextcloud على نظامك وإعداده. لديك خياران: الأول باستخدام Docker وهو مناسب للبيئات المعزولة، والثاني يعتمد التثبيت اليدوي التقليدي.
الطريقة الأولى: استخدام صورة Docker الرسمية
إذا كنت تفضّل البيئة المعزولة، نفّذ الأوامر التالية:
سحب صورة Nextcloud من Docker:
نزّل أحدث صورة Nextcloud من Docker Hub:
| docker pull Nextcloud |
إنشاء ملف Docker Compose:
لتسهيل الإدارة، أنشئ ملفاً باسم docker-compose.yml بالمحتوى التالي:
| version: '3'
services: volumes: |
تشغيل الحاويات:
نفّذ هذا الأمر لتشغيل حاويتَي Nextcloud وقاعدة البيانات في الخلفية:
| docker-compose up -d |
الطريقة الثانية: التثبيت اليدوي من أرشيف Nextcloud
إذا كنت تفضّل التعامل مع الملفات مباشرةً، إليك الخطوات:
تنزيل الإصدار الأحدث:
حمِّل أحدث أرشيف tar لـ Nextcloud:
| wget https://download.Nextcloud.com/server/releases/latest.tar.bz2 |
استخراج الأرشيف:
فك ضغط الملف الذي تم تنزيله:
| tar -xjf latest.tar.bz2 |
نقل مجلد Nextcloud:
انقل المجلد المستخرج إلى دليل الويب:
| sudo mv Nextcloud /var/www/Nextcloud |
ضبط الصلاحيات الصحيحة:
اضبط ملكية الملفات حتى يتمكن خادم الويب من الوصول إليها:
| sudo chown -R www-data:www-data /var/www/Nextcloud |
اختر الطريقة التي تناسبك. يوفر أسلوب Docker إعداداً سريعاً باستخدام Nextcloud docker compose، بينما تمنحك الطريقة اليدوية تحكماً مباشراً في الملفات. والأفضل من ذلك، أن استخدام Docker VPS من Cloudzy يوفر بيئة ملائمة لنشر Nextcloud عبر Docker، مما يجعل عملية الإعداد أكثر سهولة.
بعد ذلك، سننتقل إلى ضبط إعدادات Nextcloud - من إعداد المضيف الافتراضي، وتفعيل SSL، وأكثر من ذلك - لاستكمال تجربة التخزين السحابي الذاتي.
الخطوة الخامسة: ضبط إعدادات Nextcloud
بعد تنزيل Nextcloud وتثبيته، حان الوقت لإعداد مضيف افتراضي على Apache وتأمين موقعك بـ SSL، حتى تتمكن من الوصول إلى تخزينك السحابي الخاص عبر نطاق مخصص.
إنشاء ملف مضيف افتراضي في Apache
أنشئ ملف إعداد لـ Nextcloud:
| sudo nano /etc/apache2/sites-available/Nextcloud.conf |
الصق الإعداد التالي:
عدّل DocumentRoot و ServerName ليتناسبا مع بيئتك (على سبيل المثال، استبدل cloud.example.com بنطاقك أو عنوان IP الخاص بخادمك):
| <VirtualHost *:80> DocumentRoot /var/www/Nextcloud/ ServerName cloud.example.com<Directory /var/www/Nextcloud/> Require all granted AllowOverride All Options FollowSymLinks MultiViews<IfModule mod_dav.c> Dav off </IfModule> </Directory> </VirtualHost> |
تفعيل الإعداد الجديد
أخبر Apache بالإعداد الجديد:
| sudo a2ensite Nextcloud.conf |
إعادة تحميل Apache:
طبّق التغييرات بإعادة تحميل Apache:
| sudo systemctl reload apache2 |
تأمين موقعك باستخدام SSL
لضمان الوصول الآمن، يمكنك إعداد SSL. ثمة طريقتان شائعتان: استخدام شهادة موقّعة ذاتياً، أو الحصول على شهادة عبر Let's Encrypt.
الخيار الأول: شهادة موقّعة ذاتياً
تفعيل وحدة SSL:
| sudo a2enmod ssl |
تفعيل موقع SSL الافتراضي:
| sudo a2ensite default-ssl |
إعادة تحميل Apache:
| sudo systemctl reload apache2 |
الخيار الثاني: شهادة Encrypt (موصى بها للخوادم العامة)
تثبيت Certbot وإضافة Apache:
| sudo apt install certbot python3-certbot-apache -y |
- الحصول على الشهادة وتثبيتها:
استبدل cloud.example.com بنطاقك الخاص:
| sudo certbot –apache -d cloud.example.com |
اتبع التعليمات الظاهرة على الشاشة لإتمام العملية.
بعد إعداد المضيف الافتراضي في Apache وتفعيل SSL، أصبح نظام Nextcloud لديك جاهزاً لخدمة الاتصالات الآمنة من النطاق الذي اخترته. في الخطوة التالية، سنتناول إعداد قاعدة البيانات لتخزين بيانات Nextcloud، وهو ما يربط كل شيء معاً لتجربة استضافة ذاتية متكاملة.
الخطوة السادسة: استكمال الإعداد
الآن بعد أن أُعدَّ خادم الويب وPHP، حان وقت إنهاء عملية التثبيت. هذه الخطوة بمثابة اللمسات الأخيرة قبل إطلاق مشروعك.
ضبط صلاحيات الملفات:
قبل تشغيل معالج التثبيت، نفّذ الأمر التالي للتأكد من أن خادم الويب يملك صلاحية الوصول إلى جميع ملفات Nextcloud:
| sudo chown -R www-data:www-data /var/www/Nextcloud/ |
الوصول إلى Nextcloud عبر المتصفح:
افتح المتصفح واكتب URL الخاص بنظام Nextcloud لديك، مثل:
| http://your-server-ip/Nextcloud |
سيُحمَّل معالج تثبيت Nextcloud، وهو واجهة تفاعلية تأخذك خطوة بخطوة عبر مراحل الإعداد الأخيرة.
إتمام معالج التثبيت:
في المعالج، سيُطلب منك إدخال:
- تفاصيل قاعدة البيانات (المضيف، والاسم، والمستخدم، وكلمة المرور). في إعداد Docker، يكون مضيف قاعدة البيانات في الغالب اسم حاوية أو localhost.
- اسم مستخدم وكلمة مرور للمسؤول في نسخة Nextcloud الخاصة بك.
اتبع التعليمات التي تظهر على الشاشة، ثم انقر على زر "إنهاء الإعداد" عند الانتهاء.
بعد إكمال المعالج، سيُنهي خادم Nextcloud إعداده وستُرحَّب بك بلوحة تحكم Nextcloud الجديدة. في الخطوة التالية، سننتقل إلى ضبط إعدادات ما بعد التثبيت، كمهام cron والتخزين المؤقت وتعديلات الأمان، للحفاظ على استقرار نسختك.
الخطوة 7: إعدادات ما بعد التثبيت
بعد الانتهاء من معالج تثبيت Nextcloud عبر الويب، يمكن لبعض التعديلات النهائية أن تُحسّن المهام المجدولة والأداء والأمان. يتناول هذا القسم إعداد مهام الخلفية، وتكامل التخزين المؤقت مع Redis، وتعزيز أمان نسخة Nextcloud الخاصة بك.
تفعيل مهام Cron للمهام المجدولة
للحفاظ على تشغيل Nextcloud باستقرار، يُنصح بجدولة مهام الخلفية. أنشئ مهمة cron لتشغيل سكريبت Nextcloud كل خمس دقائق. افتح ملف crontab لمستخدم خادم الويب (عادةً www-data):
| sudo crontab -u www-data -e |
ثم أضف هذا السطر في نهاية الملف:
| */5 * * * * php -f /var/www/Nextcloud/cron.php |
احفظ الملف وأغلق المحرر. ستتولى هذه المهمة أموراً كحذف الملفات المؤقتة وإرسال الإشعارات وغيرها من روتينات الصيانة.
تثبيت Redis وتهيئته للتخزين المؤقت
يُمكن لـ Redis تسريع نسخة Nextcloud الخاصة بك عبر تخزين البيانات مؤقتاً وتحسين أداء قفل الملفات. أولاً، ثبّت Redis وامتداد PHP الخاص بـ Redis:
| sudo apt install redis-server php-redis -y |
بعد ذلك، حدّث ملف إعداد Nextcloud (الموجود عادةً في /var/www/Nextcloud/config/config.php) لإضافة إعدادات التخزين المؤقت. أضف هذه الأسطر داخل مصفوفة $CONFIG:
| 'memcache.local' => '\\OC\\Memcache\\APCu', 'memcache.locking' => '\\OC\\Memcache\\Redis', 'redis' => array( 'host' => 'localhost', 'port' => 6379, ), |
يُخبر هذا الإعداد Nextcloud باستخدام APCu للتخزين المؤقت المحلي، و Redis لقفل الملفات، مما يُحسّن الأداء والموثوقية معاً.
تعزيز إعدادات أمان Nextcloud
ثمة إجراءات إضافية تساعد على تشديد أمان التثبيت:
- ضبط صلاحيات الملفات الصحيحة:
اضبط ملكية دليل Nextcloud وصلاحياته لتقييد الوصول إليه:
| sudo chown -R www-data:www-data /var/www/Nextcloud sudo find /var/www/Nextcloud/ -type d -exec chmod 750 {} \; sudo find /var/www/Nextcloud/ -type f -exec chmod 640 {} \; |
- تشغيل أوامر وضع الصيانة:
فعّل وضع الصيانة مؤقتاً لإجراء أي فحوصات أمنية إضافية أو تحديثات على الإعدادات:
| sudo -u www-data php /var/www/Nextcloud/occ maintenance:mode –on # (نفِّذ هنا أي مهام صيانة مطلوبة) sudo -u www-data php /var/www/Nextcloud/occ maintenance:mode –off |
- مراجعة إعدادات خادم الويب:
تحقق من أن إعدادات Apache أو Nginx تُطبّق HTTPS وتحظر الوصول غير المصرح به حسب الحاجة.
بإتمام هذه الخطوات الأخيرة، سيتولى Nextcloud معالجة المهام الخلفية بكفاءة، ويستفيد من أداء محسّن عبر التخزين المؤقت، مع حماية أفضل من التهديدات الأمنية المحتملة.
الخاتمة
لقد أتممت إعداد Nextcloud على Docker من الصفر حتى أصبح حل تخزين سحابي ذاتي الاستضافة يعمل بالكامل. مع تحديث نظامك، وتثبيت التبعيات، وضبط خادم الويب مع PHP، بيئة Nextcloud Ubuntu جاهزة لتكون مركز مشاركة الملفات الخاص بك.
مع استمرارك في ضبط إعداداتك، أو تجربة تهيئات متقدمة، أو استكشاف تطبيقات Nextcloud الجديدة، يستحق الأمر التفكير في مزود الاستضافة المناسب. إذ إن VPS الموثوق والاقتصادي مثل Cloudzy يضمن بقاء Nextcloud آمناً ومستجيباً، وهو ما يجعله أساساً متيناً لاحتياجات التخزين السحابي لديك.
لمزيد من الاطمئنان، يُنصح بمراجعة إرشادات الأمان الرسمية على تعزيز أمان Nextcloud وتوصيات النسخ الاحتياطي على دليل النسخ الاحتياطي لـ Nextcloud، إذ تساعدك هذه الموارد على حفظ بياناتك وإبقاء خادمك يعمل بسلاسة.