Discourse 论坛插件管理命令

0
13

在使用 Discourse 过程中,插件安装、论坛维护、备份恢复等操作主要通过 Docker 容器下的管理命令 完成。本文整理了 Discourse 最常用的插件安装方法以及容器内部的管理命令,一篇解决所有常用运维需求。


一、安装与管理插件

Discourse 的插件通过 app.yml 中添加 Git 仓库方式安装。

1. 编辑配置文件

cd /var/discourse
nano containers/app.yml

在 hooks → after_code 部分添加插件,例如:

  - git clone https://github.com/discourse/docker_manager.git

添加多个插件也类似,依次加入即可。


2. 重建 Discourse 容器(必须执行)

修改插件后需要 rebuild 才会生效:

./launcher rebuild app

3. 重启容器(可选)

./launcher restart app

4. 进入 Discourse 容器

./launcher enter app

进入后会进入 Discourse 的运行环境(Rails + PostgreSQL + Sidekiq),可运行管理命令。


二、进入容器后的 Discourse 管理命令

进入容器后,可直接使用以下内部命令工具:


:package: 核心备份与恢复命令

命令功能
discourse backup创建论坛备份
discourse restore从备份恢复
discourse rollback回滚到上一个备份
discourse export导出当前论坛
discourse import导入论坛备份

:file_folder: 备份文件默认位置:

/var/discourse/shared/standalone/backups/default

:file_folder: 分类与主题导入导出

命令用途
discourse export_categories导出所有分类 + 主题 + 用户
discourse export_category导出指定分类
discourse export_topics按主题 ID 导出多个主题
discourse import_category导入分类数据
discourse import_topics导入主题数据

:wrench: 系统状态控制

命令用途
discourse enable_readonly开启只读模式
discourse disable_readonly关闭只读模式
discourse enable_restore允许恢复
discourse disable_restore禁止恢复
discourse request_refresh通知所有客户端刷新浏览器

三、数据库相关命令(rake)

进入容器后可使用 Rails 的 rake 命令。

:file_cabinet: 数据库维护

rake db:migrate          # 运行数据库迁移
rake db:reset            # 重置数据库
rake db:rebuild_indexes  # 重建索引

四、内容与搜索相关命令

rake search:reindex      # 重建搜索索引
rake posts:rebake        # 重新解析所有帖子(常用于升级后)

五、主题与插件管理

rake themes:update             # 更新所有主题
rake themes:clone_all_official # 下载所有官方主题

rake plugin:update_all         # 更新所有插件
rake plugin:install_all_official # 安装全部官方插件

六、用户管理

rake admin:create   # 创建管理员账户(忘记密码时尤其有用)

七、缓存与日志管理

rake tmp:clear                     # 清理临时文件
rake cache_digests:dependencies    # 查看缓存依赖关系
rake log:clear                     # 清理日志

八、其他实用命令

rake stats     # 查看代码统计信息(KLOC 等)

:tada: Discourse 日常运维必备

本文:

  • 插件安装方法
  • 容器级维护命令
  • 数据库维护
  • 搜索索引重建
  • 主题/插件管理
  • 备份与恢复
  • 日志与缓存维护

非常适合用作 Discourse 运维的工具手册。

发布回复

请输入评论!
请输入你的名字