2026/9/10 22:48:54

Focalboard 插件版开发指南:从源码构建 Mattermost Boards 插件到上传部署

Focalboard 插件版开发指南:从源码构建 Mattermost Boards 插件到上传部署 Focalboard 插件版开发指南从源码构建 Mattermost Boards 插件到上传部署【免费下载链接】focalboardFocalboard is an open source, self-hosted alternative to Trello, Notion, and Asana.项目地址: https://gitcode.com/GitHub_Trending/fo/focalboardFocalboard 插件版前身为 Mattermost Boards 插件自 2023 年 9 月 15 日起已全面移交社区维护其源码持续开源可用。本文以 docs/focalboard-dev-guide.md 为主线完整梳理从源码构建插件包.tar.gz、手动上传到 Mattermost 服务器以及借助make deploy在本地 Mattermost 环境自动部署的全流程并结合当前仓库的 Makefile、webapp/package.json 与 CI 工作流 .github/workflows/dev-release.yml 做源码级印证。读完本文你将掌握插件版 Focalboard 的完整构建链路、Mattermost 侧三个关键配置项SiteURL、EnableLocalMode、EnableUploads的含义与设置方法以及本地联调部署的标准姿势。背景Focalboard 插件版与社区化交接Focalboard 是开源的、可自托管的项目管理工具README.md 将其定位为 Trello、Notion、Asana 的开源替代品。在其生态中除独立版standalone之外还存在一个以 Mattermost 插件形态分发的版本——即 Mattermost Boards 插件也就是本文所说的Focalboard 插件版。官方开发指南在开篇明确了一则重要交接信息自2023 年 9 月 15 日起Mattermost Boards 全面转变为社区支持的 Focalboard 插件。Mattermost 将不再维护该插件包括 bug 修复与功能新增而是将其开源并无限期保留在 GitHub 上供社区贡献。这一背景决定了本指南的两个核心动作自行构建从源码构建你自己的插件版本自行部署把构建产物上传到你的 Mattermost 服务器。需要特别说明的是当前仓库fo/focalboard只包含独立版standaloneFocalboard。README.md 顶部的警告明确指出This repository only contains standalone Focalboard. If youre looking for the Mattermost plugin please see mattermost/mattermost-plugin-boards.本仓库仅含独立版 Focalboard如需 Mattermost 插件版请见 mattermost-plugin-boards 仓库。因此本文涉及的mattermost-plugin目录与其中的make dist/make deploy目标属于插件版仓库而make prebuild、make webapp等通用构建目标在当前仓库的 Makefile 中均有对应实现——阅读下文时请注意这一适用范围。构建流程总览插件版的构建与部署可以归纳为三步后续章节逐一展开步骤核心操作主要产物1. 环境准备Fork 仓库、克隆、安装依赖可用的开发环境2. 构建插件make webappcd mattermost-plugin make distmattermost-plugin/dist/下的.tar.gz插件包3. 上传/部署手动上传至 System Console或本地make deploy自动部署运行于 Mattermost 服务器中的 Boards 插件第一步搭建开发环境并安装依赖官方指南要求先 Fork Focalboard 仓库、克隆到本地然后按照 README 完成开发环境初始化。依赖安装的命令如下# First-time setup dependencies cd mattermost-plugin/webapp npm install --no-optional cd ../.. make prebuild对这三条命令逐一说明cd mattermost-plugin/webapp npm install --no-optional进入插件版前端目录安装 npm 依赖。--no-optional用于跳过optionalDependencies避免安装 Cypress 等非必需的可选依赖。这一习惯与当前仓库的 CI 一致——.github/workflows/dev-release.yml 中同样使用cd focalboard/webapp; npm ci --no-optionalnpm ci是 CI 环境下更严格的锁文件安装方式。当前仓库的 webapp/package.json 也将cypress声明在optionalDependencies中印证了--no-optional的用意。make prebuild执行仓库预构建动作。当前仓库根 Makefile 中该目标定义为cd webapp; npm install另有cleanall目标用于清理webapp/node_modules。在插件版同库时代make prebuild负责安装其余子模块依赖。提示官方指南强调具体以 CI 工作流 dev-release.yml 中实际执行的命令为准。该工作流在当前仓库中负责各平台产物的发布构建例如 Windows WPF 应用、macOS 应用等其npm ci --no-optional、make win-wpf-app等步骤可作为CI 与本地命令保持一致的参考范式。第二步构建 webapp 与插件包依赖就绪后依次执行两条构建命令# Build webapp make webapp # Build plugin cd mattermost-plugin make distmake webapp负责构建前端资源。在当前仓库 Makefile 中该目标实现为cd webapp; npm run pack而 webapp/package.json 中pack脚本为pack: cross-env NODE_ENVproduction webpack --config webpack.prod.js即使用生产环境变量并调用 webapp/webpack.prod.js 进行 webpack 打包。在插件版中构建出的前端资源会被内嵌进插件包。cd mattermost-plugin make dist负责把插件前端与 Go 后端组装成 Mattermost 插件规范要求的plugin.tar.gz格式包mattermost-plugin/dist/目录。该目标是插件版仓库迁移后的 mattermost-plugin-boards内定义的构建目标产物即可直接用于上传。第三步上传插件到 Mattermost 服务器手动方式构建得到.tar.gz插件包后官方指南给出两种上传途径第一种是手动上传开启自定义插件上传在 Mattermost 服务器的config.json文件中将PluginSettings EnableUploads设置为true。该开关控制 System Console 是否允许管理员上传自定义插件属于插件安装的前置条件。进入控制台上传导航到System Console Plugins Management选择并上传mattermost-plugin/dist目录下生成的.tar.gz包。启用插件上传后按需在插件管理页面启用它。需要区分两个容易混淆的config.json上文修改的是Mattermost 服务器的config.json位于 mattermost-server 仓库中由make config-reset生成而当前仓库根目录的 config.json 是Focalboard 独立版服务器的配置包含serverRoot、port、dbtype、webpath等项与插件上传无关二者不要混为一谈。本地 Mattermost 环境搭建供 make deploy 自动部署使用第二种途径是本地安装 Mattermost 后使用make deploy自动部署适合插件开发期的快速迭代。官方指南将其拆分为搭建 Mattermost与构建部署插件两个阶段。阶段一本地构建并运行 Mattermost准备 Docker按照 Mattermost 开发者指南搭建环境尤其要确保 Docker 已安装并运行Mattermost 的依赖服务常以容器方式提供。构建 Web 端Fork 并克隆mattermost-webapp执行make build。克隆服务端Fork 并克隆mattermost-server。生成配置在 mattermost-server 中执行make config-reset生成config/config.json。编辑config/config.json需要修改三个关键配置项配置项推荐值作用ServiceSettings SiteURLhttp://localhost:8065服务器对外的基础 URL本地开发即本地地址ServiceSettings EnableLocalModetrue启用本地模式允许通过本地 socket 访问服务器供部署工具调用PluginSettings EnableUploadstrue允许上传自定义插件手动上传与自动部署均依赖此开关设置环境变量添加环境变量MM_SERVICESETTINGS_SITEURL其值必须与config.json中的SiteURL保持一致即http://localhost:8065。Mattermost 支持通过环境变量覆盖对应配置项二者不一致会导致连接与上传失败。启动服务器在 mattermost-server 中运行make run-server。阶段二构建并部署插件Mattermost 跑起来之后回到 Focalboard插件版仓库make webapp cd mattermost-plugin make deploymake webapp先构建前端make deploy则利用前面配置好的SiteURL、EnableLocalMode、EnableUploads与MM_SERVICESETTINGS_SITEURL把新构建的插件包自动部署到本地 Mattermost 实例并视目标实现触发重载省去每次手动上传的步骤。关键配置项速查表将两条路径涉及的配置汇总如下便于开发与排障时对照配置/命令所属系统取值或命令说明PluginSettings EnableUploadsMattermostconfig.jsontrue允许上传自定义插件手动与自动部署均需要ServiceSettings SiteURLMattermostconfig.jsonhttp://localhost:8065本地服务器的访问地址ServiceSettings EnableLocalModeMattermostconfig.jsontrue开启本地模式供部署脚本访问MM_SERVICESETTINGS_SITEURL环境变量与SiteURL相同环境变量形式的 SiteURL 覆盖make prebuildFocalboard 仓库cd webapp; npm install首次依赖安装当前仓库实现见 Makefilemake webappFocalboard 仓库cd webapp; npm run pack生产模式构建前端脚本见 webapp/package.jsoncd mattermost-plugin make dist插件版仓库—产出dist/下的.tar.gz插件包cd mattermost-plugin make deploy插件版仓库—自动部署到本地 Mattermost与当前仓库的关系与适用前提最后明确几点边界避免读者在独立版仓库中找不到对应目录而困惑当前仓库不含mattermost-plugin目录。独立版与插件版已拆分插件版代码迁移至mattermost/mattermost-plugin-boards仓库本文中cd mattermost-plugin之后的命令需在插件版代码库中执行。通用构建命令依然有效。make prebuild、make webapp在独立版 Makefile 中存在对应实现独立版还提供server、mac-app、win-wpf-app、linux-app、server-test-*等目标用于构建独立服务器与各平台桌面应用。插件版长期开源可自建。由于插件已交由社区维护且无限期开源任何团队都可以按本指南自建并自托管 Boards 插件不依赖 Mattermost 官方发布周期——这正是本指南的核心价值所在。小结构建并部署 Focalboard 插件版是一条清晰的流水线先用npm install --no-optionalmake prebuild装好依赖再用make webappmake dist产出插件包最后通过 System Console 手动上传或搭建本地 Mattermost 后用make deploy自动部署。其中 Mattermost 侧的SiteURL、EnableLocalMode、EnableUploads三个配置与MM_SERVICESETTINGS_SITEURL环境变量是打通构建 → 部署闭环的关键务必保持一致。对于希望长期自托管 Boards 能力的团队而言这套流程在插件社区化的背景下依然完全可用。【免费下载链接】focalboardFocalboard is an open source, self-hosted alternative to Trello, Notion, and Asana.项目地址: https://gitcode.com/GitHub_Trending/fo/focalboard创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考