简单看看下面介绍。
Wekan是 一个完全开源和自由软件的协作看板应用程序,使用 MIT 许可证。
无论您是在维护个人待办事项清单,与朋友一起计划假期,还是在团队中为您的下一个革命性想法工作,看板都是一个无与伦比的工具,可以让您的事情井然有序。它们可以让您直观地了解项目的当前状态,并通过让您专注于最重要的几个项目来提高您的工作效率。
由于Wekan是一款免费软件,因此您无需相信我们的数据,并可以在您自己的计算机或服务器上安装Wekan。实际上,我们鼓励您通过在各种平台上提供一键安装来实现这一目标。
我们最初使用 wekan 时,是在 Unbuntu 上面通过 snap 安装的 wekan,这是最简单的一种方式,只是想要更多自定义配置需要深入了解一些配置,最初想要写本文时,我都写了一部分内容,但是最近发现一些 BUG,导致我今天(3-2)切换到了 Docker 方式。
下面是 snap 方式的注意点,是很早以前的记录,写在这儿只是为了记录,非常强烈的不推荐使用这种方式。
wekan snap 方式配置
配置文件:
https://github.com/wekan/wekan/blob/edge/snap-src/bin/config以 mongodb 数据库配置为例,在上述配置中,有一段配置如下:
DESCRIPTION_MONGODB_BIND_IP="mongodb binding ip address: eg 127.0.0.1 for localhost\n\t\tIf not >defined default unix socket is used instead" DEFAULT_MONGODB_BIND_IP="127.0.0.1" KEY_MONGODB_BIND_IP="mongodb-bind-ip"
这里配置了 mongodb 默认绑定的 IP,使用 127.0.0.1 的情况下,外网无法访问该 mongodb。
官方 snap wekan 使用文档:https://github.com/wekan/wekan-snap/wiki/Install
根据文档介绍,执行下面的命令修改配置:
snap set wekan mongodb-bind-ip="0.0.0.0"
不需要重启,此时外网就可以访问该地址了,其他配置修改方式类似。
需要重启时,执行下面的命令:
systemctl restart snap.wekan.wekan
因为 snap 会强制自动更新,Wekan 项目极其活跃,项目组的人非常积极,这都是好事,问题是 Wekan 的 snap 版本因此每天会有好几个版本出来,你我都是小白鼠,都被用来直接测试!因此如果在生产环境使用,千万不要选择 snap 方式!!
我在 wekan-snap 提的 issue: https://github.com/wekan/wekan-snap/issues/83
推荐用 Docker,并且用 compose。
官方文档:https://github.com/wekan/wekan-mongodb,文档有完整的用法和配置文件。
我修改的 docker-compose.yml
配置如下:
version: '2'
services:
wekandb:
image: mongo:3.2.20
#-------------------------------------------------------------------------------------
container_name: wekan-db
restart: always
command: mongod --smallfiles --oplogSize 128
# 由于之前使用 snap 用的 27019 端口,因此我这里做了映射
ports:
- 27019:27017
networks:
- wekan-tier
expose:
- 27017
volumes:
- /docker/wekan/data:/data/db
- /docker/wekan/dump:/dump
wekan:
#---------------------------------------------------------------------------------
image: wekanteam/wekan:v2.17
#-------------------------------------------------------------------------------------
container_name: wekan-app
restart: always
networks:
- wekan-tier
#-------------------------------------------------------------------------------------
ports:
- 80:8080
environment:
- MONGO_URL=mongodb://wekandb:27017/wekan
# 改成你自己的地址
- ROOT_URL=http://localhost
- WITH_API=true
- BROWSER_POLICY_ENABLED=true
depends_on:
- wekandb
networks:
wekan-tier:
driver: bridge
我的改动主要是将 mongo 暴露出去,因为有时需要连到该服务器去检查数据(我们还有一个统计看板绩效的工具)。
另外就是映射 volumes。
直接 docker-compose up -d
启动即可。
备份指定的数据库 wekan,修改后面备份的目录日期
docker exec -it wekan-db /usr/bin/mongodump --port=27017 --db=wekan -o /dump/wekan-20190302
这个命令会在容器中执行备份,容器中的 /dump
就是主机的 /docker/wekan/dump
目录。
还原指定备份目录的数据库,还原到指定的数据库,这里是 wekan3,是一个测试库
还原到主库时要慎重!!
docker exec -it wekan-db /usr/bin/mongorestore --port=27017 --db=wekan3 /dump/wekan-20190302/wekan
停止服务,修改配置中 wekan 镜像版本即可。
把升级的权限拿在自己手中才放心!!!!!!
这部分主要针对我们自己的看板绩效工具。
简单查询:
图表:
由于要针对看板提供一个绩效的工具,因此要在一个测试库上进行开发,为了方便开发,在原 compose 配置增加一个测试的 mongo 库,主库不对外开放。
version: '2'
services:
# 测试库
wekandb-test:
image: mongo:3.2.20
#-------------------------------------------------------------------------------------
container_name: wekan-db-test
restart: always
command: mongod --smallfiles --oplogSize 128
ports:
- 27019:27017
expose:
- 27017
volumes:
- /docker/wekan/data-test:/data/db
- /docker/wekan/dump:/dump
# 生产库
wekandb:
image: mongo:3.2.20
#-------------------------------------------------------------------------------------
container_name: wekan-db
restart: always
command: mongod --smallfiles --oplogSize 128
networks:
- wekan-tier
expose:
- 27017
volumes:
- /docker/wekan/data:/data/db
- /docker/wekan/dump:/dump
wekan:
#---------------------------------------------------------------------------------
image: wekanteam/wekan:v2.17
#-------------------------------------------------------------------------------------
container_name: wekan-app
restart: always
networks:
- wekan-tier
#-------------------------------------------------------------------------------------
ports:
- 80:8080
environment:
- MONGO_URL=mongodb://wekandb:27017/wekan
#---------------------------------------------------------------
- ROOT_URL=http://localhost
#---------------------------------------------------------------
- WITH_API=true
#-----------------------------------------------------------------
- BROWSER_POLICY_ENABLED=true
depends_on:
- wekandb
networks:
wekan-tier:
driver: bridge