Wekan 在 Windows 上部署完全指南:原生 Bundle、Docker、WSL 与 VirtualBox 多方案详解
2026/9/14 11:09:17 网站建设 项目流程

Wekan 在 Windows 上部署完全指南:原生 Bundle、Docker、WSL 与 VirtualBox 多方案详解

【免费下载链接】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/Platforms/Propietary/OS/Windows/README.md 及其姊妹文档(Offline.md、WSL.md),系统梳理 Wekan 这一基于 Meteor 构建的开源看板在 Windows 环境下的全部可行部署路径。读者将掌握:无虚拟化的原生 Bundle(Windows Node.js + MongoDB)部署、Docker 容器部署、Windows Subsystem for Linux(WSL)方案、VirtualBox 虚拟机方案,以及配套的start-wekan.bat关键环境变量调优、mongodump/mongorestore 备份恢复和 Caddy 反向代理 SSL/TLS 配置。

方案总览与选型

Windows 上的 Wekan 部署可以归纳为四种主流路径,文档在 README.md 中按字母编号给出了完整对比:

方案核心方式特点与适用场景
a) 原生 BundleWindows 原生 Node.js + MongoDB,直接运行bundle性能最高、内存占用最低,无虚拟化开销,适合单机正式使用
b) Docker预构建镜像或源码构建容器环境隔离、升级方便,官方推荐使用发布版本 tag 而非 latest
c) WSLWindows 10/11 的 Linux 子系统内运行兼顾 Windows 桌面与 Linux 生态,可跑 Snap 版
d) VirtualBoxUbuntu 虚拟机 + Snap离线分发友好,可导出.ova镜像迁移

注意:文档明确将“在 Windows 上直接源码编译安装(Install-Wekan-from-source-on-Windows.md)”标注为OLD / DOES NOT WORK——在 Windows 上直接用 Meteor 构建会出错。因此推荐路径是先下载官方预构建的 Windows Bundle,再通过start-wekan.bat启动,这也是本文第一节的重点。

原生 Bundle 部署(最高性能、最低内存)

这是文档最推荐的方式:没有 Docker、WSL 等虚拟化层,Wekan 直接跑在 Windows 原生的 Node.js 和 MongoDB 上,直接读写 Windows 文件系统,因此拥有最高性能和最低 RAM 占用

1. 前置准备

  1. 如果服务器上已有重要数据,务必先备份:Backup。
  2. 安装 Windows 版 Node.jsLTS v12.x(来自 nodejs.org)。安装时勾选 "Install additional tools",会一并安装 Chocolatey 等辅助工具。
  3. 以管理员身份打开cmd.exe,用 Chocolatey 安装 MongoDB:
    choco install -y mongodb
  4. 从 releases 站点下载最新的 Wekan Bundlewekan-x.xx.zip
  5. 解压wekan-x.xx.zip,内部是一个名为bundle的目录。
  6. 将仓库根目录的 start-wekan.bat 下载/复制到bundle目录。
  7. 启动 Wekan 与 MongoDB 前,按下文“环境变量”一节配置好ROOT_URLPORT等参数。

2. 启动步骤

以管理员身份运行两个cmd.exe

cd bundle start-wekan.bat

MongoDB 作为 Windows 服务启动/停止:

net start mongodb net stop mongodb

3. start-wekan.bat 关键配置解读

start-wekan.bat 是 Windows 部署的核心脚本,仓库中的实际内容包含大量带注释的环境变量模板,以下是必须关注的核心项

SET ROOT_URL=http://localhost SET PORT=80 SET WRITABLE_PATH=.. SET MONGO_URL=mongodb://127.0.0.1:27017/wekan SET WITH_API=true
  • ROOT_URL:默认是http://localhost,仅本机可访问。文档强调:如果端口是 80,必须把 ROOT_URL 改成http://YOUR-WEKAN-SERVER-IPv4-ADDRESS(如http://192.168.0.100,否则翻译、附件上传等功能无法正常工作。可参考 Settings 中关于ROOT_URL的说明(Docker/Source/Bundle 用大写、下划线、无引号写法;Snap 用单引号小写写法)。
  • PORT:Wekan Node.js 监听端口,默认 80。若 80 被占用,可改为 2000 等端口并同步修改 ROOT_URL,例如http://192.168.0.100:2000
  • WRITABLE_PATH:附件存储的根路径。默认..表示bundle的上级目录,Wekan 会在其中创建files/attachmentsfiles/avatars等目录。从 models/attachments.js 的源码可以确认存储路径的计算逻辑:取process.env.WRITABLE_PATH || process.cwd()作为基础路径,若基础路径以/files结尾(Snap 场景)则直接追加/attachments,否则追加/files/attachments
  • MONGO_URL:本地 MongoDB 连接串,格式为mongodb://ip:port/database-name,默认库名wekan
  • WITH_API=true:启用 Wekan API。注释明确指出若设为 false 禁用 API,导出看板(Export Board)将不可用

4. MongoDB 维护:备份、恢复与 CLI

文档给出了与 MySQL 世界mysqldump类似的mongodump备份命令(完整路径形如C:\Program Files\MongoDB\Server\4.2\bin\mongodump):

"C:\Program Files\MongoDB\Server\4.2\bin\mongodump"

会在当前目录生成dump子目录存放备份。恢复使用:

"C:\Program Files\MongoDB\Server\4.2\bin\mongorestore"

连接 MongoDB CLI:

"C:\Program Files\MongoDB\Server\4.2\bin\mongo"

进入 CLI 后常用操作(一个 MongoDB 服务可承载多个数据库,类似 MySQL 的CREATE DATABASE):

show dbs -- 查看所有数据库 use wekan -- 切换到 wekan 数据库 show collections -- 列出 wekan 库中的集合(表) db.users.find() -- 查看 users 集合内容 use testing -- 创建并切换到 testing 库 db.dropDatabase() -- 删除当前数据库 show dbs -- 再次确认 testing 已被删除 exit -- 退出 CLI

重要告诫:不要直接备份 Windows 上 MongoDB 的原始数据文件(位于C:\ProgramData\MongoDB\data\db,需在资源管理器中开启“显示隐藏文件/系统文件/文件扩展名”才能看到),而应使用mongodump

此外,仓库根目录的 start-wekan.bat 启动逻辑中还包含一段等待 MongoDB 就绪的重试循环(默认超时WEKAN_DB_WAIT_TIMEOUT=120秒):它会在 MongoDB 未就绪时每 5 秒重试,并打印升级提示——若升级后无法连接,多半是旧版本 MongoDB 创建的数据文件无法被新版本打开,需要用旧版本mongodump --archive=wekan.archive --gzip备份、清空数据目录、再用新版本mongorestore --archive=wekan.archive --gzip --drop恢复。脚本还自动检测 MongoDB 副本集rs0状态:副本集就绪时设置USE_CHANGE_STREAMS=true并把METEOR_REACTIVITY_ORDER设为changeStreams,oplog,polling,否则回退为polling轮询模式,并显式SET DDP_TRANSPORT=sockjs(Bundle 不携带 uWebSockets.js,uws 会被强制转为 sockjs)。

5. 添加用户

部署完成后,参考 Adding users 添加用户;忘记密码时参考 Forgot Password。

Docker 部署

文档推荐 Docker 方案,但有两条明确警示:

  1. 不要使用latesttag,只使用发布版本 tag(参见仓库 issue 3874 的相关讨论)。
  2. 不需要从源码构建时,直接使用官方预构建镜像和仓库根目录的 docker-compose.yml:
docker-compose up -d

需要从源码构建时:

git clone https://github.com/wekan/wekan

然后编辑 docker-compose.yml 并取消注释第 122 行wekan服务中的 build 段落(文档指向原文件的 L132-L142,当前仓库中对应wekan:服务定义附近):

#------------------------------------------------------------------------------------- # ==== BUILD wekan-app DOCKER CONTAINER FROM SOURCE, if you uncomment these ==== # ==== and use commands: docker-compose up -d --build build: context: . dockerfile: Dockerfile args: - NODE_VERSION=${NODE_VERSION} - METEOR_RELEASE=${METEOR_RELEASE} - NPM_VERSION=${NPM_VERSION} - ARCHITECTURE=${ARCHITECTURE} - SRC_PATH=${SRC_PATH} - METEOR_EDGE=${METEOR_EDGE} - USE_EDGE=${USE_EDGE} #-------------------------------------------------------------------------------------

然后执行:

docker-compose up -d --build

Docker 环境出问题时可参考 Repair Docker。

WSL(Windows Subsystem for Linux)方案

基础安装

在 WSL.md 中给出了 WSL 的现代安装方式:

wsl --install wsl --list --online wsl --install -d Ubuntu-22.04

使用预构建 Bundle 运行(无需源码构建)

在 WSL 中下载最新的wekan-VERSION.zip并解压后:

sudo apt update sudo apt install npm mongodb-server mongodb-clients sudo npm -g install n sudo n 12.16.1 sudo npm -g install npm

然后编辑start-wekan.sh,设置正确的端口、ROOT_URL,以及指向 27017 端口的MONGO_URL,并cd到可执行node main.js的 bundle 目录,最后:

./start-wekan.sh

更多硬件类参考可看 Raspberry Pi(同为非 x86/无 Docker 环境的部署参考)。

源码开发模式(快速重载)

若要从源码构建并加速启动、跳过部分构建产物、支持局域网设备测试,可指定计算机 IP:

WITH_API=true RICHER_CARD_COMMENT_EDITOR=false ROOT_URL=http://192.168.0.200:4000 meteor --exclude-archs web.browser.legacy,web.cordova --port 4000

WSL 中 GitHub 连接问题修复

如果在 WSL 中git pullssh: Could not resolve hostname github.com: Name or service not known,说明 DNS 解析异常。按 WSL.md 修复:

编辑/etc/wsl.conf

[boot] systemd=true [network] generateResolvConf = false

编辑/etc/resolv.conf,加入可用的 nameserver(例如 CloudFlare 的 1.1.1.1):

nameserver 1.1.1.1

同时修改 Windows 网络设置:只启用 IPv4(关闭 IPv6),DNS 设为1.1.1.1并开启 HTTPS 自动加密。

WSL2 中运行 Wekan Snap 版

在 WSL2 中启用 systemd(参考 Ubuntu 官方 WSL systemd 教程)后:

sudo snap install wekan --channel=latest/candidate

设置访问地址与端口(替换为你的 Windows 计算机 IP):

sudo snap set wekan root-url='http://192.168.0.200' sudo snap set wekan port='80'

然后用 Chromium/Edge/Firefox/Safari 等浏览器访问http://192.168.0.200。移动端可参考 PWA 创建桌面图标。如需 SSL/TLS,可参考 Caddy 与 Settings 配置。

VirtualBox 虚拟机方案

最简单的方式是在 VirtualBox 中安装 Ubuntu(文档示例为 Ubuntu 19.10 64bit),再安装 Wekan。例如 Snap 版:

sudo snap install wekan

文档指出:Snap 目前仅保证在运行于 VirtualBox VM 的 Ubuntu 19.10 64bit 上正常工作(该说法针对文档编写时的版本,请以官方最新发布说明为准)。

设置网络与端口暴露可参考 VirtualBox 容器文档 中的桥接网络(bridged networking)说明。

离线部署(Offline)补充路径

Offline.md 提供了更贴合当前版本的无容器离线部署流程,可作为原生部署的更新版参考:

  1. 在联网电脑下载 4 个文件:wekan-VERSION-win64.zip(含bundle目录)、node.exemongodb-windows-x86_64-VERSION-signed.msi,以及仓库中已存在的 start-wekan.bat。
  2. 用 U 盘/光盘拷到离线 Windows 电脑。
  3. 双击.msi安装 MongoDB(取消勾选 MongoDB Compass)。
  4. 解压 zip,把node.exestart-wekan.bat与解压出的main.js一起放入bundle目录。
  5. 用记事本编辑start-wekan.bat,将ROOT_URL设为服务器 IP(如http://192.168.0.100),若 80 端口被占用则改端口:
    SET ROOT_URL=http://IP-ADDRESS-HERE:2000 SET PORT=2000

    同时注意WRITABLE_PATH目录必须存在且可写,附件迁移才能正常工作。

  6. 双击start-wekan.bat(若失败则以管理员身份运行),Wekan 即位于http://IP-ADDRESS-HERE:2000/sign-in

离线升级要点(来自 Offline 文档)

  • 仅升级 Wekan:备份 → 下载新 bundle → 替换旧 bundle → 重启。注意附件位于WRITABLE_PATH目录下(如files\attachmentsfiles\avatars),不在 MongoDB 中,迁移服务器时需一并拷贝。
  • Node.js/MongoDB 也需升级时:先mongodump备份(目录dump);若mongodump不存在需下载 MongoDB Database Tools;再用mongorestore --drop恢复;若报索引错误改用mongorestore --drop --noIndexRestore
  • 若新旧start-wekan.bat有差异,可用diff old-start-wekan.bat start-wekan.bat对比(需安装 git 或使用 WSL/PowerShell)。

SSL/TLS:Caddy 反向代理

Wekan 本身以 HTTP 运行在本地端口,SSL/TLS 由 Caddy、Nginx、Apache 等反代完成(见 Settings)。Offline.md 给出了两套 Caddy 配置。

内网(无互联网)SSL/TLS

因为无法访问 Let's Encrypt 等外部服务做自动证书签发,必须自建证书体系:

  1. 生成自签名根 CA 与服务器证书:
    openssl genrsa -out rootCA.key 2048 openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 365 -out rootCA.pem openssl req -new -nodes -newkey rsa:2048 -keyout server.key -out server.csr -config server.csr.cnf openssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 365 -sha256 -extfile server.csr.cnf -extensions req_ext
  2. 配置Caddyfile,用tls指令显式加载证书(禁止自动申请):
    wekan.example.com { tls { load C:\wekan\certs\example.com.pem alpn http/1.1 } proxy / localhost:2000 { websocket transparent } }
  3. 在每个客户端把rootCA.pem导入“受信任的根证书颁发机构”(Windows 搜索“管理计算机证书”),否则浏览器会告警。
  4. 在每台电脑的C:\Windows\System32\drivers\etc\hosts追加(管理员编辑,记事本需把“*.txt”下拉改为“所有文件”):
    192.168.0.200 wekan.example.com

公网 SSL/TLS(CloudFlare 源站证书)

部署拓扑:example.com (CloudFlare SSL Origin Cert) => 公网 IPv4 路由器 443 => 本地 IPv4 443 Caddy => 本地 2000 Node.js (Wekan) => MongoDB 27017。CloudFlare 到 Caddy 全程 SSL/TLS 加密;服务器本机内 Caddy↔Wekan、Wekan↔MongoDB 为明文 HTTP,但对外无泄漏。

要点步骤(详见 Offline.md):

  1. 路由器(如 Arris 线缆猫)做端口转发:HTTP 80 与 HTTPS 443 → Wekan 服务器局域网 IP(如192.168.0.200)。
  2. ipconfig(cmd)或“设置 → 网络和 Internet”查看本机 IPv4。
  3. 在 CloudFlare 购买域名,添加 A 记录(Name:wekan,IPv4 填公网 IP,Proxy 状态选橙色云,TTL Auto)。
  4. CloudFlare SSL/TLS 设为Full (strict),在 Origin Server 创建源站证书。
  5. 用记事本把私钥、公钥、证书链按顺序粘贴为一个example.com.pem(示例目录结构为C:\wekan\certs\example.com.pem)。
  6. 编辑start-wekan.bat
    SET WRITABLE_PATH=..\FILES SET ROOT_URL=https://wekan.example.com SET PORT=2000 node main.js > log.txt 2>&1

    (附件异常时可改用WRITABLE_PATH=..\FILES\。)

  7. 下载 Caddy Windows 版caddy.exe,与Caddyfilestart-wekan.batbundle目录放在同一结构下。
  8. 写入上文的Caddyfile后,先格式化与校验配置:
    caddy fmt --overwrite Caddyfile caddy validate
  9. 无错误后运行caddy启动,即可通过https://wekan.example.com访问。

不推荐 / 已失效的路径(务必避开)

文档明确将以下路径标记为DOES NOT WORK / Probaby does not work

  • 在 Windows 上直接源码编译安装(Install-Wekan-from-source-on-Windows.md 中的旧流程已失效,其历史做法包括:安装 MeteorJS、NodeJS、Python 2.7、Visual C++ 2015 Build Tools、Git;设置msvs_version 2015;用meteor运行并处理 fibers 模块报错等——这些仅供了解历史,不建议在生产中尝试)。
  • Windows 上的 Meteor 安装/构建zodern/windows-meteor-installer等方式构建会产生错误。文档中的相关示例(choco install -y nodejs-lts ndm gitnpm i -g @zodern/windows-meteor-installermeteorz --port 4000)同样仅作背景参考。

常见问题排查速查

现象原因与处理
翻译、附件上传不工作ROOT_URL与端口不符:80 端口必须用http://IP而非localhost
TypeError: The "path" argument must be of type string(出自 models/attachments.js)WRITABLE_PATH目录不存在/不可写。先创建如C:\wekan-dataC:\wekan-data\attachments,再设置WRITABLE_PATH=C:\wekan-dataATTACHMENTS_STORE_PATH=C:\wekan-data\attachments
局域网无法访问开发版设置BIND_IP=0.0.0.0ROOT_URL=http://<LAN-IP>:4000meteor run --port 4000
启动后一直等待 MongoDB升级 MongoDB 后旧数据打不开,按start-wekan.bat中的提示用旧版 mongodump / 新版 mongorestore 迁移;检查 MongoDB 日志、featureCompatibilityVersion,必要时mongod --repair
WSL 中 git 无法解析 github.com按上文修改/etc/wsl.conf/etc/resolv.conf,Windows 网络仅启用 IPv4

附加说明:文档还提到了 Windows 系统更新的相关话题(如 WuMgr、Legacy Update、Snappy Driver Installer 等)以及 Secure-Boot.md 中引用的安全公告链接,这些属于部署前的宿主系统准备事项,与本指南的部署主线相关度较低,读者可按需查阅。

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询