一、前言
Discourse程序基于Ruby on Rails, Ember.js, 以及PostgreSQL, 完全免费开源。它拥有丰富的功能,强劲的性能,高稳定性与安全性,以及可以高度自定义的界面。
官方推荐使用docker安装,借助Docker,我们可以在一个简单的容器中为您提供经过完全优化的Discourse配置,以及基于Web的GUI,使您只需单击一个按钮即可轻松升级到Discourse的新版本。这篇文章还是基于宝塔面板来安装。
注意:本教程的安装环境为:Debian 12
二、安装
1、简介
- 项目:https://github.com/discourse/discourse
- 官网:https://www.discourse.org/
- 演示:https://try.discourse.org/
2、准备
(1)硬件需求:
- 推荐双核vps
- 最低1 GB RAM(带有swap)
- 与Docker兼容的64位Linux系统
- 最小10 GB磁盘空间
(2)其他准备
- 宝塔面板
- docker管理器(软件商店里安装)
- 准备一个域名
3、留出80和443端口
安装需要80和443端口,所以最好是在一个全新的宝塔环境里安装该该程序。宝塔面板默认占用了80端口,我们需要稍微修改一下。
(1)路径:
/www/server/panel/vhost/nginx,把里面的两个文件端口改为其他,比如808。看图:(提醒:第一步尽量采用安装步骤,及“ ./discourse-setup ”,因为采用设置好 app.yml 文件进行程序执行“ ./launcher rebuild app ”重建的方式,后续在进行 Docker 设置的时候容易出问题,这个因人而异,不是每次都会碰到,但是按照此方法,可以减少出现错误的概率 。)
注意,这里面的2个默认文件都需要编辑默认的80端口。
4、部署
(1)下载程序
git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse
注意:“/var/discourse”可以根据自己的需要设定为自己的自定义文件路径,比如:“/mnt/vdb/www/wwwroot/discourse”
(2)编辑app.yml
[reply]
执行命令 cp samples/standalone.yml containers/app.yml复制配置文件到containers目录
并且根据自己环境配置app.yml配置文件,修改以下内内容
(3)具体编辑如下:
expose:
- "80:80" # http 默认80端口,如果需要修改可以改为类似8080:80的形式
- "443:443" # https
params:
db_default_text_search_config: "pg_catalog.english"
## Set db_shared_buffers to a max of 25% of the total memory.
## will be set automatically by bootstrap based on detected RAM, or you can override
db_shared_buffers: "2048MB"
## can improve sorting performance, but adds memory usage per-connection
#db_work_mem: "40MB"
## Which Git revision should this container use? (default: tests-passed)
#version: tests-passed
env:
LC_ALL: zh_CN.UTF-8
LANG: zh_CN.UTF-8
LANGUAGE: zh_CN.UTF-8
# DISCOURSE_DEFAULT_LOCALE: en
## How many concurrent web requests are supported? Depends on memory and CPU cores.
## will be set automatically by bootstrap based on detected CPUs, or you can override
UNICORN_WORKERS: 8
## TODO: The domain name this Discourse instance will respond to
## Required. Discourse will not work with a bare IP number.
DISCOURSE_HOSTNAME: dd.qixi.ng #这里是域名,不要忘记填写。
## Uncomment if you want the container to be started with the same
## hostname (-h option) as specified above (default "$hostname-$config")
#DOCKER_USE_HOSTNAME: true
## TODO: List of comma delimited emails that will be made admin and developer
## on initial signup example '[email protected],[email protected]'
DISCOURSE_DEVELOPER_EMAILS: '[email protected]' #这里修改为自己的
## TODO: The SMTP mail server used to validate new accounts and send notifications
# SMTP ADDRESS, username, and password are required
# WARNING the char '#' in SMTP password can cause problems!
#这下面都是邮箱配置,根据需要来。
DISCOURSE_SMTP_ADDRESS: smtp.163.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: abc
DISCOURSE_SMTP_PASSWORD: "123456"
#DISCOURSE_SMTP_ENABLE_START_TLS: true # (optional, default true)
DISCOURSE_SMTP_DOMAIN: daniao.org
DISCOURSE_NOTIFICATION_EMAIL: [email protected]
## If you added the Lets Encrypt template, uncomment below to get a free SSL certificate
LETSENCRYPT_ACCOUNT_EMAIL: [email protected]
[/reply]
(4)启动安装
在程序根目录,输入以下命令开始安装。
./discourse-setup
(5)在提示时回答以下问题
例如:
Hostname for your Discourse? [discourse.example.com]:
Email address for admin account(s)? [[email protected],[email protected]]:
SMTP server address? [smtp.example.com]:
SMTP port? [587]:
SMTP user name? [[email protected]]:
SMTP password? [pa$$word]:
Let's Encrypt account email? (ENTER to skip) [[email protected]]:
之后,我们需要等2到8分钟的时间安装程序!!
提醒:如果需要更换域名,或者其他,你需要编辑app.yml文件。编辑好后,输入以下命令让修改生效。
./launcher rebuild app
三、进入安装页面
1、上面的程序安装完成后,打开你的域名便可以访问了。
2、注册新帐户并成为管理员,使用引导前输入的电子邮件地址之一注册一个新的管理员帐户。
3、注册成功,要验证邮箱,所以前面的smtp一定要配置正确。
4、注册管理员帐户后,安装向导将启动并指导您完成Discourse的基本配置。
5、完成设置向导后,您应该看到Staff主题和README FIRST:Admin快速入门指南。
四、日常运维
1、升级版本
随着新版本的Discourse的发布,您将收到电子邮件提醒。请保持最新状态以获取最新功能和安全修复程序。要将Discourse升级到最新版本,请/admin/upgrade在浏览器中访问,然后单击“升级”按钮。
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
举个列子:
./launcher rebuild app
五、宝塔建站
用宝塔来安装还是有点繁琐的,你如果用80端口,还需要修改宝塔默认占用的80端口。
六、升级更新
1、后台提示:您正在运行旧版本的 Discourse 镜像,该如何升级?
SSH连接到您的服务,进入您的Discourse文件夹,例如:/var/discourse ,依次输入如下命令:
cd /var/discourse
git pull
./launcher rebuild app
即可完成手动更新
2、升级过程中,提示:fatal: detected dubious ownership in repository at…………的解决方法
该报错的原因是,Discourse的文件夹,不在系统默认的Git指定目录中,
解决方法,执行一下命令:
git config --global --add safe.directory "*"
注意:命令中的“*”为您的Discourse源代码文件所在文件夹路径,例如:”/var/discourse”

篇微



Cloudflare 不仅仅是一个 CDN 服务商,而是一个高性能、低延迟、安全可靠的全球网络平台。
借助其遍布全球的边缘计算架构,Cloudflare 能够高效加速静态与动态内容的分发,同时提供精准的缓存策略以优化带宽使用。此外,其内置的无限 DDoS 保护机制可有效抵御各类网络攻击,确保业务的稳定性与安全性。
今天,我们将利用 Cloudflare Workers 与 Cloudflare Pages 搭建高效的反向代理服务,以充分发挥 Cloudflare 在分布式计算与边缘网络加速方面的优势。
推荐使用Google进行注册,Google账户几乎覆盖所有国外的热门网站,都可以使用Google账户进行登录,如果你还没有谷歌账户的话,赶紧去注册一个吧!
激活域名
需要将域名转移到Cloudflare上面,如果你还不会在Cloudflare中激活域名的话,下面教你如何激活域名。
需要更新您的名称服务器来激活 Cloudflare。
在Cloudflare后台添加新域名,将域名输入,默认选择快速扫描DNS记录,点击继续!
选择免费计划,域名添加成功!
接下来登录到你的域名注册的网站上,进入后台后,找到并关闭 DNS 安全 (DNSSEC) 设置,如果默认是关闭的请无视,您以后可以通过 Cloudflare 重新启用。
将您当前的名称服务器替换为 Cloudflare 分配的名称服务器。
注意:每个域名都会分配不同的名称服务器,删除掉多余名称服务器,在名称服务器1和名称服务器2中填写Cloudflare 名称服务器。
下面以namesilo为例:
在后台点击域名,进入域名操作页面,编辑名称服务器。将名称服务器里的内容删除掉。
修改名称服务器后,保存即可。个别地区生效时间较晚,暂时不需要理会生效时间。
在Cloudflare后台,如果域名状态是活动状态,就表示已经生效了,如果名称服务器没有生效或者修改错误,会显示名称服务器无效。
GitHub账户
如果还没有账户,请访问
在GitHub上创建账户,只能使用电子邮件注册,建议使用Gmail进行注册。
在邮箱中接收验证码,填写完毕后,账户注册成功!
给你的 Worker 起个名字(默认会生成一个类似 yourname.workers.dev 的域名)。
名字填写完毕后,点击部署,接下来进入部署页面中
点击编辑代码,进入到 Worker 编辑器中,删除默认代码,粘贴以下简单反向代理脚本。
第三步:创建反向代理脚本
创建一个自定义的java脚本,下面是反向代理脚本示例:
选择自定义域,然后输入域名后保存。这时候域名就添加成功了,可以使用新域名访问了。
到这里,使用Cloudflare Workers实现反向代理的功能就已经实现了,是不是很简单。接下来还可以使用Pages部署网站反向代理。
连接你的 GitHub 或 GitLab 仓库(可以创建一个简单的空的静态项目,例如只有一个 index.html)。
第二步:连接到存储库
这里以GitHub为例,首先需要在GitHub上创建一个项目。
在 Github 上建立仓库并添加代码,登录
注意,这里创建新的存储库要选择私人的,否则是任何人都可以访问的。
接下来创建新文件,点击 creating a new file 创建新文件,创建文件。
下面创建一个名为_worker.js 的文件,然后复制以下代码,在第五行单引号里改成你想要反代的网站,然后保存,提交更改。
反向代理的js代码,注意域名中不要加https,http等字符。
页面跳转至 Github ,点击 Install & Authorize 按钮。
输入密码进行连接,连接成功后,返回到Cloudflare Pages
选择存储库后,点击开始设置。
设置构建和部署页面可以修改项目名称,或者默认即可,最后点击保存并部署。
很多人在开始部署的时候显示失败。
这是因为Cloudflare Pages 的构建系统版本升级成了v2,在项目的设置选项中,将构建系统版本修改成v1,然后重新部署就可以成功了!
部署成功后,你可以在自定义域中绑定独立的域名。
到这里Cloudflare Pages反向代理就设置完了,是不是很简单!
首先,我们需要准备一个用于安装Docker的磁盘分区,并挂载到系统中。
进入宝塔面板的文件管理器,找到Docker的安装目录。
备份Docker的数据目录。
示例代码:
2、输入你的域名,点击添加
3、获取域名的DNS设置
4、打开Cloudflare,DNS→记录→添加记录,将第三步的DNS Records都添加到Cloudflare中
5、验证域名,点击Verify DNA Records, 当Status变成Active时,验证成功。DNS设置并不会立即生效,你可能要等上一段时间。
2、打开Gmail, 点击设置→查看所有设置→帐号和导入→添加其它电子邮件地址
3、填写名称和电子邮件地址,名称是你展示给用户的名称,电子邮件地址,是你在cloudflare中设置的邮箱地址,点击下一步
4、填写SMTP服务器,用户名直接填resend,密码为第1步中设添加的key,SMTP服务器信息可以从Resend → Settings →SMTP中获取, 填写好后保存更改。
5、设置回复邮件时,用此相同的地址回复,这样,你在收到域名邮箱的邮件时,直接回复时,便会使用同样的邮箱回复。



Cloudflare
Ollama
OpenAI
OpenClash






评论前必须登录!
注册