使用Discourse搭建雨云同款論壇
前言
雨云論壇使用的源碼是?Discourse?打開官網(wǎng)后,你可以找到大大的收費標準 不要緊張,這是在 Discourse 官方提供的服務器上托管自己的網(wǎng)站所需的每月費用,自己搭建是完全免費的,但及其復雜,小白別想了,不然就是sha bi 搭建環(huán)境
首先需要擁有一臺 VPS ,任意支持 Docker持的 Linux 系統(tǒng)均可,這里建議 Debian12 并且有 Docker 環(huán)境 懶人方法:去?https://www.rainyun.com/wp-admin_?購買一臺 2 核 2G 的云服務器,系統(tǒng)選擇 Debian 12,預裝 Docker
等待其安裝完成后連接 SSH ,切記用客戶端連接,而不是網(wǎng)頁端提供的 VNC 使用 root 用戶連接 SSH 后,執(zhí)行(非 root 用戶先 sudo -s)
apt
update
之后會更新軟件包列表,稍等 1 分鐘左右 然后安裝 Git 和 vim 編輯器:
apt install git vim -y 隨后執(zhí)行
git
clone
https://github.com/discourse/discourse_docker.git /var/discourse 上方的命令可以將 git 庫 clone 到/var/discourse目錄下,修改相關字段即可更改目錄,如果不填寫即默認為 clone 至當前目錄 之后進入源碼目錄
cd
/var/discourse 更改containers文件夾的權限
chmod
700 containers 使用ls -lah查看當前目錄文件(夾)的詳細信息 之后需要準備一個郵箱 SMTP 賬號,這里以 QQ 郵箱為例
SMTP_Server:
smtp.qq.com
SMTP_Port:
587
SMTP_Username:
your
email(like
xxx@qq.com)
SMTP_Password:
授權碼
申請好一個授權碼后,我們要先劃拉一個 Swap 空間
fallocate -l 4G /swapfile 注意,上方命令會創(chuàng)建一個 4GiB 大小的 Swapfile,你可以根據(jù)服務器所剩空間靈活調整,推薦設置固定4GiB或者8GiB的swapfile,因為雨云大多數(shù)機子均為NVME SSD,速度極快 設置swapfile權限
chmod
600 /swapfile 轉換文件為Swap格式
mkswap /swapfile 啟用這個swapfile作為swap
swapon /swapfile 設置開機自動添加這個swapfile作為swap空間
echo
'/swapfile none swap sw 0 0'
| sudo
tee
-a /etc/fstab 之后需要配置swap積極性(又稱活躍性,英文Swappiness) vm.swappiness?的默認值通常是 60,但此處需要進行設置,因為其默認值為 0,如果你內存小的可憐(1G),那么建議將其改為 90 來更積極的使用swap,防止炸內存
vim /etc/sysctl.conf
vm.swappiness=
100:表示盡量多地使用交換空間
通常,將交換活躍性設置為介于 0 和 100 之間的值,根據(jù)系統(tǒng)的需求和性能優(yōu)化進行調整。例如此處將值設定為75 按i進入編輯模式
按下End將光標定位至行末,修改值 按下Esc,輸入:wq保存并退出 之后使其生效 sysctl -p 檢查開啟的swap位置
swapon
--show
之后使用iptables放通端口(你也可以裝一個ufw簡化配置) 放通80
iptables -A INPUT -p tcp
--dport
80
-j ACCEPT 放通443
iptables -A INPUT -p tcp
--dport
443
-j ACCEPT 保存
iptables-save | sudo
tee
/etc/iptables/rules.v4 規(guī)則持久化
apt install iptables-persistent -y 讓它加載一次確保規(guī)則生效
sudo iptables-restore <
/etc/i
ptables/rules.
v4
再重啟一下iptables萬無一失
sudo systemctl
start
netfilter
-
persistent 出現(xiàn)需要選擇“yes”或“no”的選項時選擇yes
隨后執(zhí)行配置程序
./discourse-setup 第一個問題,你的域名是什么 沒域名就去雨云白嫖一個
第二個問題,管理員賬戶的郵箱是什么(請確保能收到郵件),可以有多個,用英文半角逗號分隔 第三個問題,SMTP 服務器地址是什么 由于以 QQ 郵箱為例,所以 SMTP 配置寫的都是 QQ 郵箱的 之后問你 SMTP 端口是什么,賬號是什么,密碼是什么,通知地址(就是發(fā)件人,和 SMTP 寫一樣的就行) 這里問你你的Let’s Encrypt郵箱是什么,用于申請ssl的,如果直接回車可以跳過申請,避免麻煩,我選擇跳過(它會送你一個SSL)
這里問你你的GeoIP庫的高級版密鑰是什么,如果直接回車會使用免費的GeoLite庫,我買不起,所以直接回車 敲回車確認當前配置,敲n重新配置,按ctrl c取消配置 中間可能會有幾次都是看起來卡住不動了,稍等片刻即可,如果你意外斷開了SSH或者耐不住了想讓他重新來一次,那么應該使用./launcher rebuild app 之后訪問域名即可
之后注冊管理賬號,檢查你的郵箱
會發(fā)現(xiàn)并沒有收到郵件,這是因為官方的配置器存在錯誤,我們需要手動編輯containers/app.yml
vim containers/app.yml 找到端口相關的配置,他類似這樣:- "443:443" 加上- "587:587" 在DISCOURSE_開頭的配置下方添加一條:?DISCOURSE_SMTP_AUTHENTICATION: login 在我光標所在行的地方,去掉前面的“#”,并且將后面的郵箱修改為你的 SMTP 郵箱賬號
按esc,輸入:wq保存退出 如果只修改SMTP相關問題,那么無需重建應用,只使用下列命令即可
./launcher destroy app ./launcher start app 如果您嘗試了上述方法依然無法收到郵件,那么使用命令行強行跳過初次郵件驗證:
cd
/var/discourse ./launcher enter app 在回車后輸入
rake admin:
create
輸入郵箱、如果提示“do you want to reset password”的類似提示 輸入n
如果提示 do you want to grant admin 輸入y 之后輸入兩次密碼即可(密碼不會回顯) 之后輸入exit回到原來的終端 訪問域名
登錄后左側找到“Admin”,選擇“Settings”
更改語言后點擊綠色對勾,刷新頁面后即可 通過此方式搭建的論壇還支持在線聊天(也可能是雨云關了?或者懶得更新)