搭建自己的云笔记-为知笔记私有部署
公有云笔记有很多,就不一一列举。这些云笔记各有各的特点,不足的是数据不可控,并且部分功能需要付费才能使用。
为知笔记也算是老牌的笔记了,但是知道的人却不是很多。为知笔记服务端提供了docker镜像,只需要简单几步,就可以将为知笔记服务端部署在自己的服务器上。选择它的原因主要有以下几点。
1、多端丰富,PC、Mac、iOS、安卓都有,且支持多端同步。
2、有加密功能,有些个人资料可以加密处理。
3、笔记支持多级目录,并且支持多格式导出。
4、私有版5 用户以下免费使用。
我的服务器是腾讯云的云主机,系统是Ubuntu Server 18.04.1 64位。因为为知笔记是docker镜像的,所以装之前需要先安装docker。首先通过终端连接到服务器,然后在终端按顺序输入以下命令。
1、先卸载旧版本的docker;
sudo apt-get remove docker docker-engine docker.io containerd runc
2、更新apt包索引,并安装以下包以允许apt通过 HTTPS 使用存储库;
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
3、添加 Docker 的官方 GPG 密钥;
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
4、设置存储库;
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
5、更新apt包索引,并安装docker;
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
6、安装完成后,每次执行都需要sudo才可以正常执行,可以通过以下命令解决
sudo groupadd docker
sudo usermod -aG docker $USER
7、设置开机启动,服务器重启后docker服务可以自启动。
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
现在在终端输入 docker --version 能看到docker的版本就证明安装成功了。以上更详细内容可以查看官方说明文档。
docker安装完成后,现在就可以部署为知笔记了。在终端输入以下命令
cd ~
mkdir wizdata
这个是进入当前用户目录,创建wizdata目录,也是可以创建其他位置的,不过后续命令需要对应修改,新手不建议更改目录。
docker run --name wiz --restart=always -it -d -v ~/wizdata:/wiz/storage -v /etc/localtime:/etc/localtime -p 8080:80 -p 9269:9269/udp wiznote/wizserver
如果wizdata不在用户根目录,需要把~/wizdata改到对应的路径。等命令执行完成,没报错的话私有笔记就部署完成了。
打开浏览器,在地址栏输入 服务器的IP地址:8080,敲回车。就可以看到如下界面
默认管理员账号:admin@wiz.cn,密码:123456。请在部署完成后,使用这个账号,登录网页版,然后修改管理员密码。
以上更多内容可以查看为知笔记官方文档。
虽然部署完成了,但是又有些问题需要考虑下。一直使用IP加端口访问的方式不够美观,并且如果服务器换IP或者端口换了,客户端都需要更改,用域名访问才是更好的解决办法。注册域名和域名解析在这里不就说了。
这里主要说下nginx的安装了配置。安装比较简单,输入以下命令即可
sudo apt-get install nginx
安装完成后,在浏览器中输入服务器的IP地址,就可以看到nginx的说明界面。如果看不到可能还需要执行以下命令,打开nginx对应的端口并且启动nginx。
sudo ufw allow 'Nginx Full'
sudo systemctl restart nginx
然后就是申请免费的HTTPS证书,可以通过acme.h申请,详细内容看这里。
证书申请完成后,进入nginx目录创建域名的配置文件,配置nginx反向代理。
cd /etc/nginx/sites-available/
通过上面命令进入的nginx的配置文件目录,然后
vi 域名.conf //域名替换为为知笔记对应的域名,用于区分
然后按 i 进入编辑模式,复制以下内容,把中文替换为相应域名,再粘贴进去即可。
server {
listen 80;
server_name 为知笔记域名;
return 301 https://为知笔记域名$request_uri;
}
server{
listen 443 ssl;
server_name 为知笔记域名;
ssl on;
ssl_certificate /etc/nginx/ssl/证书目录/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/证书目录/key.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
access_log /var/log/nginx/wzi.log;
error_log /var/log/nginx/wzi_error.log;
root /var/www/blog/system/nginx-root; # Used for acme.sh SSL verification (https://acme.sh)
location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header x-wiz-real-ip $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:8080;
}
location ~ /.well-known {
allow all;
}
client_max_body_size 50m;
}
然后 按ESC退出编辑模式,在终端键入:wq! 回车保存并退出编辑器。官方配置看这里
配置文件完成后,其实还并没有生效。只有在sites-enabled目录下的配置文件才是启用的配置。现在就需要进入创建个软链接指向刚创建的文件即可,然后重启nginx,如果不报错,到这里私有笔记就部署成功了。
sudo ln -s /etc/nginx/sites-available/域名.conf /etc/nginx/sites-enabled/域名.conf
sudo systemctl restart nginx