• 首页
  • 博客
  • 项目
  • 留言墙
  • 工具集

动态更新

喜欢我的内容的话不妨订阅支持一下 🫶
加入其他 2 位订阅者,每月一封,随时可以取消订阅。

© 2025 Koya. 网站已开源:GitHub   Fork CaliCastle

首页博客项目留言墙工具集
总浏览量 4.3万
最近访客来自 US🇺🇸
  • 登录aws#
  • 安装docker/git#
  • 安装Discourse(git方式)#
  • 初始化#
  • 修改配置#
  • nginx与discourse#
  • discourse配置修改:#
  • nginx增加配置:#
  • 添加Github第三方登录#
安装discourse遇到的各种坑
2016-05-25 10:12:00技术

安装discourse遇到的各种坑

最近尝试使用Discourse创建了一个论坛,先部署在aws ec2上,随后可能会迁移到阿里云,此坑只针对aws

574次点击3分钟阅读

第一次打开atom-china的时候觉得很惊奇,界面很新,效果挺好,所以就在欢迎邮件里面直接问站长atom-china是用什么模版做的,然后就了解到了Discourse => Discourse是由Stack Overflow 的联合创始人 Jeff Atwood推出的免费开源论坛项目,基于Ruby on Rails 和 Ember.js 开发,数据库使用 PostgreSQL 和 Redis。 Discourse最大的特点是简洁和专业性,以话题为关系聚集用户。 最近尝试使用Discourse创建了一个论坛,先部署在aws ec2上,随后可能会迁移到阿里云,此坑只针对aws,经验在下面,坑在经验里面:

登录aws#

ssh -i "***" ubuntu@*.*.*.*

安装docker/git#

wget -qO- https://get.docker.com/ | sh

安装Discourse(git方式)#

sudo -smkdir /var/discoursegit clone https://github.com/discourse/discourse_docker.git /var/discoursecd /var/discourse

初始化#

./discourse-setup

Hostname for your Discourse? [discourse.example.com]:Email address for admin account? [[email protected]]:SMTP server address? [smtp.example.com]:SMTP user name? [[email protected]]:SMTP password? []:

修改配置#

vim containers/app.yml

因为使用的是QQ企业邮箱,所以smtp服务需要加上:

DISCOURSE_SMTP_ENABLE_START_TLS: trueDISCOURSE_SMTP_AUTHENTICATION: loginDISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none

端口号465是没有效果的,需要改为默认的:

DISCOURSE_SMTP_PORT: 587

修改完成后,重新构建:

./launcher rebuild app

但是QQ邮箱还有一个坑,第一次无法收到验证邮件,需要命令行手动添加:

cd /var/discourse./launcher enter apprake admin:create

然后输入你初始化时输入的[Email address for admin account]Email,确认密码,赋予admin权限就好,打开网页host,输入用户名和密码登录 最后在settings里面设置notification email与初始化时[SMTP user name? ]一致,然后在邮件测试页面测试:

测试成功!! 测试成功!!

nginx与discourse#

到此为止,流程基本跑通,但是因为站点使用的二级域名,为了不影响其他域名的访问,所以通过nginx做了一个转向代理:

discourse配置修改:#

cd /var/discoursevim containers/app.yml

修改:(设置端口代理)

expose: - "9090:80" # http

最后运行:

./launcher rebuild app

nginx增加配置:#

在/etc/nginx/conf.d/增加discourse.conf,文件内容如下:

server { listen 80; server_name vpls.virgo.one; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://127.0.0.1:9090/; proxy_redirect off; # Socket.IO Support proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; }}

然后执行sudo nginx -t 如果无误,重新加载nginx config

sudo service nginx reload

最后通过域名访问

成功!! 成功!!

添加Github第三方登录#

打开Github application,进入Developer applications,新建应用程序

Homepage url为你的discourse地址,authorization callback url为你的discourse地址加上/auth/github/callback,然后复制Client ID和Client Secret, 最后打开discourse,进入管理-设置-登录,找到下图所示三个字段,勾选填入刚才复制的内容

然后确定、完成。

点击=>完成!

相关文章

解锁DeepSeek-R1满血性能-AI 代码助手接入攻略

2025-02-18 15:47:01AI, 技术2018分钟阅读

使用 webworker 计算文件 MD5 和获取图片元数据

2024-12-25 15:35:18技术3284分钟阅读

How To Fix - CORS Error while uploading files on Cloudflare R2 using presigned URLs.

2024-06-05 16:34:55技术1,6691分钟阅读