[真]1panel+discourse安装教程

环境准备

  1. 系统要求
  • 操作系统:支持主流 Linux 发行版本(基于 Debian / RedHat,包括国产操作系统);
  • 服务器架构:x86_64、aarch64、armv7l、ppc64le、s390x;
  • 内存要求:建议可用内存在4GB 以上;
  • 浏览器要求:请使用 Chrome、FireFox、IE10+、Edge等现代浏览器;
  1. 步骤
  • 安装1panel
  • 指令安装Discourse
  1. 域名和 SSL
  • 确保域名解析到服务器 IP。
  • 需要为 Discourse 配置 SSL,建议直接上CF盾

安装步骤

Debian 12 [我非常推荐新人使用这个系统]

**1. 安装1panel

curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh

[1Panel Log]:  
[1Panel Log]: =================感谢您的耐心等待,安装已经完成================== 
[1Panel Log]:  
[1Panel Log]: 请用浏览器访问面板: 
[1Panel Log]: 外网地址: http://XXXXXXX:22118/5bcabb010d 
[1Panel Log]: 内网地址: http://XXXXXXX/5bcabb010d 
[1Panel Log]: 面板用户: ChiLeMa
[1Panel Log]: 面板密码: MeiChi
[1Panel Log]:  
[1Panel Log]: 项目官网: 
[1Panel Log]: 项目文档: 
[1Panel Log]: 代码仓库: 
[1Panel Log]:  
[1Panel Log]: 如果使用的是云服务器,请至安全组开放 22118 端口 
[1Panel Log]:  
[1Panel Log]: 为了您的服务器安全,在您离开此界面后您将无法再看到您的密码,请务必牢记您的密码。 
[1Panel Log]:  
[1Panel Log]: ================================================================

步骤 2:安装 Discourse

看不懂?下面的操作?

https://www.bilibili.com/video/BV1nr421H7t5 请直接跳转04:45

注意! 当你构建完成后请修改端口

否则在[1Panel]中会出现问题 在app.yml

里面在你输入下面指令构建完成后会生成

expose:

  • “50080:80” # http 修改端口的位置
  • “50443:443” # https修改端口的位置

只需要输入 ./launcher rebuild app

接下来使用 Discourse 的官方代码进行安装。【别用里面应用商店自带的】

sudo -s git clone GitHub - discourse/discourse_docker: A Docker image for Discourse /var/discourse

cd /var/discourse

新人第一次开

./discourse-setup

注释 如果你使用的是其他系统有几率会提示你 内核版本过低 本帖子不解答这个问题

下面是我自己汉化的你自己自行取之

## 这是一个全合一的独立Discourse Docker容器模板
##
## 在修改此文件后,您必须重建
## /var/discourse/launcher rebuild app
##
## 编辑时请 *非常* 小心!
## YAML文件对空格或对齐中的错误非常敏感!
## 访问 http://www.yamllint.com/ 根据需要验证此文件

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  ## 取消注释下一行以启用IPv6监听器
  #- "templates/web.ipv6.template.yml"
  - "templates/web.ratelimited.template.yml"
  ## 如果希望添加Lets Encrypt (https),取消注释以下两行
  #- "templates/web.ssl.template.yml"
  #- "templates/web.letsencrypt.ssl.template.yml"

## 这个容器应该暴露哪些TCP/IP端口?
## 如果您希望Discourse与另一个Web服务器(如Apache或nginx)共享端口,
## 详情请参见 https://meta.discourse.org/t/17247

expose:
  - "50080:80"   # http 修改端口的位置
  - "50443:443"  # https修改端口的位置

params:
  db_default_text_search_config: "pg_catalog.english"

  ## 将db_shared_buffers设置为总内存的最大25%。
  ## 将由引导程序根据检测到的RAM自动设置,或者您可以覆盖
  #db_shared_buffers: "256MB"

  ## 可以提高排序性能,但会增加每个连接的内存使用
  #db_work_mem: "40MB"

  ## 此容器应使用哪个Git版本?(默认:tests-passed)
  #version: tests-passed

env:
  LC_ALL: en_US.UTF-8
  LANG: en_US.UTF-8
  LANGUAGE: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en

  ## 支持多少并发Web请求?取决于内存和CPU核心。
  ## 将由引导程序根据检测到的CPU自动设置,或者您可以覆盖
  #UNICORN_WORKERS: 3

  ## 待办事项:此Discourse实例将响应的域名
  ## 必需的。Discourse无法使用裸IP号工作。

  DISCOURSE_HOSTNAME: '写你的域名'

  ## 如果希望容器以与上面指定的相同主机名(-h选项)启动,请取消注释(默认"$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## 待办事项:初始注册时将被设为管理员和开发人员的以逗号分隔的电子邮件列表

  DISCOURSE_DEVELOPER_EMAILS: '写你的邮箱'
  DISCOURSE_MAX_REQS_PER_IP_PER_10_SECONDS: 200
  DISCOURSE_MAX_ASSET_REQS_PER_IP_PER_10_SECONDS: 400


  ## 待办事项:用于验证新帐户和发送通知的SMTP邮件服务器
  ## 需要SMTP地址、用户名和密码
  ## 警告:SMTP密码中的字符'#'可能会引起问题!
  DISCOURSE_SMTP_ADDRESS: 
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: 
  DISCOURSE_SMTP_PASSWORD: 
  DISCOURSE_SMTP_AUTHENTICATION: login
  DISCOURSE_SMTP_ENABLE_START_TLS: true
  DISCOURSE_NOTIFICATION_EMAIL: 
  DISCOURSE_SMTP_OPEN_TIMEOUT: 30
  DISCOURSE_SMTP_READ_TIMEOUT: 30
  ##上面的模板可以自行配置我的这个是微软邮箱的登录格式

  ## 如果添加了Lets Encrypt模板,取消注释以下行以获取免费SSL证书
  #LETSENCRYPT_ACCOUNT_EMAIL: [email protected]

  ## 这个Discourse实例的HTTP或HTTPS CDN地址(配置为拉取)
  ## 详情请参见 https://meta.discourse.org/t/14857
  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com

  ## 用于IP地址查找的Maxmind地理定位IP帐户ID和许可证密钥
  ## 详情请参见 https://meta.discourse.org/t/-/173941
  #DISCOURSE_MAXMIND_ACCOUNT_ID: 123456
  #DISCOURSE_MAXMIND_LICENSE_KEY: 1234567890123456

## Docker容器是无状态的;所有数据都存储在/shared中
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

## 插件放在这里
## 详情请参见 https://meta.discourse.org/t/19157
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git           # (管理器)

## 构建后运行的任何自定义命令
run:
  - exec: echo "Beginning of custom commands"
  ## 如果希望为您的首次注册设置“发件人”电子邮件地址,请取消注释并更改:
  ## 在收到首次注册邮件后,再次注释掉该行。它只需要运行一次。
  #- exec: rails r "SiteSetting.notification_email='[email protected]'"
  - exec: echo "End of custom commands"

正常启动后进入你的1Panel后台

然后直接点安装 之后进入证书

就如我教程第一句说的使用CF盾简单明了



无需任何设置直接创建 以后你的域名叫什么 nb.justnainai.com什么都可以直接使用这个证书

先复制私钥

然后在辅助 源证书


反向代理



这50080就是 - “50080:80” # http 修改端口的位置

#如: 243.322.2.222:50080

创建完成后点击配置


#点击启动

一般自动就给你选好了

然后往下翻保存

即可使用你的域名访问

教程结束

4 Likes

我的教程中没有涉及到防火墙 如果你是新人看到了1panel的防火墙我非常不建议你安装

提一嘴 app.yml文件

/var/discourse/containers 文件夹中

我按照你的方法弄了,奇怪了,就是错误: 该网页无法正常运作 ,将您重定向的次数过多。

证书也是在cf生成放在网站了,经过身份验证的源服务器拉取,也打勾了,代理地址-真实的ip地址+端口,我在反向代理配置那里,也查看了,没有错误日志,我就奇怪了,你的能成功,cf那里,我也设置了代理了。 :sob:

感谢分享详细的安装教程。

对有需要的朋友会有很大的帮助。

1 Like


试试全覆盖

1 Like

也选择了这个严格了,那个模式都选择了,都不行。

我按照你的方法一步一步弄,我是搞不成工,一直在重定向,真搞不明白,看看日志,也没有错误的日志。

出现


就是你ssl有问题没搭上

我这个没上ssl所以才提示我上cf的那个ssl后秒访问

你 app.yml

如果添加了Lets Encrypt模板,取消注释以下行以获取免费SSL证书

#LETSENCRYPT_ACCOUNT_EMAIL: [email protected]

是的,默认加了 添加了Lets Encrypt模板,应该就是这个问题,一直重定向,谢谢!