
مقدمه
Discourse یکی از محبوبترین نرمافزارهای متنباز برای ایجاد انجمنهای گفتگو (Forum) است که توسط تیم توسعه Ruby on Rails طراحی شده است. این پلتفرم امکانات متنوعی مانند مدیریت کاربران، دستهبندی موضوعات، سیستم اعلانها، ارسال ایمیل، پشتیبانی از Markdown، API، افزونهها و قالبهای متنوع را در اختیار شما قرار میدهد.
برخلاف بسیاری از نرمافزارهای قدیمی انجمن، Discourse بهصورت پیشفرض برای اجرا داخل Docker طراحی شده است. همین موضوع باعث میشود فرآیند نصب، بروزرسانی و نگهداری آن سادهتر و مطمئنتر باشد.
در این آموزش، آخرین نسخه Discourse را روی Ubuntu 24.04 LTS نصب میکنیم. همچنین برای نصب Docker از میرور پارمین کلود استفاده خواهیم کرد تا سرعت دانلود بستهها افزایش یافته و وابستگی به مخازن خارجی کاهش یابد.
پیشنیازها
قبل از شروع، موارد زیر را آماده کنید:
- یک سرور Ubuntu 24.04 LTS
- حداقل ۲ گیگابایت RAM (برای محیط Production پیشنهاد میشود حداقل ۴ گیگابایت)
- یک کاربر دارای دسترسی sudo
- یک دامنه یا زیردامنه که به IP سرور اشاره کند
- یک SMTP Server برای ارسال ایمیلهای Discourse
اگر از پارمین کلود استفاده میکنید، ابتدا یک سرور Ubuntu 24.04 ایجاد کرده و DNS دامنه خود را به IP سرور متصل کنید.
مرحله اول — بروزرسانی سیستم
ابتدا سیستم را بروزرسانی کنید.
sudo apt update
sudo apt upgrade -y
در صورت نصب کرنل جدید، بهتر است سیستم را ریبوت کنید.
sudo reboot
مرحله دوم — نصب Docker با استفاده از میرور پارمین کلود
از آنجایی که Discourse داخل Docker اجرا میشود، ابتدا باید Docker را نصب کنیم.
ابتدا بستههای موردنیاز را نصب کنید.
sudo apt install \
ca-certificates \
curl \
gnupg \
lsb-release -y
اضافه کردن کلید GPG
دایرکتوری مربوط به کلیدها را ایجاد کنید.
sudo install -m 0755 -d /etc/apt/keyrings
سپس کلید GPG پارمین کلود را دریافت کنید.
curl -fsSL https://docker-ce.parmincloud.ir/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
مجوز فایل را اصلاح کنید.
sudo chmod a+r /etc/apt/keyrings/docker.gpg
اضافه کردن Repository پارمین کلود
فایل مخزن Docker را ایجاد کنید.
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://docker-ce.parmincloud.ir $(. /etc/os-release && echo $VERSION_CODENAME) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
نصب Docker
ابتدا لیست بستهها را بروزرسانی کنید.
sudo apt update
سپس Docker را نصب نمایید.
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
بررسی نصب
docker --version
نمونه خروجی:
Docker version 28.x.x
فعال کردن سرویس Docker
sudo systemctl enable --now docker
و وضعیت آن را بررسی کنید.
systemctl status docker
اگر خروجی مشابه زیر بود، نصب با موفقیت انجام شده است.
Active: active (running)
مرحله سوم — ایجاد دایرکتوری Discourse
تمام فایلهای مربوط به Discourse داخل مسیر زیر نگهداری خواهند شد.
sudo mkdir -p /var/discourse
سپس وارد این مسیر شوید.
cd /var/discourse
مرحله چهارم — دریافت فایلهای نصب Discourse
اکنون آخرین نسخه Docker Installer مربوط به Discourse را دریافت کنید.
sudo git clone https://github.com/discourse/discourse_docker.git /var/discourse
پس از پایان دانلود، وارد پوشه شوید.
cd /var/discourse
برای اطمینان از دریافت فایلها، دستور زیر را اجرا کنید.
ls
باید فایلهایی مشابه زیر مشاهده کنید.
containers
launcher
discourse-setup
templates
samples
imageمرحله ششم — ساخت حساب مدیر و راهاندازی اولیه Discourse
پس از اتمام نصب، سرویس Discourse بهصورت خودکار اجرا میشود و انجمن شما آماده استفاده خواهد بود.
اکنون مرورگر خود را باز کرده و دامنهای که هنگام نصب وارد کردهاید را باز کنید.
برای مثال:
https://forum.example.com
اگر همه چیز بهدرستی انجام شده باشد، صفحه خوشآمدگویی Discourse را مشاهده خواهید کرد.
نکته: اگر با خطای 502 Bad Gateway مواجه شدید، معمولاً نصب هنوز کامل نشده است. چند دقیقه صبر کرده و صفحه را مجدداً Refresh کنید.
ایجاد اولین حساب مدیر
در صفحه اصلی روی دکمه Register کلیک کنید.
فرم ثبتنام نمایش داده میشود.
انتخاب ایمیل
در قسمت Email همان ایمیلی را انتخاب کنید که هنگام اجرای discourse-setup وارد کرده بودید.
برای مثال:
admin@example.com
انتخاب نام کاربری
در قسمت Username یک نام کاربری برای مدیر سایت انتخاب کنید.
برای مثال:
admin
انتخاب رمز عبور
یک رمز عبور قوی شامل موارد زیر انتخاب کنید:
- حداقل ۱۲ کاراکتر
- حروف بزرگ و کوچک
- اعداد
- نمادهای ویژه
پس از تکمیل فرم روی Register کلیک کنید.
فعالسازی حساب
Discourse یک ایمیل فعالسازی برای شما ارسال میکند.
وارد صندوق ایمیل شوید و روی لینک فعالسازی کلیک کنید.
پس از فعالسازی، حساب شما بهعنوان Administrator ثبت خواهد شد.
اگر ایمیل را دریافت نکردید:
- پوشه Spam را بررسی کنید.
- تنظیمات SMTP را مجدداً بررسی کنید.
- در صورت نیاز روی Resend Activation Email کلیک کنید.
اجرای Setup Wizard
پس از اولین ورود، Discourse بهصورت خودکار Wizard اولیه را اجرا میکند.
این بخش به شما کمک میکند تنظیمات اولیه انجمن را انجام دهید.
نام انجمن
برای مثال:
Parmin Cloud Community
توضیحات سایت
برای مثال:
انجمن تخصصی گفتوگو و آموزشهای زیرساخت، لینوکس، DevOps و رایانش ابری
لوگوی سایت
در این مرحله میتوانید:
- لوگوی اصلی
- لوگوی حالت تاریک
- Favicon
را بارگذاری کنید.
اگر هنوز لوگو آماده نیست، میتوانید این مرحله را رد کرده و بعداً از پنل مدیریت انجام دهید.
انتخاب رنگبندی
یکی از قالبهای آماده را انتخاب کنید.
در آینده نیز امکان نصب Themeهای جدید وجود دارد.
ایجاد دستهبندیها
بهتر است از همان ابتدا دستهبندیهای اصلی را ایجاد کنید.
برای نمونه:
- اخبار
- آموزشها
- پرسش و پاسخ
- معرفی پروژهها
- DevOps
- لینوکس
- Docker
- Kubernetes
ورود به پنل مدیریت
برای دسترسی به پنل مدیریت، آدرس زیر را باز کنید:
https://forum.example.com/admin
از این بخش میتوانید:
- کاربران را مدیریت کنید.
- دستهبندیها را ایجاد کنید.
- تنظیمات ایمیل را تغییر دهید.
- افزونهها را نصب کنید.
- قالب سایت را شخصیسازی کنید.
- نسخه Discourse را بروزرسانی کنید.
بررسی سلامت سیستم
از منوی:
Admin → Dashboard
وضعیت کلی سیستم را بررسی کنید.
در این قسمت اطلاعاتی مانند:
- مصرف RAM
- مصرف CPU
- وضعیت ارسال ایمیل
- وضعیت Sidekiq
- نسخه Discourse
نمایش داده میشود.
اگر همه بخشها سبز باشند، نصب با موفقیت انجام شده است.
اولین موضوع (Topic)
برای اطمینان از عملکرد صحیح انجمن، یک موضوع آزمایشی ایجاد کنید.
برای مثال:
عنوان:
به انجمن پارمین کلود خوش آمدید
متن:
این اولین موضوع آزمایشی انجمن است و نشان میدهد که Discourse با موفقیت نصب و راهاندازی شده است.
پس از انتشار، عملکرد ایجاد Topic و نمایش آن را بررسی کنید.
مرحله هفتم — بروزرسانی، تهیه نسخه پشتیبان و نکات امنیتی Discourse
اکنون که انجمن شما آماده استفاده است، بهتر است با روشهای نگهداری و مدیریت آن نیز آشنا شوید. در این بخش نحوه بروزرسانی Discourse، تهیه نسخه پشتیبان و افزایش امنیت سرور را بررسی میکنیم.
بروزرسانی Discourse
توسعهدهندگان Discourse بهصورت مرتب نسخههای جدیدی منتشر میکنند که شامل رفع باگها، بهبود عملکرد و وصلههای امنیتی هستند.
برای بروزرسانی، ابتدا وارد پوشه نصب شوید.
cd /var/discourse
آخرین تغییرات را دریافت کنید.
sudo git pull
سپس کانتینر را مجدداً Build کنید.
sudo ./launcher rebuild app
در این مرحله آخرین نسخه Discourse دانلود شده و با حفظ اطلاعات و تنظیمات، کانتینر مجدداً ساخته میشود.
بروزرسانی از پنل مدیریت
اگر ترجیح میدهید از رابط گرافیکی استفاده کنید، به آدرس زیر بروید:
https://forum.example.com/admin/upgrade
در صورت وجود نسخه جدید، کافی است روی Upgrade کلیک کنید تا فرآیند بروزرسانی آغاز شود.
تهیه نسخه پشتیبان (Backup)
یکی از مهمترین کارهایی که باید بهصورت منظم انجام دهید، تهیه نسخه پشتیبان از انجمن است.
از پنل مدیریت وارد مسیر زیر شوید:
Admin → Backups
در این بخش میتوانید:
- نسخه پشتیبان کامل تهیه کنید.
- فایلهای Backup را دانلود کنید.
- زمانبندی تهیه نسخه پشتیبان را تنظیم کنید.
پیشنهاد میشود حداقل هفتهای یک نسخه پشتیبان تهیه و آن را در محلی خارج از سرور ذخیره کنید.
تهیه نسخه پشتیبان از طریق خط فرمان
در صورت نیاز میتوانید از کل دایرکتوری نصب نیز نسخه پشتیبان تهیه کنید.
sudo tar -czf discourse-backup.tar.gz /var/discourse
اگر از Snapshotهای ماشین مجازی در پارمین کلود استفاده میکنید، میتوانید قبل از هر بروزرسانی یک Snapshot تهیه کنید تا در صورت بروز مشکل، سرور را به وضعیت قبل بازگردانید.
بررسی وضعیت کانتینر
برای مشاهده کانتینرهای در حال اجرا:
docker ps
برای مشاهده تمام کانتینرها:
docker ps -a
مشاهده لاگها
در صورت بروز مشکل، لاگهای کانتینر را بررسی کنید.
cd /var/discourse
sudo ./launcher logs app
همچنین میتوانید لاگ Docker را نیز مشاهده کنید.
docker logs app
ریستارت Discourse
در صورت نیاز:
cd /var/discourse
sudo ./launcher restart app
توقف Discourse
cd /var/discourse
sudo ./launcher stop app
اجرای مجدد
cd /var/discourse
sudo ./launcher start app
نکات امنیتی
برای استفاده در محیط Production پیشنهاد میشود اقدامات زیر را انجام دهید:
- ورود با SSH Key را جایگزین رمز عبور کنید.
- ورود مستقیم کاربر Root را غیرفعال کنید.
- سرویس SSH را با ابزارهایی مانند Fail2Ban محافظت کنید.
- سیستمعامل Ubuntu را همواره بهروز نگه دارید.
- Docker و Discourse را به آخرین نسخه پایدار بروزرسانی کنید.
- از رمز عبور قوی برای حساب مدیر استفاده کنید.
- احراز هویت دومرحلهای (2FA) را برای مدیران فعال کنید.
- از تهیه منظم نسخههای پشتیبان غافل نشوید.
حداقل منابع پیشنهادی
اگر انجمن شما کاربران کمی دارد:
- ۲ هسته پردازشی
- ۴ گیگابایت RAM
- ۴۰ گیگابایت SSD
برای انجمنهای متوسط:
- ۴ هسته پردازشی
- ۸ گیگابایت RAM
- ۸۰ گیگابایت SSD یا NVMe
برای انجمنهای پرترافیک:
- ۸ هسته پردازشی یا بیشتر
- ۱۶ گیگابایت RAM یا بیشتر
- دیسک NVMe
- استفاده از Reverse Proxy و CDN مانند Cloudflare
جمعبندی
در این آموزش، نحوه نصب و راهاندازی Discourse روی Ubuntu 24.04 LTS با استفاده از Docker را بررسی کردیم. همچنین Docker را با استفاده از میرور پارمین کلود نصب کردیم و مراحل پیکربندی اولیه، ایجاد حساب مدیر، تنظیم SMTP، بروزرسانی و نگهداری سیستم را مرور کردیم.
در پایان شما با موارد زیر آشنا شدید:
- نصب Docker با میرور پارمین کلود
- نصب و راهاندازی Discourse
- تنظیم دامنه و SMTP
- ساخت اولین حساب مدیر
- انجام تنظیمات اولیه انجمن
- بروزرسانی Discourse
- تهیه نسخه پشتیبان
- افزایش امنیت و نگهداری در محیط Production
Discourse یکی از قدرتمندترین پلتفرمهای متنباز برای ایجاد انجمنهای گفتگو است و به لطف معماری مبتنی بر Docker، مدیریت و بروزرسانی آن بسیار ساده و قابل اطمینان خواهد بود.
از همراهی شما با پارمین کلود سپاسگزاریم.




