上篇文章讲了如何利用Docker将Wekan部署在服务器上以及一些Wekan的基本操作。(如果你还不知道Wekan是啥,请看:链接)同时,也提到了在Wekan的官方文档里,无论是用Docker还是Snap部署Wekan,如果安全问题是很重要的,都不建议将Wekan暴露到外网(与内网相对)上。不想让服务器变成肉鸡或者暴露在危险下,正好Wekan也支持部署在树莓派上。那么,开始吧。
本文将分三部分:
- 在树莓派上部署Wekan
- 导出Wekan数据(从docker)
- 导入Wekan数据(到树莓派)
在树莓派上安装Wekan
参考链接:install-wekan-to-raspi3-raspi4-or-any-arm64-server
系统需求
README
Currently uses Node v12.16.2 and MongoDB v3.x or v4.x
Built on Ubuntu 19.10 64bit arm64 on RasPi4.
Should work on RasPi3 and RasPi4 on Ubuntu 19.10 64bit arm64.
Install info here:
https://github.com/wekan/wekan/wiki/Raspberry-Pi
简单地说,需要装ubuntu64位的系统
笔者树莓派的配置:
Raspberrypi4b 4gb
OS: Ubuntu 20.04 focal
Kernel: aarch64 Linux 5.4.0-1008-raspi
安装过程
下载和安装wekan所需要的
用浏览器打开: https://releases.wekan.team/raspi3/
查看README.txt
文件如:
README
Currently uses Node v12.16.2 and MongoDB v3.x or v4.x
Built on Ubuntu 19.10 64bit arm64 on RasPi4.
Should work on RasPi3 and RasPi4 on Ubuntu 19.10 64bit arm64.
Install info here:
https://github.com/wekan/wekan/wiki/Raspberry-Pi
安装下列软件:
sudo apt-get update
sudo apt-get install npm mongodb-server mongodb-clients mongo-tools zip unzip
官方文档写的是:
sudo apt-get install npm mongodb-server mongodb-clients mongodb-tools zip unzip
但是在实际安装过程中提示E: Unable to locate package mongodb-tools
,经过搜索觉得应该是mongodb-tools
于是就做了替换,在后续的安装过程中也没有出现问题。
于是提了一个issue,目前正在等待回应。
接下来:
sudo npm -g install npm
sudo npm -g install n
在前文提到的README.txt
文件查看Node版本,然后安装。比如此时,Node 的版本是12.16.2:
sudo n 12.16.2
接下来切换到你想储存wekan的目录,比如笔者习惯放在repo/xxx
目录下:
cd ~/repo/wekan
查看上文让你打开的网站,下载Wekan(名字类似wekan-x.xx-arm64.zip
),可以鼠标右键点击然后选择复制链接,比如笔者安装时是wekan-4.01-arm64.zip
:
# ~/repo/wekan
wget https://releases.wekan.team/raspi3/wekan-4.01-arm64.zip
接下来下载最新的start-wekan.sh
:
# ~/repo/wekan
wget https://raw.githubusercontent.com/wekan/wekan/master/start-wekan.sh
解压之前下载wekan压缩包:
unzip wekan-4.01-arm64.zip
解压完成后,你的wekan目录应如:
ls ~/repo/wekan
bundle start-wekan.sh wekan-4.01-arm64.zip
以服务的方式运行wekan
如果你想以非root用户将node运行在80端口:
首先,查看node的安装位置:
which node
赋予权限,比如笔者上一步得到的结果是/usr/local/bin/node
:
sudo setcap cap_net_bind_service=+ep /usr/local/bin/node
编辑/etc/systemd/system/wekan.service
:
sudo nano /etc/systemd/system/wekan.service
添加下列内容:(注意WorkingDirectory
后面的值应为前面解压的wekan-4.01-arm64.zip
得到的bundle
目录,比如/home/ubuntu/repo/wekan/bundle
)
[Unit]
Description=The Wekan Service
After=syslog.target network.target
[Service]
EnvironmentFile=/etc/default/wekan
User=ubuntu
Group=ubuntu
WorkingDirectory=/home/ubuntu/repo/wekan/bundle
ExecStart=/usr/local/bin/node main.js
Restart=on-failure
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
查看你树莓派的ip地址:
ip address
记住你的ip地址形如192.168.x.x
,下面呢以192.168.1.20
为例子。
接下来编辑wekan的配置文件/etc/default/wekan
,添加下列内容:(ROOT_URL
改为树莓派的ip地址,为了更加方便,推荐在路由器上设置给你的树莓派分配固定ip)
sudo nano /etc/systemd/system/wekan.service
NODE_ENV=production
WITH_API=true
MONGO_URL=mongodb://127.0.0.1:27017/wekan
ROOT_URL=http://192.168.1.20
PORT=80
启动wekan:
sudo systemctl start wekan
设置开机自启:
sudo systemctl enable wekan
查看wekan运行状况:
sudo systemctl status wekan
打开浏览器访问之前设设置的ROOT_URL
(比如笔者设置的是http://192.168.1.20
)看到登陆界面就大功告成了。第一个注册的为管理员账户。如果你想知道更多的wekan操作,可以查看上一篇文章:免费开源看板软件Wekan安装与使用记录。
如果你还需要还原wekan数据,请不要着急,继续往下看。
导出Wekan数据(从docker)
本文将介绍如何从docker导出wekan的数据,参考Export-Docker-Mongo-Data。其他安装方式安装的wekan数据的备份和还原请参考 Wekan-Wiki-Backup。
停止运行wekan
这一步十分重要!
查看当前的docker进程:
docker ps
然后你将看到wekan-app
和wekan-db
,关闭wekan-app
docker stop wekan-app
再次查看当前的docker进程确保wekan-app
已经停止运行:
docker ps
导出数据
进入mongo容器:
docker exec -it wekan-db bash
切换到容器的根目录:
cd /
将数据导出到容器内的目录下:
mongodump -o /dump/
退出容器:
exit
将导出的数据保存当前目录:
docker cp wekan-db:/dump .
导入数据
停止本地运行wekan
为了避免不可预计的问题,请先停止本地运行的wekan!
sudo systemctl stop wekan
导入数据
从服务器上下载导出数据:(本文用scp下载,你也可用其他方法,关于scp的用法可以参考:从Linux服务器下载文件到本地)
scp -r [email protected]:~/repo/wekan/dump /home/ubuntu/repo/wekan/
将数据还原到wekan的数据库:
mongorestore --drop --db wekan /home/ubuntu/repo/wekan/dump/wekan/
重新打开wekan:
sudo systemctl restart wekan
重新访问wekan,就可以直接用之前的账号登陆并且使用原来的看板了!