Wekan 完全 FAQ 指南:开源看板的定位、部署要求、版本策略与社区协作规范 Wekan 完全 FAQ 指南开源看板的定位、部署要求、版本策略与社区协作规范【免费下载链接】wekanThe Open Source kanban, built with Meteor. GitHub issues/PRs are only for FLOSS Developers, not for support, support is at https://wekan.fi/commercial-support/ . PR source translation to imports/i18n/data/en.i18n.json, other translations at https://app.transifex.com/wekan/wekan项目地址: https://gitcode.com/GitHub_Trending/we/wekan本文以仓库 docs/FAQ/FAQ.md 为核心骨架结合当前仓库的 package.json、docker-compose.yml、sandstorm.js、sandstorm-pkgdef.capnp 与 CHANGELOG.md 等源码级证据系统梳理 Wekan 是什么、为什么自托管、如何规划生产部署资源、如何理解版本号与发布节奏、如何参与贡献以及项目社区的行为规范。一、Wekan 是什么Wekan 是一款完全开源、免费Free software的协作式看板kanban board应用基于 Meteor 全栈框架构建采用MIT 许可证见 package.json 中license: MIT的声明。无论是维护个人待办清单、和朋友一起规划假期还是团队协作推进下一个项目看板都能通过可视化的方式呈现项目当前状态让你专注于当下最重要的少数几件事从而提升生产力。作为自由软件Wekan 的用户无需把数据托付给任何第三方可以将其安装在自己的电脑或服务器上——项目方也鼓励这样做为此在多个平台上提供了接近“一键安装”的部署方式。1.1 项目的关键事实FAQ 中列举了如下项目事实均为 FAQ 作者陈述可作为项目背景参考Wekan 在世界大多数国家被使用。Wekan 已知最大的用户群是一家在公司内部使用 Wekan 的 3 万用户规模的组织。Wekan 已被翻译成70 种语言通过 Transifex 众包翻译平台协作完成。FeaturesWekan 具备实时用户界面real-time user interface。PlatformsWekan 支持多种操作系统与 CPU 平台并且正在被集成到新的平台中。Integrations记录了当前可用的集成方案与未来规划。1.2 Wekan 所处的独特生态位FAQ 指出 Wekan 处在一个非常细分、竞争者有限的市场中其“组合拳”式的定位包括功能丰富、打磨精细、易用性高的看板宽松的 MIT 许可证——FAQ 特别强调如果其他同类产品改为 GPL、Open Core 或闭源收费模式它们就不再属于同一个生态位支持自托管Self-hosted或 SaaS两种形态全部代码与文档均开源Wekan documentation支持多种 OS 与 CPU 平台翻译覆盖 70 种语言提供可选的付费商业支持功能定制 / Bug 修复 / 托管用于反哺项目开发持续活跃维护不断加入新功能与修复默认不启用任何遥测、不加载任何外部依赖、不会“回连”上报数据。唯一的例外是 Snap 平台由 Canonical 统计每个国家的服务器数量仅此而已无更细粒度数据定位为年费可高达 50 万欧元的企业级软件的开源替代方案。二、部署要求硬件、平台与运维前提2.1 硬件与架构要求FAQ 明确给出如下部署基线项目要求架构64 位LinuxSnap、Windows 等更多平台另有 ARM 移植进度跟踪内存Wekan 本身至少需要1 GB 空闲内存生产服务器总内存建议最低 4 GB数千用户规模以 Docker 部署为例3 台前端服务器每台 2 核 CPU、运行 2 个 wekan-app 容器后端一台 wekan-db 服务器配备多核 CPU磁盘需要足够的磁盘空间并对低磁盘空间设置告警磁盘写满会导致 MongoDB 数据库损坏仓库证据当前默认的 docker-compose.yml 采用FerretDB v1 内嵌 SQLite默认无需单独数据库服务器其余可选后端包括 FerretDB PostgreSQL / MySQL / MariaDB / SAP HANA、FerretDB v2 PostgreSQL 以及 MongoDB 7见文件头注释中的 compose 文件清单并自带healthcheck与start_period等待数据库就绪避免 Wekan 在数据库尚未可用时启动而出现 Connection reset by peer。2.2 安全与备份运维要点安全需要非常频繁地升级到最新版本。请检查 Sandstorm 或 Snap 的自动更新没有被关闭。旧版本会因 Node.js 等依赖版本过旧而存在安全漏洞只有最新版 Wekan 受支持。Sandstorm 版 Wekan 通常不受独立版Snap/Docker/源码安全问题的波及。报 Bug新 bug 应及时上报新功能与修复会一天多次被合入。备份数据库至少每天备份一次详见 docs/Backup/Backup.md。Bug、升级、用户误删列表或卡片、硬盘写满、硬盘损坏等都可能导致数据丢失且目前还没有 undo撤销功能某些 bug 甚至会导致看板完全无法加载需要人工修复数据库内容。仓库证据仓库根目录确实包含多套 docker-compose 后端组合文件docker-compose-ferretdb-v1-postgresql.yml、docker-compose-mongodb-v7.yml等与 FAQ 的“Docker 部署”表述一致CHANGELOG.md 记录了自 2015 年起至今的历次发布历史。三、项目治理与维护者3.1 Wekan Team 是什么Wekan Team 是 Wekan 的商业支持公司CEO 为xet7Lauri Ojansivu即 Wekan 的现任维护者。xet7 会非常积极地回复 GitHub issue 反馈因为 Wekan 是社区驱动的开源项目。由于互相冲突的意见无法同时实现xet7 有时不得不扮演“开明的独裁者”benevolent dictator。每位 Wekan 团队成员都可自由选择贡献内容与时间项目方无法强迫任何人实现任何功能Wekan 的开发速度会随着新贡献者加入并持续提交 PR 而加快。3.2 xet7 简介Lauri Ojansivu 是 WeKan Team 的 CEO跨平台 FOSS 维护者、云架构师、全栈开发者、系统管理员与 SysOp。他持有芬兰 Kemi-Tornio AMK 的计算机设计师与系统工程师 BBA 学位。按其自述他曾为基于 Meteor 的 WeKan 增加并删除超过 400 万行代码曾获 20i FOSS Awards并在 EU NGI ONTOCHAIN Hackathon 获得第二名同时也在做将 FOSS 软件移植到 30 CPU/OS 的工作。仓库证据仓库中确实保留了统计每个提交者代码行数的脚本 releases/count-lines-of-code-per-committer.sh可用于复现“每个贡献者增删了多少行代码”的分析过程。四、Wekan vs Trello给管理层的自托管论证FAQ 记录了一个真实场景有人通过邮件询问“如何说服公司管理层 Wekan 比 Trello 更不邪恶”。FAQ 给出的对比论据如下Trello 一方代码闭源只有 Atlassian 人员能访问源码无法安装到自己的服务器Trello 可以访问你的全部数据无法在不连接互联网的内网中运行。Wekan 一方全部代码开源MIT 许可证商业使用同样免费无需按月付费仅在需要商业支持时才付费可下载全部代码并在不连接互联网的内网运行数据完全自持Snap / Docker / Sandstorm 版本运行在沙箱内无法访问服务器文件系统上的其他内容Snap 版由 Canonical 构建服务直接从 wekan/wekan 仓库构建并执行安全检查Docker 版由 Quay 与 Docker Hub 直接构建同样经过安全检查Sandstorm 版由 ocdtrekkie 在发布到 Sandstorm App Market 前进行回归检查启动 Wekan 时不会从互联网加载任何文件进一步限制时可在内网服务器防火墙只放行需要访问 Wekan 的机器全球各地的贡献者持续为 Wekan 添加修复与功能有安全研究者做过代码审计并推动了相关修复项目方会倾听用户反馈例如内阴影inner shadow的加入与移除、Admin Panel 中 SMTP 设置的移除与加回均源于用户意见。仓库证据Docker 镜像同时发布到 GitHub Container Registryghcr.io/wekan/wekan、Quayquay.io/wekan/wekan与 Docker Hubwekanteam/wekan见 docker-compose.yml 的镜像标签注释Sandstorm 环境变量通过 sandstorm-pkgdef.capnp 中的METEOR_SETTINGS {public: {sandstorm: true}}注入sandstorm.js 检测该开关后启用 Sandstorm 专属行为印证了 FAQ 关于“沙箱内运行”与“isSandstorm 环境变量”的描述。五、发布节奏与版本号规则5.1 多久发布一个新版本通常的发布节奏是最快一天多次历史上曾出现一天 7 个版本通常是发现 bug 后密集发版直到修复或一天内合并大量 PR / 新功能遵循 Eric S. Raymond 的 “Release early. Release often. And listen to your customers.”最慢一个月一次单个版本可能只包含一处笔误修复也可能包含多个主要功能与 bug 修复。不同平台的更新方式不同Wekan PlatformsSnap自动立即更新或按计划在午夜自动更新源码 / Docker / VirtualBox需要自行测试并安装新版本Sandstormocdtrekkie 测试通过后才进入 Sandstorm App Market用户自行备份 grain 并在方便时点击升级按钮。仓库证据当前 package.json 的版本号为v11.72.0且 CHANGELOG.md 顶部注释详细记录了历史上某些版本号v11.33、v11.54、v11.57、v11.59、v11.61不存在的原因——发布脚本在计算版本步进时出现 bug这一细节也印证了“版本号只是递增的数字”这一说法。5.2 版本号代表什么每个版本都有发布日期与版本号每个版本使版本号0.01。该惯例始于 2017-03-05 的 v0.12此前版本号更复杂如 v0.11.1-rc2。v0.99 之后依次是 v1.00、v1.01、v1.02……版本号只是递增的数字Wekan 早已长期用于生产环境v1.00 并不代表“才达到生产就绪”性能虽有大量改进仍有很大提升空间Wekan 与其他软件一样仍有 bug版本号与“无 bug”无关Wekan 会持续演进并提供从旧版本迁移到新版本的能力——从这个意义上说Wekan 自被维护以来一直扮演着 LTS 发布的角色开发在edge 分支进行发布时将 edge 合并到 devel/master/meteor-1.8 等分支。六、功能与贡献Feature 如何落地6.1 我的功能请求会被实现吗FAQ 给出三种实现路径a) 商业支持付费让官方实现b) 雇佣开发让自己公司或外部开发者实现并提交 PRc) 自己开发自己实现后向 devel 分支提交 PR。FAQ 引用 Open Hub 的数据称不含 Meteor 框架与 npm 模块Wekan 自身代码仅约10500 行相比其他软件非常小巧且组织清晰用 gitk 之类的历史查看器可以研究各功能的实现方式。对于Sandstorm 专属功能需要通过环境变量isSandstorm true开启示例见 sandstorm.js。更多开发信息见开发者文档。6.2 会接受我的 PR 吗会。Wekan 的新功能与 bug 修复完全依赖 PR。只要 PR 可用被 xet7 接受的可能性就很大。6.3 如何参与贡献欢迎 bug 报告、增强建议与 PR提交到 GitHub 问题跟踪器详见贡献文档FAQ 中引用的“Contributing notes”。项目方正在推进功能赏金bounties机制并欢迎赞助者。6.4 有测试吗FAQ 原文坦言测试“接近零”因为尚未有人以 PR 形式贡献测试。仓库现状说明这一历史陈述与当前仓库面貌已有差异——仓库根目录存在庞大的tests/目录数百个*.test.cjs、tests/playwright/下的 67 个 Playwright 测试文件等package.json 也提供了test、test:unit:node、test:playwright等测试脚本。可以推断测试体系在 FAQ 撰写之后得到了大量补充这是阅读时需要注意的版本差异。6.5 有插件系统吗没有也不可能。原因有二在 Web 浏览器中无法在 Docker 内安装 npm 模块Sandstorm 中的应用代码只读且被签名无法事后安装代码。所有功能都内建在代码中所有与功能相关的数据都存储在 MongoDB 中。6.6 Wekan 能用其他语言重写吗xet7 尝试过重写但目前仍处于非常早期的阶段见其 wiki 中的 Roadmap。七、历史从 Metrello 到 Libreboard 再到 Wekan7.1 曾经叫 Libreboard是的。Libreboard 是旧项目名它取代了更早的Metrello。Metrello 是用 Meteor 构建的 Trello 克隆沿用了大量 Trello 的原始素材连名字都很相似。随着项目成熟并获得更多社区关注这成了一个明显的问题。为了建立自己的身份并在收到 Trello 的DMCA 通知后项目开始重新设计Maxime Quandalle 提出新名字 “OpenBoard” 以强调开源属性但.com域名已被占用于是把 “Open” 换成拉丁语系中意为“自由”的 “Libre”项目更名为Libreboard。改名后设计了新 logo但随后发现该 logo 疑似抄袭自 Dribbble 上的一个概念设计于是又得换 logo。社区贡献了大量创意后Maxime 最终提出了全新名字Wekan及配套的新 logo 设计方案。7.2 什么是 Wekan fork / Wefork2016-09-02 之后近两个月没有任何 PR 被评审合并。2016-10-20Wekan 社区创建了 fork 并开始合并大量 bug 修复与新功能即Wefork。2017-01-29Wekan 原作者 mquandalle 移交了项目权限2017-01-31 xet7 开始把 Wefork 合并回官方 Wekan2017-02-08Wefork 全部内容合并回官方 Wekan。此后 Wefork 不再接受新 issue 和 PR所有开发都在 Wekan 上进行。详见 docs/FAQ/Team.md。7.3 Wekan 与 Trello 的根本区别核心区别是Wekan 完全开源采用宽松的 MIT 许可证因此可以托管在自己的服务器或公司/组织服务器上对全部数据拥有完全控制权不必担心服务哪天消失。长期目标是提供 Trello 或其他替代品所没有的功能使 Wekan 足够灵活、足以支撑复杂的项目组织。7.4 为什么 Wekan 现在的外观与 v0.9 之前差别巨大Wekan 最初只是探索 Meteor 的业余项目早期版本包含大量 Trello 素材CSS、图片、字体并大量复制其设计。收到 DMCA 下架通知并为了建立独立身份后v0.8 之后抛弃了旧设计开发了全新 UI相关 issue #92、#97。八、社区礼仪什么会被视为“troll”或“spammer”8.1 为什么我会被称为 troll以下行为会被社区视为 troll使用 “shame” 一词——即希望不贡献任何代码或付费就获得功能/修复并用某种措辞让人良心不安想要某个功能却只添加“点踩”emoji 反应添加图片反应要求改变优先级。当前优先级是高优先级安全问题与高严重度 bug中优先级导入/导出Import/Export其他。实际路线图后续更新声称自己在“提供建设性批评”认为“自由软件就包含免费实现的功能”发布以下内容以外的内容对已有帖子的“点赞”反应功能规格Feature specs技术细节相关文档链接帮助实现功能的示例代码链接Pull Request。8.2 为什么我会被称为 spammer以下内容会被视为 spam只包含如下内容的评论11 I can confirm this1 It would be great to have this1 This is the only feature for preventing my company to move to Wekan发布“点赞反应、功能规格、技术细节、相关文档链接、示例代码链接、PR”以外的内容。8.3 看到 troll 或 spammer 时应该怎么做只添加一条指向本 FAQ 的链接不要以任何方式评论或“投喂”troll。九、Sandstorm 平台9.1 Sandstorm 不再是公司/初创公司/企业版产品Sandstorm 的一切现在都已开源、成为自由软件。9.2 Sandstorm 是什么Sandstorm 是一个开源、自由软件、经过安全审计的平台具备grains、日志、管理员设置、服务器集群与应用市场App Market等能力。App Market 中提供 Wekan 作为可安装应用。SSO 选项如 LDAP、无密码邮件登录、SAML、GitHub 与 Google Auth 都已在 Sandstorm 上可用。FAQ 认为Sandstorm 是 Wekan 的首选平台因为在独立版 Wekan 中重新实现这一切需要大量工作。仓库证据从源码结构看sandstorm.js 完整实现了 Sandstorm 集成通过X-Sandstorm-Base-Path重写运行时 ROOT_URL、基于X-Sandstorm-*请求头完成自动登录与用户资料同步、通过 Capn Proto bridge 上报活动通知与 Powerbox 身份声明、以及isSandstorm模板辅助函数控制 UI 元素的显示与隐藏sandstorm-pkgdef.capnp 定义了 grain 的启动命令./start-memory.sh与完整环境。这些与 FAQ 对 Sandstorm 平台的描述相互印证。9.3 如何为 Sandstorm 做贡献参见 Sandstorm 官网关于提交 PR 的说明以及其“回归开源社区根源含捐赠信息”的公告。十、要点速查定位MIT 许可、可自托管、默认无遥测的实时协作看板docs/FAQ/FAQ.md。资源基线Wekan 最少 1 GB 空闲内存生产服务器建议总内存 4 GB 起磁盘需充足并配告警写满会损坏数据库。运维纪律频繁升级到最新版、每天至少备份一次数据库docs/Backup/Backup.md。版本号每次发布 0.01仅为递增数字开发在 edge 分支发布后并入 devel/master/meteor-1.8。贡献路径提交可用 PR 即大概率被接受新功能实现可走商业支持、雇佣开发者或自行开发三条路线。平台差异Snap 自动更新、源码/Docker/VirtualBox 自行升级、Sandstorm 由 ocdtrekkie 测试后发布、用户按需点击升级。插件机制无插件系统所有功能内建数据存于 MongoDB。社区规范以“点赞 功能规格 技术细节 文档/示例链接 PR”为有效贡献形式避免 1 式刷屏与道德绑架式措辞。【免费下载链接】wekanThe Open Source kanban, built with Meteor. GitHub issues/PRs are only for FLOSS Developers, not for support, support is at https://wekan.fi/commercial-support/ . PR source translation to imports/i18n/data/en.i18n.json, other translations at https://app.transifex.com/wekan/wekan项目地址: https://gitcode.com/GitHub_Trending/we/wekan创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考