نصب Discourse روی سرور (هاست)
بدون داشتن دانشی درمورد برنامه نویسی Rails (رابی اند ریلز) یا shell لینوکس،برنامه انجمن ساز Discourse (دیسکورس) را در فضای ابری (سرور/هاست) خود و در کمتر از 30 دقیقه راه اندازی کنید. این مراحل روی هر ارائهدهنده ابری سازگار با داکر (Docker) یا سرور محلی (اختصاصی) کار خواهد کرد. این راهنما به تفصیل موارد زیر را بررسی میکند:
فهرست مطالب
قبل از شروع
1. آماده کردن دامنه
🔔 Discourse از یک آدرس IP کار نخواهد کرد، برای ادامه باید یک نام دامنه مانند example.ir داشته باشید.
قبلاً دامنه خریدید؟ عالی. یک زیر دامنه مانند discourse.example.com یا talk.example.com یا forum.example.com را برای آدرس انجمن (discourse) خود ایجاد کنید.
دامنه نداری؟ یکی بگیر! از ایران سرور، ایران هاست، پارس پک و … .
- باید کنترلهای DNS شما باید از جایی که نام دامنه خود را خریداری کردهاید در دسترس باشد. باید پس از خرید هاست/سرور بتونید dns های دامنه را روی اون هاست یا سرور تنظیم کنید، هم واسه دسترسی به فضایی که Discourse رو نصب میکنید و هم واسه رکوردهای SPF و DKIM واسه تنظیمات ایمیل.
2. تنظیمات ایمیل
⚠️ ایمیل برای ایجاد حساب و اعلانها در Discourse بسیار مهم است. اگر قبل از بوت استرپ کردن، ایمیل را به درستی پیکربندی نکنید، سایت کار نمیکنه!
💡 ایمیل در اینجا به ایمیل Transactional (معاملهای) اشاره دارد نه سرویس ایمیل معمولی مانند Gmail، Outlook یا Yahoo.
در اینجا چند حالت پیش میاد:
سرور پست الکترونیکی ندارید؟ ارائه دهندگان ایمیل پیشنهادی ما را برای Discourse را بررسی کنید.
آیا از قبل یک سرور ایمیل دارید؟ عالی. از اعتبار سرور ایمیل موجود خود استفاده کنید. (سرویسهای ایمیل رایگان مانند Gmail/Outlook/Yahoo از ایمیلهای تراکنشی پشتیبانی نمیکنند.)
برای اطمینان از تحویل نامه، باید رکوردهای SPF و DKIM معتبر را در DNS خود اضافه کنید. شما به اعتبارنامه SMTP از ارائه دهنده ایمیل خود نیاز دارید که شامل نام کاربری و رمز عبور SMTP است. وارد حساب ارائه دهنده ایمیل خود شوید، به تنظیمات SMTP یا بخش Email API بروید و اعتبارنامه یکتا () SMTP خود را بیابید/تولید کنید. آنها را ایمن نگه دارید، زیرا در طول پیکربندی Discourse از آنها استفاده خواهید کرد. برای جزئیات بیشتر به دستورالعمل های ارائه دهنده ایمیل خود مراجعه کنید.
هنگام ایجاد رکورد DKIM، برخی از ارائه دهندگان میزبانی ابری ممکن است نام دامنه را به طور خودکار به ورودی کلید عمومی اضافه کنند. بررسی کنید که رکورد ایجاد شده دارای مقدار کلید عمومی مورد انتظار باشد.
- اگر مشکلی برای کار کردن ایمیلها دارید، راهنمای عیبیابی ایمیل ما را دنبال کنید.
نصب Discourse
3. ساخت سرور ابری جدید
سرور ابری جدید خود را ایجاد کنید، به عنوان مثال در ابر آروان، ابرزس یا آرازکلود.
- درحال حاضر نسخه LTS پشتیبانی شده فعلی سرور اوبونتو به خوبی کار میکند. حداقل، یک سیستم عامل لینوکس 64 بیتی با نسخه هسته مدرن مورد نیاز است.
- رم پیشفرض 1 گیگابایت برای جوامع کوچک Discourse به خوبی کار میکند. ما 2 گیگابایت رم را برای جوامع بزرگتر توصیه می کنیم.
- برای محل سرور، منطقه ای را انتخاب کنید که از نظر جغرافیایی به مخاطبان شما نزدیک تر است.
- برای اتصال دامنه به سرور خریداری شده، دامنه خود را discourse.example.com به اضافه کنید.
- ممکن است ایمیلی با رمز عبور root دریافت کنید، با این حال، باید کلیدهای SSH را تنظیم کنید، زیرا ایمن تر هستند.
⚠️ اکنون سرور ابری خود را ایجاد کرده اید! به کنترلهای DNS خود برگردید و از آدرس IP برای تنظیم یک رکورد A برای نام میزبان discourse.example.com خود استفاده کنید. برای اینکار اگر دامنهتان ir است، باید در سایت ایرنیک وارد شده و در قسمت دامنهها، دامنه خود را پیدا کرده و DNS ای که فروشنده هاست/سرور برای شما ارسال کرده را در ردیف های آنجا وارد کنید. برای اضافه کردن زیر دامنه یا ساب دامنه (منظور مثلا zero در zero.example.ir است)، باید به کنترل پنل (دایرکت ادمین یا سی پنل) هاست/سرور خود برید و در قسمت دامنه ها، زیر دامنهی خودتونو ایجاد کنید.
4. دسترسی به سرور ابری
از طریق آدرس IP با استفاده از SSH یا نرم افزار Putty در ویندوز به سرور خود متصل شوید:
ssh root@192.168.1.1
یا از رمز عبور root از ایمیلی که فرشونده هاست/سرور هنگام راه اندازی سرور برای شما ارسال کرد استفاده کنید، یا یک کلید SSH معتبر روی دستگاه محلی خود پیکربندی کنید.
5. نصب پیش نیازهای داکر
sudo apt install docker.io
sudo apt install git
6. نصب Discourse
ایمیج رسمی Discourse Docker را در مسیر /var/discourse بصورت زیر کلون (کپی) کنید.
sudo -s
git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse
chmod 700 containers
شما باید در بقیه مراحل راه اندازی و بوت استرپ در حالت root باشید. منظور از حالت root یا ریشه در لینوکس (سرور لینوکسی) یعنی دسترسی و مدیریت کاملی برای نصب و تغییر موارد لازم را داشته باشید. برعکس دسترسی root، دسترسی کاربر است که دستش خیلی برای تغییرات باز نیست.
7. ویرایش پیکربندی Discourse
اجرای تنظیمات در:
./discourse-setup
در موارد زیر به سوالات پاسخ دهید:
Hostname for your Discourse? [discourse.example.com]:
Email address for admin account(s)? [me@example.com,you@example.com]:
SMTP server address? [smtp.example.com]:
SMTP port? [587]:
SMTP user name? [user@example.com]:
SMTP password? [pa$$word]:
Let's Encrypt account email? (ENTER to skip) [me@example.com]:
Optional Maxmind License key () [xxxxxxxxxxxxxxxx]:
جزئیات SMTP را از راه اندازی ایمیل خود دریافت خواهید کرد، حتماً آن بخش را تکمیل کنید.
راهاندازی حساب Let’s Encrypt به شما یک گواهی HTTPS رایگان برای سایت شما میدهد، اگر میخواهید سایتتان امن باشد، حتماً آن را تنظیم کنید.
این یک فایل پیکربندی app.yml از طرف شما ایجاد می کند و سپس بوت استرپ را شروع می کند. راهاندازی Discourse بین ۲ تا ۸ دقیقه طول میکشد. اگر بعد از راهاندازی نیاز به تغییر این تنظیمات دارید، میتوانید ./discourse-setup را دوباره اجرا کنید (از مقادیر قبلی شما در فایل استفاده میکند) یا /containers/app.yml را بهصورت دستی با ویرایشگر متن لینوکس nano و سپس ./launcher rebuild app ویرایش کنید. ، در غیر این صورت تغییرات شما اعمال نمیشود.
8. اجرای Discourse
پس از اتمام راهاندازی، Discourse شما باید در مرورگر وب از طریق نام دامنه discourse.example.com که قبلاً وارد کردهاید قابل دسترسی باشد.
9. ثبت نام حساب جدید و تبدیل شدن به مدیر انجمن Discourse
با استفاده از یکی از آدرسهای ایمیلی که قبل از بوت استرپ وارد کردهاید، یک حساب کاربری جدید ثبت کنید.
(اگر نمی توانید حساب مدیریت خود را ثبت کنید، گزارش ها را در /var/discourse/shared/standalone/log/rails/production.log بررسی کنید و چک لیست عیب یابی ایمیل ما را ببینید.)
پس از ثبت حساب ادمین (مدیر) خود، پنجره تنظیمات راه اندازی می شود و شما را از طریق پیکربندی اولیه Discourse تان راهنمایی می کند.
پس از اتمام مراحل تنظیمات، یک پیام پاپآپ به شما خوش آمد می گوید. همچنین شما را به راهنمای مدیریت مرتبط میکند، که اکیداً توصیه میکنیم فوراً به آن نگاه کنید و مرتباً به آن مراجعه کنید. این راهنما یک چک لیست راهاندازی، راهنماییهای مهم در مورد نحوه راهاندازی موفقیتآمیز انجمن discourse و نکات عیبیابی ارائه میدهد.
10. تعمیر و نگهداری پس از نصب
- به شما پیشنهاد اکید میکنیم که به روزرسانی خودکار امنیتی را برای سیستم عامل خود روشن کنید. در اوبونتو از دستور dpkg-reconfigure -plow unattended-upgrades استفاده کنید. در CentOS/RHEL، از پکیج yum-cron استفاده کنید.
- اگر از رمز عبور استفاده میکنید و نه کلید SSH، حتماً یک رمز عبور قوی root را اعمال کنید. در اوبونتو از پکیج apt install libpam-cracklib استفاده کنید. ما همچنین fail2ban را توصیه میکنیم که آدرسهای IP را به مدت 10 دقیقه مسدود میکند که بیش از 3 تکرار رمز عبور را انجام میدهند.
- اوبونتو: apt install fail2ban
- CentOS/RHEL:sudo dnf install fail2ban
- اگر به فایروال پیش فرض نیاز دارید یا می خواهید، ufw را برای اوبونتو روشن کنید یا از فایروال برای CentOS/RHEL استفاده کنید.
💡 وقتی نسخههای جدید Discourse منتشر شد، Discourse برای شما یک ایمیل ارسال میکند. لطفاً برای دریافت آخرین ویژگیها و رفع مشکلات امنیتی، در جریان باشید.
برای ارتقاء Discourse به آخرین نسخه، از https://discourse.example.com/admin/upgrade در مرورگر خود دیدن کنید و روی دکمه ارتقا کلیک کنید.
از طرف دیگر، می توانید به سرور خود ssh کنید و با استفاده از:
cd /var/discourse
git pull
./launcher rebuild app
دستور launcher در پوشه /var/discourse را می توان برای انواع مختلف نگهداری استفاده کرد:
Usage: launcher COMMAND CONFIG [--skip-prereqs] [--docker-args STRING]
Commands:
start: Start/initialize a container
stop: Stop a running container
restart: Restart a container
destroy: Stop and remove a container
enter: Use nsenter to get a shell into a container
logs: View the Docker logs for a container
bootstrap: Bootstrap a container for the config based on a template
rebuild: Rebuild a container (destroy old, bootstrap, start new)
cleanup: Remove all containers that have stopped for > 24 hours
Options:
--skip-prereqs Don't check launcher prerequisites
--docker-args Extra arguments to pass when running docker
11. اضافه کردن ویژگی های بیشتر به Discourse (اختیاری)
آیا میخواهید …
- کاربران فقط از طریق سیستم ثبت نام وب سایت از قبل موجود خود وارد می شوند؟ Single-Sign-On را پیکربندی کنید.
- کاربران از طریق گوگل، توییتر، گیت هاب یا فیس بوک وارد شوند؟
- کاربران از طریق ایمیل، پاسخ ارسال کنند؟ پیکربندی پاسخ از طریق ایمیل
- پشتیبان گیری خودکار روزانه؟ پشتیبانگیری را پیکربندی کنید.
- پشتیبانی از HTTPS / SSL
- پشتیبانی رایگان HTTPS / SSL با Let’s Encrypt در طول نصب استاندارد فعال می شود. اگر این مرحله را رد کردید، Let’s Encrypt را پیکربندی کنید.
- پشتیبانی HTTPS / SSL پولی؟ SSL را پیکربندی کنید.
- از افزونه Discourse یا شخص ثالث استفاده کنید؟ پلاگین ها را پیکربندی کنید
- چندین انجمن Discourse در یک سرور؟ چند سایت را پیکربندی کنید.
- رویدادهای انجمن را با وبهوک ها مدیریت کنید؟ پیکربندی وب هوک ها
- یک شبکه تحویل محتوا (CDN) برای تسریع دسترسی در سراسر جهان؟ یک CDN را پیکربندی کنید. ما ابرآروان را توصیه می کنیم.
- محتوای قدیمی را از vBulletin، PHPbb، Vanilla، Drupal، BBPress، و غیره وارد یا منتقل کنید؟ واردکنندگان منبع باز و راهنمای مهاجرت ما را ببینید.
صفحه آفلاین کاربر پسند هنگام بازسازی یا ارتقاء؟ - برای جاسازی Discourse در نصب وردپرس خود یا در سایت HTML ایستا خود؟
به ما در بهبود این راهنما کمک کنید! به راحتی می توانید در مورد آن در meta.discourse.org بپرسید، یا حتی بهتر است، یک درخواست pull (در گیتهاب) ارسال کنید.
دیدگاهتان را بنویسید