Wekan安装-树莓派

Wekan安装-树莓派

免费开源看板软件Wekan

上篇文章讲了如何利用Docker将Wekan部署在服务器上以及一些Wekan的基本操作。(如果你还不知道Wekan是啥,请看:链接)同时,也提到了在Wekan的官方文档里,无论是用Docker还是Snap部署Wekan,如果安全问题是很重要的,都不建议将Wekan暴露到外网(与内网相对)上。不想让服务器变成肉鸡或者暴露在危险下,正好Wekan也支持部署在树莓派上。那么,开始吧。

本文将分三部分:

  1. 在树莓派上部署Wekan
  2. 导出Wekan数据(从docker)
  3. 导入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

wekan-pi-releases.webp
# ~/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-appwekan-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,就可以直接用之前的账号登陆并且使用原来的看板了!

Some rights reserved
Except where otherwise noted, content on this page is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license.