【玩转腾讯云】在云服务器上部署私有笔记服务

2020-04-16 10:25:19 浏览数 (1)

【重要提示】请务必注意数据备份(数据文件及数据库 ),以免数据丢失。

【重要提示】请务必注意数据备份(数据文件及数据库),以免数据丢失。

【重要提示】请务必注意数据备份(数据文件及数据库),以免数据丢失。

本文将介绍在 Ubuntu 18.04.1 LTS 系统环境下部署为知笔记的方法。

【准备】需要一个云服务器和一个已经备案的域名,国外云服务器则无需备案。

免费版本,最多支持 5 个用户进行使用。

界面美观,文章自动保存,可以查看历史版本,支持客户端,全文搜索能力不强。

实测 Docker 版本占用内存 700 MB

建议最好安装在 4G 内存云服务器上,如果运行在 2G 内存云服务器上,内存占用约 70 %。

官网链接

使用云存储来保存笔记数据 - 官网链接

为知笔记私有部署Docker镜像 - 官网链接

私有部署教程 - 官网链接

一、安装 Docker

1、安装 Docker

腾讯云上 Docker 的安装方式

经测试 Ubuntu 18.04.1 LTS 系统自带 Docker,无需安装 Docker 。

如果需要安装请执行以下代码

代码语言:javascript复制
curl -sSL https://get.daocloud.io/docker | sh

测试是否安装成功

代码语言:javascript复制
docker run hello-world

如果提示 Hello from Docker! 则安装正常。

2、使用 DockerHub 加速器

使用 DockerHub 加速器

修改 /etc/docker/daemon.json 文件,并写入以下内容,如果文件不存在请新建并写入以下内容

代码语言:javascript复制
{
   "registry-mirrors": [
       "https://mirror.ccs.tencentyun.com"
  ]
}

重启 Docker

代码语言:javascript复制
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

执行 docker info 命令,返回结果中包含以下内容,则说明配置成功。

代码语言:javascript复制
Registry Mirrors:
 https://mirror.ccs.tencentyun.com

二、拉取并部署为知笔记镜像

1、创建数据文件夹并拉取镜像,启动并映射到8885端口

代码语言:javascript复制
$ cd ~
$ mkdir wizdata
代码语言:javascript复制
docker run --name wiz -it -d -v ~/wizdata:/wiz/storage -v /etc/localtime:/etc/localtime -p 8885:80 -p 9269:9269/udp wiznote/wizserver

如果服务器内存4G或4G以上,可以使用下面的代码开启全文搜索功能(注意:下面这条代码不是官网内容)

实测不使用以下代码也可以进行全文搜索。

代码语言:javascript复制
docker run --name wiz -it -d -v ~/wizdata:/wiz/storage -v /etc/localtime:/etc/localtime -p 80:80 -e SEARCH=true wiznote/wizserver

【注意】云服务器安全组要放行对应端口(8885),如果安装其他防火墙工具,也应放行对应端口。

2、为知笔记登陆

安装完成后,预设管理员账号是admin@wiz.cn,密码是123456,您可以使用这个账号登录,并修改密码。

如果有需要,可以使用反向代理。

后台管理的地址为

http://ip : 端口/admin

http://域名: 端口/admin

https://域名: 端口/admin

3、数据备份(数据文件及数据库)

一般来说为知笔记是存储在 wikidata 文件夹,那么只需要定期备份 wikidata 文件夹。

如果数据存储位置设置为【腾讯云 COS 】,那么 wikidata 目录中的 data_root 文件夹已经迁移至云端,其他文件(数据库等)依然保留在本地。那么需要备份本地的 wikidata 目录和 COS 存储桶中的全部文件。

COS 存储桶中的的 文件 备份方法请看 【玩转腾讯云】腾讯云COS双重备份-版本控制 跨地域备份 。

经实际操作,只要备份数据还在,即使数据丢失也可以完整还原。

【数据恢复方法(仅适用于数据存储位置在本地)】下载备份的 wizdata.zip 文件,将 wizdata.zip 文件解压到服务器上,重新启动镜像即可恢复数据。

【为知笔记-数据恢复方法(仅适用于数据存储位置在腾讯云COS存储桶)】下载备份的 wizdata.zip 文件和数据存储桶中的所有文件,将 wizdata.zip 文件解压并删除 data_root 目录下的所有文件,将数据存储桶中的所有文件粘贴到 data_root 目录下,重新启动镜像即可恢复数据。

三、出现问题及解决方法

1、使用 https 时遇到 新建笔记失败的问题

参考文章:如何为 WizNote 的私有部署配置 https

【解决方法】

代码语言:javascript复制
如果 Nginx.conf 中存在一下代码
proxy_set_header X-Forwarded-Proto $thescheme;
则将其替换为以下代码
proxy_set_header X-Forwarded-Proto $scheme;

如果不存在,则在 Nginx.conf 中添加以下代码
proxy_set_header X-Forwarded-Proto $scheme;

2、部署成功运行后,登陆账号或注册账号会出现错误

代码语言:javascript复制
query failed, sql = select ID as id, USER_GUID as userGuid, EMAIL as email, MOBILE as mobile, 
displayname as displayName, USER_LANGUAGE as userLanguage, POINTS as points, EMAIL_VERIFY as 
emailVerify, VIP_DATE as vipDate, DT_CREATED as dtCreated, PASSWORD as password, USER_STATE as 
userState, MEDAL_COUNT as medalCount, last_login as lastLogin, MOBILE_VERIFY as mobileVerify ,
vatar_version as avatarVersion, TENANT_ID as tenantId, GMT_OFFSET as gmtOffset from wiz_user
where EMAIL = ? or MOBILE = ?, values = admin@wiz.cn,admin@wiz.cn, err = ER_BAD_FIELD_ERROR:
Unknown column 'POINTS' in 'field list'
欢迎使用为知笔记
登录

【解决方法】

(1)停止该容器

代码语言:javascript复制
$ docker ps                     // 查看所有正在运行容器(如果没有显示相关内容则不需要停止)
$ docker stop containerId      //停止某一容器,containerId 是容器的ID
例如:docker stop 819a7f7a9ad4

【注意】如果使用 docker ps 没显示该容器正在运行,请使用 docker ps -a 查找所有容器,并参照以下方法移除该容器。

(2)移除容器

代码语言:javascript复制
$ docker  rm containerId  //remove删除某一容器
例如:docker rm 819a7f7a9ad4

(3)再次执行启动镜像及端口映射命令

代码语言:javascript复制
$ docker run --name wiz -it -d -v ~/wizdata:/wiz/storage -v /etc/localtime:/etc/localtime -p 8885:80 -p 9269:9269/udp wiznote/wizserver

0 人点赞