重建进入循环

您好,我提前致歉,因为我对 Discourse 相对比较陌生。

当我进入 /var/discourse/ 目录运行 ./launcher rebuild app 时,会出现下面发布的循环。

到目前为止,GUI 运行正常,我可以在那里进行更新。

我尝试了几次谷歌搜索,找到了这个帖子,其中概述了一个解决方案。我的问题是,我是否也可以使用 git stash 和 git pull 命令来解决我的命令行问题?

确保 launcher 是最新的

更新 Launcher…

更新 a1d8d0b..69d7558

error: 您的本地更改将在此合并中被覆盖:

templates/web.ssl.template.yml

请在合并前提交您的更改或将其暂存。

Aborting

更新失败

Launcher 已更新,正在重启…

检测到 x86_64 架构。

确保 launcher 是最新的

更新 Launcher…

更新 a1d8d0b..69d7558

error: 您的本地更改将在此合并中被覆盖:

templates/web.ssl.template.yml

请在合并前提交您的更改或将其暂存。

Aborting

更新失败

Launcher 已更新,正在重启…

2 个赞

template/web.ssl.template.yml 重命名为其他名称(例如 templates/my-web.ssl.template.yml),并在 containers/app.ymltemplates: 部分中使用它。

使用以下命令恢复其原始内容:

git restore templates/web.ssl.template.yml
4 个赞

并且(可能)一个更好的长期解决方案是,将这些更改添加到您的 app.yml 中,或者将您的模板放在 /var/discourse 树之外的某个位置。

3 个赞

谢谢,我确实修改了该文件,添加了一个额外的客户端证书,以在服务器和 Cloudflare 之间进行额外的加密。

如果我遵循恢复 template.yml 文件的过程,我将运行重建以查看这是否能解决我的循环问题。之后我还能再次进行同样的更改而不会遇到太多问题吗?还是说这种情况会发生在未来的某个时候,而我必须执行相同的过程?

我确实将我的原始模板保存为 .bak 文件,以便有机会查看更改。

1 个赞

啊,谢谢您,我想您已经回答了我接下来的问题!

1 个赞

差不多。 :slight_smile:

这是另一个提示:

嗯,这不像我希望的那么好的提示……。看看 Setup Multisite Configuration with Let's Encrypt and no Reverse Proxy 中所做的更改

3 个赞

我现在觉得我无法独自解决这个问题。我遵循了 DigitalOcean 标准安装的说明。

我最初的想法是研究 app.yml 文件,这让我首先找到了 web.ssl.template.yml 文件。

我想包含一个 cloudflare crt 文件以增加安全性。

我查看了 web.ssl.template.yml 文件,并对以下部分进行了更改:

ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;

   ssl_certificate /shared/ssl/ssl.crt;
   ssl_certificate_key /shared/ssl/ssl.key;
    ssl_client_certificate /shared/ssl/cloudflare.crt;
    ssl_verify_client on;

   ssl_session_tickets off;
   ssl_session_timeout 1d;
   ssl_session_cache shared:SSL:1m;

我将 cloudflare.crt 文件放入了 /var/discourse/shared/standalone/ssl 目录,据我所知,一切都按我预期的那样工作。

是否有我可以参考的资源,可以让我对 app.yml 文件进行类似的更改?

现在大部分人不再使用自定义证书了。我不确定你提出的要求是否有充分的理由,但你可以参考 Allow SSL / HTTPS for your Discourse Docker setup

我认为你只是想关闭橙色云,获取一个 Let’s Encrypt 证书,然后重新开启橙色云。你还想使用 Cloudflare 模板。

请参阅 Using Discourse with Cloudflare: Best Practices

1 个赞

Hm. 我认为在 templates 目录中使用自己的文件没有问题,只要它们的名称不与 discourse 提供的模板冲突。我认为这是一种方便的方式,例如在暂存和生产服务器之间共享配置片段。

3 个赞

感谢 @thoka@pfaffman 的时间和回复。

此后我执行了 git restore。

正如 Jay 所指出的,人们通常不再使用自定义证书,我想我目前也看不到它的迫切需求。

我又运行了一次 ./launcher rebuild app,并且启动器运行正常。

另外,我只是按照指示在 app.yml 的底部输入了 cloudflare 模板,但启动器出现了语法错误。我删除了它,一切都正常了。在使用 Cloudflare 而没有 cloudflare 模板时,我从未遇到过问题,所以我就继续这样做了。

1 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.