搭建自己的云笔记-为知笔记私有部署

公有云笔记有很多,就不一一列举。这些云笔记各有各的特点,不足的是数据不可控,并且部分功能需要付费才能使用。

为知笔记也算是老牌的笔记了,但是知道的人却不是很多。为知笔记服务端提供了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