معرفی کوتاه
Nextcloud یک سرور اشتراکگذاری فایل متنباز است که مانند Dropbox عمل میکند، با این تفاوت که کنترل کامل دادهها و امنیت آنها در اختیار خود شماست. در این راهنما، Nextcloud را روی Ubuntu 22.04 با استفاده از سیستم بستهبندی snap نصب و پیکربندی میکنیم. این شیوه برای محیطهای پردازش ابری مناسب است چون snap بستهی نرمافزاری و وابستگیها را در یک واحد خودکفا قرار میدهد و قابلیت بهروزرسانی خودکار را فراهم میکند.
پیشنیازها
- یک سرور Ubuntu 22.04 در بستر پردازش ابری (مثلاً یک پلن از ParminCloud) با دسترسی ریشه یا دسترسی sudo.
- یک نام دامنه (در صورت تمایل به دریافت گواهی Let’s Encrypt) یا استفاده از گواهی self-signed.
- فایروال مناسب (ufw یا مشابه) و توانایی باز کردن پورتهای لازم (80 و 443 برای HTTP/HTTPS).
نصب Nextcloud با snap
snap بهصورت پیشفرض روی Ubuntu 22.04 موجود است. برای نصب Nextcloud کافیست بسته را دانلود و نصب کنید:
sudo snap install nextcloud
برای بررسی اینکه نصب موفق بوده، لیست snapها را مشاهده کنید:
sudo snap list
برای مشاهده اطلاعات بیشتر دربارهی بسته:
sudo snap info nextcloud
برای مشاهدهی اتصالها (snap connections):
sudo snap connections nextcloud
برای بررسی ساختار داخلی بسته (snap definition):
sudo snap run --shell nextcloud -c 'cat /snap/nextcloud/current/meta/snap.yaml'
ساخت کاربر ادمین از خط فرمان
برای جلوگیری از باز ماندن صفحهی ثبتنام ادمین که برای مدت کوتاهی ممکن است بهصورت عمومی در دسترس باشد، بهتر است کاربر ادمین را از خط فرمان بسازیم:
sudo nextcloud.manual-install USERNAME PASSWORD
پس از اجرای دستور بالا، پیام تأیید نصب نمایش داده میشود که نشاندهندهی پیکربندی صحیح است.
تنظیم Trusted Domains (دامنههای معتبر)
Nextcloud بهصورت پیشفرض تنها به localhost
پاسخ میدهد. برای اینکه به دامنه یا آدرس IP سرور پاسخ دهد، باید آرایهی trusted_domains را ویرایش کنید:
مشاهده مقدار فعلی:
sudo nextcloud.occ config:system:get trusted_domains --value
افزودن دامنه یا آدرس جدید (ایندکس را بهصورت افزایشی قرار دهید):
sudo nextcloud.occ config:system:set trusted_domains 1 --value="nc.example.com"
با اجرای مجدد فرمان مشاهده مقدار، میتوانید ببینید که دامنهی جدید اضافه شده است.
فعالسازی SSL — Let’s Encrypt یا Self-signed
برای امنیت رابط وب، باید HTTPS را فعال کنید. اگر دامنه دارید، Let’s Encrypt بهترین و رایگانترین گزینه است. اگر دامنه ندارید، میتوانید از گواهی self-signed استفاده کنید (مرورگرها اخطار نمایش میدهند اما ترافیک رمزنگاری میشود).
حالت با دامنه — Let’s Encrypt
ابتدا پورتهای 80 و 443 را در فایروال باز کنید (مثال با ufw):
sudo ufw allow 80,443/tcp
درخواست گواهی Let’s Encrypt:
sudo nextcloud.enable-https lets-encrypt
در مراحل بعدی از شما پرسیده میشود که آیا شرایط فراهم است (Type y
)، سپس ایمیل و دامنه را وارد کنید. پس از موفقیتآمیز بودن، سرویس Apache داخلی snap مجدداً راهاندازی میشود تا SSL فعال شود.
حالت بدون دامنه — Self-signed
برای تولید گواهی self-signed:
sudo nextcloud.enable-https self-signed
پس از آن، گواهی self-signed ساخته و فعال میشود. مرورگرها احتمالاً اخطار خواهند داد که این گواهی مورد اعتماد نیست.
باز کردن پورتهای وب و ورود به رابط
در نهایت، پورتهای وب را باز کنید (اگر قبلاً باز نکردید):
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
سپس به آدرس دامنه یا آدرس IP/پلن خود مراجعه کنید. اگر گواهی self-signed استفاده کردهاید، مرورگر ممکن است اخطار دهد که اتصال ایمن نیست؛ میتوانید بهصورت دستی ادامه دهید.
از آنجایی که اکانت ادمین را از پیش ساختهاید، مستقیماً به صفحهٔ ورود هدایت میشوید؛ با استفاده از نام کاربری و گذرواژهای که ساختید وارد شوید.
نکات تکمیلی و عیبیابی متداول
- Conflict با Apache سیستم عامل: بسته Nextcloud snap شامل یک نمونه داخلی از Apache است. اگر روی سرور شما از قبل Apache برای میزبانی سایتهای دیگر فعال است، ممکن است تداخل پورت ایجاد شود. راهحل معمول: استفاده از reverse proxy (مثلاً nginx یا Apache بیرونی) که درخواستها را به Apache داخلی snap هدایت کند یا استفاده از سرور مجزا برای Nextcloud.
- خطای MySQL server has gone away: گاهی نصب دستی یا اتصال به دیتابیس خارجی نیاز به تنظیمات و محدودیتهای MySQL دارد (مثلاً
wait_timeout
یا حجم بستهها). برای نصب با snap، snap خودش دیتابیس داخلی را مدیریت میکند؛ اگر میخواهید از دیتابیس خارجی استفاده کنید، مطمئن شوید که مشخصات کاربری و مجوزها صحیح هستند و اتصال شبکهای پایدار وجود دارد. - نصب بستههایی مثل smbclient: چون snap محیط جداسازی شدهای دارد، برای ادغام با برخی ابزارها ممکن است نیاز به نصب آنها در سیستم میزبان و برقراری اتصالات مناسب یا استفاده از snap-specific conjoints باشد.
- مشکل دستیابی به nextcloud.manual-install: اگر پیغام “MySQL username and/or password not valid” دریافت میکنید و از snap استفاده میکنید، مطمئن شوید که دستور را درست اجرا میکنید و از اکانت محلی دیتابیس که snap ایجاد کرده استفاده نکنید. در بیشتر سناریوها دستور زیر کار میکند:
sudo nextcloud.manual-install admin strongpassword
در صورت بروز مشکلات پس از راهاندازی (مثلاً پس از راهاندازی مجدد سرور Nextcloud در دسترس نباشد): 1) وضعیت snap را با sudo snap services
بررسی کنید، 2) اگر Apache سیستمی از قبل فعال است، آن را متوقف یا پورت آن را تغییر دهید، یا reverse proxy تنظیم کنید، 3) لاگها را بررسی کنید (journalctl -u snap.nextcloud.apache
یا sudo snap logs nextcloud
).
افزونهها و عملکردهای بیشتر
Nextcloud میتواند قابلیتهای سرویسهای ابری محبوب را بازتولید کند: به اشتراکگذاری فایل بین کاربران، لینکهای عمومی، و افزونههای متنوع. به فروشگاه افزونههای Nextcloud مراجعه کنید تا امکانات جدید نصب کنید: apps.nextcloud.com.
پرسشها و کامنتهای رایج
- چگونه آدرس Nextcloud را از example.com تغییر بدهم به nc.example.com؟ — باید دامنه جدید را به آرایه trusted_domains اضافه کنید (با ایندکس مناسب) و اگر از SSL استفاده میکنید، گواهی Let’s Encrypt را برای دامنه جدید صادر کنید یا گواهی را مجدداً تهیه کنید.
- آیا Nextcloud AIO بهتر است؟ — Nextcloud All-in-One (AIO) یک گزینه است اما برای محیطهای تولیدی یا با نیازهای خاص شبکه/پروکسی ممکن است نصب snap رسمی مناسبتر باشد. انتخاب بستگی به نیازهای شما دارد.
- چرا خطای MySQL server has gone away میگیرم؟ — معمولاً مشکل مربوط به تنظیمات دیتابیس، اتصال شبکه یا timeoutها است. بررسی لاگها و پارامترهای MySQL توصیه میشود.
- آیا snap با Apache میزبان تداخل میکند؟ — بله، snap شامل Apache داخلی است و میتواند تداخل پورت ایجاد کند؛ راهحل استفاده از reverse proxy یا میزبانی جداگانه است.
نتیجهگیری
نصب Nextcloud با snap روی یک سرور Ubuntu 22.04 راهی سریع برای داشتن یک فضای ذخیرهسازی ابری تحت کنترل شماست. با پیکربندی درست trusted domains، فعالسازی SSL و در نظر گرفتن تداخلهای احتمالی با وبسرورهای موجود، میتوانید یک سرویس ایمن و قابل اتکا راهاندازی کنید که مناسب ارائه در خدمات پردازش ابری است.
اگر زیرساخت شما روی ParminCloud قرار دارد، این روش برای راهاندازی سریع یک پلن ابری مناسب است. برای راهکارهای مدیریت، امنیت و مقیاسپذیری بیشتر میتوانید از خدمات مدیریت شده و راهنماییهای تخصصی تیم ما استفاده کنید.
نظرات کاربران