Wekan部署攻略:Docker环境下的快速搭建与配置优化
你是否还在为团队协作效率低下而烦恼?是否需要一个简单易用的项目管理工具来跟踪任务进度?Wekan作为一款开源的看板应用(Kanban),能够帮助团队高效管理项目任务。本文将详细介绍如何在Docker环境下快速搭建Wekan,并进行配置优化,让你在10分钟内完成部署,提升团队协作效率。读完本文后,你将掌握Wekan的Docker部署步骤、基本配置方法、数据备份策略以及性能优化技巧。
准备工作
在开始部署Wekan之前,需要确保你的系统满足以下基本要求:
- 操作系统:Linux(推荐Ubuntu 20.04 LTS或更高版本)
- Docker:Docker Engine 20.10.x 或更高版本
- Docker Compose:v2.x 或更高版本
- 硬件配置:至少2GB RAM,20GB可用磁盘空间(官方文档建议,docs/FAQ/Requirements.md)
安装Docker和Docker Compose
如果你的系统尚未安装Docker和Docker Compose,可以通过以下命令快速安装:
# 更新系统包
sudo apt update && sudo apt upgrade -y
# 安装Docker依赖
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
# 添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 添加Docker软件源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装Docker和Docker Compose
sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
# 将当前用户添加到docker组(避免每次使用sudo)
sudo usermod -aG docker $USER
安装完成后,注销并重新登录系统,使用户组变更生效。
快速部署Wekan
Wekan官方提供了Docker Compose配置文件,简化了部署过程。以下是快速部署步骤:
获取Wekan的Docker Compose配置
首先,克隆Wekan的Git仓库(如果没有Git,请先安装:sudo apt install git):
git clone https://gitcode.com/GitHub_Trending/we/wekan.git
cd wekan
在仓库根目录下,你可以找到docker-compose.yml文件,该文件定义了Wekan和MongoDB的服务配置。
修改Docker Compose配置
使用文本编辑器打开docker-compose.yml文件:
nano docker-compose.yml
主要需要修改以下参数:
- ROOT_URL:设置Wekan的访问地址,例如
http://your-domain.com或http://localhost:8080。 - 端口映射:默认情况下,Wekan容器的8080端口映射到主机的80端口。如果主机80端口已被占用,可以修改为其他端口,例如
3000:8080。
示例配置(docker-compose.yml):
services:
wekandb:
image: mongo:7
container_name: wekan-db
restart: always
volumes:
- wekan-db:/data/db
networks:
- wekan-tier
wekan:
image: ghcr.io/wekan/wekan:latest
container_name: wekan-app
restart: always
ports:
- "8080:8080" # 主机端口:容器端口
environment:
- MONGO_URL=mongodb://wekandb:27017/wekan
- ROOT_URL=http://localhost:8080 # 修改为你的访问地址
- WITH_API=true
depends_on:
- wekandb
networks:
- wekan-tier
networks:
wekan-tier:
driver: bridge
volumes:
wekan-db:
启动Wekan服务
保存配置文件后,使用以下命令启动Wekan服务:
docker compose up -d
-d参数表示后台运行容器。- 首次启动时,Docker会自动拉取Wekan和MongoDB的镜像,可能需要几分钟时间,请耐心等待。
验证部署
服务启动后,打开浏览器访问你在ROOT_URL中设置的地址(例如http://localhost:8080)。如果看到Wekan的登录页面,说明部署成功。
基本配置
创建管理员账户
首次访问Wekan时,需要创建管理员账户:
- 点击页面上的“注册”按钮。
- 输入用户名、电子邮件和密码。
- 注册成功后,系统会自动登录到Wekan看板界面。
添加用户和创建看板
作为管理员,你可以通过以下步骤添加用户和创建看板:
- 添加用户:进入“管理面板”(Admin Panel),点击“用户”选项卡,然后点击“添加用户”,输入用户信息并设置权限(docs/Login/Adding-users.md)。
- 创建看板:点击界面上的“+ 新建看板”按钮,输入看板名称和描述,选择可见性(私有或公开),然后点击“创建”。
数据备份与恢复
为了确保数据安全,定期备份Wekan数据至关重要。Wekan的数据存储在MongoDB中,可以通过以下方法进行备份和恢复。
数据备份
Wekan官方提供了Docker环境下的数据备份脚本,备份步骤如下(docs/Backup/Backup.md):
# 停止Wekan应用容器
docker stop wekan-app
# 在MongoDB容器内创建数据备份
docker exec wekan-db mongodump -o /data/dump
# 将备份文件从容器复制到主机
docker cp wekan-db:/data/dump .
# 启动Wekan应用容器
docker start wekan-app
备份文件将保存在当前目录的dump文件夹中。建议将备份文件压缩并存储到安全位置:
tar -zcvf wekan_backup_$(date +%Y%m%d).tar.gz dump/
rm -rf dump/
数据恢复
如果需要恢复数据,可以使用以下步骤:
# 停止Wekan应用容器
docker stop wekan-app
# 将备份文件复制到MongoDB容器内
docker cp wekan_backup_20250925.tar.gz wekan-db:/data/
# 进入MongoDB容器
docker exec -it wekan-db bash
# 在容器内解压备份文件
cd /data
tar -zxvf wekan_backup_20250925.tar.gz
# 恢复数据
mongorestore --drop --dir=/data/dump
# 退出容器
exit
# 启动Wekan应用容器
docker start wekan-app
--drop参数表示在恢复前删除现有数据,确保恢复的数据是最新的。
配置优化
性能优化
-
MongoDB性能调优:
-
Wekan使用MongoDB作为数据库,默认配置可能无法充分利用系统资源。你可以通过修改MongoDB的配置文件来优化性能,例如增加缓存大小、调整连接池等。
-
在
docker-compose.yml中,可以为MongoDB容器添加额外的命令参数:wekandb: image: mongo:7 command: mongod --wiredTigerCacheSizeGB 1 --oplogSize 128--wiredTigerCacheSizeGB 1:设置WiredTiger存储引擎的缓存大小为1GB(根据系统内存调整,建议设置为可用内存的50%)。--oplogSize 128:设置操作日志(Oplog)大小为128MB,有助于提高数据同步性能。
-
-
Wekan应用优化:
-
调整Node.js内存限制:Wekan基于Node.js运行,可以通过设置
NODE_OPTIONS环境变量来增加内存限制(docker-compose.yml):wekan: environment: - NODE_OPTIONS=--max_old_space_size=2048 # 设置为2GB
-
Nginx反向代理配置
为了提高Wekan的访问性能和安全性,建议使用Nginx作为反向代理,并启用HTTPS。以下是Nginx的配置示例(docs/Webserver/Nginx.md):
# /etc/nginx/conf.d/wekan.conf
server {
listen 80;
server_name your-domain.com; # 替换为你的域名
return 301 https://$host$request_uri; # 重定向HTTP到HTTPS
}
server {
listen 443 ssl http2;
server_name your-domain.com;
ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem; # SSL证书路径
ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;
# SSL配置优化
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
ssl_session_cache shared:SSL:10m;
# 代理配置
location / {
proxy_pass http://localhost:8080; # 指向Wekan容器的端口
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# 设置最大上传文件大小
client_max_body_size 100M;
}
配置完成后,重启Nginx服务:
sudo nginx -t # 测试配置是否有误
sudo systemctl restart nginx
升级Wekan
Wekan团队会定期发布新版本,修复漏洞并添加新功能。升级Docker环境下的Wekan非常简单:
# 进入Wekan目录
cd /path/to/wekan
# 拉取最新的Docker镜像
docker compose pull
# 重启容器
docker compose up -d
注意:升级前请务必备份数据,以防意外情况(docs/Upgrade/Upgrade.md)。
常见问题解决
1. 容器启动失败
如果Wekan或MongoDB容器启动失败,可以通过以下命令查看日志,排查错误原因:
# 查看Wekan容器日志
docker logs wekan-app
# 查看MongoDB容器日志
docker logs wekan-db
2. 无法访问Wekan
-
检查容器是否正常运行:
docker ps -
检查端口映射是否正确:
netstat -tuln | grep 8080(确保主机端口未被占用) -
检查防火墙设置,确保端口已开放:
sudo ufw allow 8080/tcp # 如果直接访问Wekan端口 sudo ufw allow 80/tcp # 如果使用HTTP sudo ufw allow 443/tcp # 如果使用HTTPS
3. 附件上传大小限制
默认情况下,Nginx和Wekan都有附件上传大小限制。可以通过修改Nginx配置文件中的client_max_body_size参数(如上文Nginx配置示例中设置为100M),以及Wekan的环境变量来调整(docker-compose.yml):
wekan:
environment:
- ATTACHMENTS_UPLOAD_MAX_SIZE=104857600 # 100MB(单位:字节)
总结
通过本文的指南,你已经成功在Docker环境下部署并优化了Wekan看板应用。现在,你可以使用Wekan来管理项目任务,提高团队协作效率。为了确保系统稳定运行,建议定期备份数据,并关注Wekan的最新版本,及时进行升级。
如果你在使用过程中遇到其他问题,可以查阅Wekan的官方文档(docs/README.md)或在GitHub上提交issue寻求帮助。
点赞+收藏+关注,获取更多开源项目部署与优化教程!下期预告:Wekan高级功能使用技巧——自动化规则与报表生成。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



