إعداد سحابة تخزين خاصة باستخدام Nextcloud
إعداد سحابة تخزين خاصة باستخدام Nextcloud
أصبح امتلاك سحابة تخزين خاصة خياراً عملياً للأفراد والشركات الصغيرة التي تريد التحكم الكامل في ملفاتها بعيداً عن الاعتماد الكلي على الخدمات التجارية المغلقة. يوفّر Nextcloud منصة قوية ومفتوحة المصدر لمزامنة الملفات، مشاركتها، وإدارة الوصول إليها من المتصفح أو الهاتف أو تطبيقات سطح المكتب.
تكمن قوة هذا الحل في أنك تدير البيانات والبنية التحتية بنفسك، سواء على خادم منزلي صغير أو VPS عام. كما يمكن دمجه لاحقاً مع البريد، التقويم، وإدارة المستخدمين، ما يجعله أكثر من مجرد مساحة تخزين. وإذا كنت حديث العهد ببيئة لينكس، فسيكون من المفيد مراجعة مقدمة إلى عالم لينكس: التاريخ، الفلسفة، وفهم النواة (Kernel) قبل البدء.
في هذا الدليل سنبني تثبيتاً عملياً وآمناً باستخدام Ubuntu Server مع خادم ويب Apache وقاعدة بيانات MariaDB وإصدار PHP المدعوم. سنغطي المتطلبات، التثبيت، الضبط الأساسي، وطبقات الحماية المهمة لضمان تجربة مستقرة وقابلة للتوسع.
المتطلبات الأساسية قبل التثبيت
قبل تثبيت Nextcloud تأكد من توفر خادم يعمل بنظام لينكس، واسم نطاق أو نطاق فرعي مثل cloud.example.com يشير إلى عنوان الخادم. كما يجب أن يكون لديك مستخدم يملك صلاحيات sudo.
ستحتاج أيضاً إلى فهم أساسي لإدارة الحزم والخدمات وتحرير الملفات. ويمكنك الرجوع إلى إدارة الحزم البرمجية وتحديث النظام (APT, YUM/DNF, Pacman) وإدارة الخدمات باستخدام (systemd) و (systemctl) وأدوات عرض ومعالجة النصوص (cat, nano, vim, less, tail) إذا أردت تقوية الأساسيات قبل التطبيق.
- خادم
Ubuntu 22.04أو أحدث. - ذاكرة لا تقل عن
2GB RAMللاستخدام الخفيف. - مساحة تخزين مناسبة لملفات المستخدمين وقاعدة البيانات.
- فتح المنافذ
80و443. - إمكانية الوصول عبر
SSHإلى الخادم.
تحديث النظام وتثبيت المكونات المطلوبة
الخطوة الأولى هي تحديث النظام وتثبيت المكدس البرمجي اللازم. يشمل ذلك خادم الويب، قاعدة البيانات، وامتدادات PHP التي يعتمد عليها التطبيق في رفع الملفات، المعالجة، والاتصال بقاعدة البيانات.
sudo apt update && sudo apt upgrade -y
sudo apt install apache2 mariadb-server libapache2-mod-php \
php php-gd php-mysql php-curl php-mbstring php-intl php-imagick \
php-xml php-zip php-bcmath php-gmp php-fpm unzip wget -y
بعد التثبيت، فعّل الوحدات الأساسية في Apache وأعد تشغيل الخدمة. هذا مهم لتشغيل إعادة الكتابة ودعم الترويسات المطلوبة بشكل صحيح.
sudo a2enmod rewrite headers env dir mime ssl
sudo systemctl restart apache2
إنشاء قاعدة بيانات مخصصة لـ Nextcloud
استخدام قاعدة بيانات مستقلة لكل تطبيق ممارسة ممتازة من حيث التنظيم والأمان. سننشئ قاعدة بيانات ومستخدماً منفصلاً مع كلمة مرور قوية. هذا يقلل من مخاطر الخلط بين الخدمات ويجعل النسخ الاحتياطي أكثر وضوحاً.
sudo mysql -u root
CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'StrongPasswordHere';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
لا تستخدم كلمات مرور ضعيفة أو مكررة في حساب قاعدة البيانات أو الحساب الإداري الأول. أي اختراق هنا قد يعني الوصول الكامل إلى ملفاتك الخاصة وبيانات المستخدمين.
تنزيل Nextcloud ونشر الملفات في المسار الصحيح
الآن سننزّل الحزمة الرسمية ونفك ضغطها داخل المسار /var/www/. إذا كنت تريد فهماً أفضل لتنظيم المسارات القياسية في لينكس، راجع هيكلية ملفات لينكس (Filesystem Hierarchy Standard – FHS) لأن هذا يسهل عليك فهم أماكن ملفات الويب والسجلات والإعدادات.
cd /tmp
wget https://download.nextcloud.com/server/releases/latest.zip
unzip latest.zip
sudo mv nextcloud /var/www/
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 {} \;
هنا قمنا بضبط الملكية إلى المستخدم www-data الخاص بخادم الويب. هذه الخطوة مرتبطة مباشرة بموضوع إدارة الصلاحيات والملكية (Chmod, Chown, Sudo)، وهي ضرورية حتى يتمكن التطبيق من الكتابة إلى الأدلة المطلوبة دون فتح صلاحيات مفرطة.
إعداد المضيف الافتراضي في Apache
ننشئ ملف إعداد مستقل للموقع ليخدم النطاق المخصص للسحابة. هذا يفصل الخدمة عن المواقع الأخرى على الخادم ويجعل إدارة الإعدادات أكثر ترتيباً، خصوصاً إذا كنت تشغّل عدة تطبيقات ويب على نفس الجهاز.
sudo nano /etc/apache2/sites-available/nextcloud.conf
<VirtualHost *:80>
ServerName cloud.example.com
DocumentRoot /var/www/nextcloud
<Directory /var/www/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
</Directory>
ErrorLog ${APACHE_LOG_DIR}/nextcloud_error.log
CustomLog ${APACHE_LOG_DIR}/nextcloud_access.log combined
</VirtualHost>
بعد حفظ الملف، فعّل الموقع وأعد تحميل الخدمة:
sudo a2ensite nextcloud.conf
sudo a2dissite 000-default.conf
sudo systemctl reload apache2
إذا كنت تريد التوسع لاحقاً في ضبط خوادم الويب وتحسين الأداء، فستفيدك قراءة إعداد وتكوين خوادم الويب (Nginx/Apache) وتحسين أدائها (Reverse Proxy).
إكمال التثبيت من المتصفح
افتح النطاق http://cloud.example.com من المتصفح. ستظهر لك واجهة التثبيت الأولي حيث تنشئ حساب المدير وتربط التطبيق بقاعدة البيانات التي أنشأتها مسبقاً.
- اسم المستخدم الإداري وكلمة المرور.
- مسار مجلد البيانات مثل
/var/www/nextcloud/dataأو قرص منفصل. - نوع قاعدة البيانات:
MySQL/MariaDB. - اسم القاعدة، المستخدم، وكلمة المرور التي ضبطتها.
من الأفضل وضع دليل البيانات على وحدة تخزين منفصلة إذا كان لديك حجم ملفات كبير. وهذا يتكامل جيداً مع مفاهيم التعامل مع الأقراص والتخزين (Storage, Partitions, LVM) عند التخطيط للتوسع أو ترحيل البيانات لاحقاً.
تفعيل HTTPS وتأمين الوصول
تشغيل السحابة بدون تشفير ليس خياراً جيداً، لأن كلمات المرور والملفات قد تعبر الشبكة بشكل غير آمن. لذلك يجب تفعيل HTTPS باستخدام شهادة مجانية من Let's Encrypt.
sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d cloud.example.com
ثم افتح الجدار الناري للمنافذ الضرورية فقط. ستجد تفاصيل أوسع في جدار الحماية (Firewall) وتأمين النظام (UFW, Firewalld, Iptables) وتأمين الخدمات العامة: إغلاق المنافذ غير المستخدمة وتغيير إعدادات SSH الافتراضية.
sudo ufw allow OpenSSH
sudo ufw allow 'Apache Full'
sudo ufw enable
إذا كان الخادم متصلاً بالإنترنت مباشرة، فاحرص على تحديث النظام بانتظام، تفعيل المصادقة الثنائية داخل
Nextcloud، ومراجعة سجلات الوصول بشكل دوري.
مهام ما بعد التثبيت والتحسين
بعد نجاح التشغيل، لا تتوقف عند مجرد رفع الملفات. هناك إعدادات مهمة تحسن الأداء والاعتمادية مثل إعداد المهام المجدولة، مراقبة السجلات، وأخذ نسخ احتياطية منتظمة لقاعدة البيانات ومجلد البيانات.
يفضّل ضبط طريقة تنفيذ المهام الخلفية عبر Cron بدلاً من التنفيذ عند تحميل الصفحات. وهذا يرتبط مباشرة بمقال جدولة المهام التلقائية باستخدام (Cron Jobs).
sudo crontab -u www-data -e
*/5 * * * * php -f /var/www/nextcloud/cron.php
ولمراقبة الأخطاء أو تتبع أسباب البطء، استخدم سجلات النظام وسجلات الويب. يمكن الاستفادة من مراقبة السجلات (Logs) وتحليل الأخطاء (journalctl, /var/log) لمعرفة الرسائل التحذيرية أو مشاكل الاتصالات أو الامتدادات الناقصة.
أما من ناحية الحماية والاستمرارية، فاحرص على إعداد خطة نسخ احتياطي تتضمن قاعدة البيانات وملفات التطبيق ومجلد البيانات. هذه النقطة تتقاطع مع استراتيجيات النسخ الاحتياطي الكارثي (Disaster Recovery Planning)، خصوصاً إذا كانت السحابة تُستخدم داخل بيئة عمل حقيقية.
متى يكون Nextcloud خياراً مثالياً؟
يكون Nextcloud مثالياً عندما تريد سيادة كاملة على البيانات، وربط المستخدمين داخلياً، والتحكم في سياسات المشاركة والتخزين. كما يناسب فرق العمل الصغيرة التي تبحث عن بديل مرن لخدمات التخزين الجاهزة، مع إمكانية التوسع عبر التطبيقات والإضافات.
في المقابل، يحتاج هذا الخيار إلى إدارة مستمرة وتحديثات وحماية ومراقبة. لذلك فإن نجاحه لا يعتمد فقط على التثبيت الأولي، بل على جودة تشغيل الخادم نفسه، من الأداء إلى الأمن إلى النسخ الاحتياطي. وإذا تم تنفيذ هذه الجوانب جيداً، فستحصل على منصة سحابية خاصة قوية، عملية، وقابلة للنمو مع احتياجاتك المستقبلية.
1 comment