为知笔记私有服务器搭建(docker旧版镜像)

发布于 2022-06-15  2177 次阅读


原官方说明

2022年3月6日发现,为知笔记官方已经取消docker页面,估计是某论坛有人发布了关于破解docker镜像获取VIP权限的文章,现在官方已经取消了这个页面的入口,docker hub还可以搜到这个镜像,只是不知道什么时候取消,本文留作备用https://www.wiz.cn/zh-cn/docker


以下为官方页面原内容(无图):
我们已经正式上线了适配 ARM64、ARM32 (v7) 的镜像,如果您正在使用上述系统或树莓派,请直接按照 Linux 系统下的说明操作即可(假定您正在使用linux系统)

为知笔记服务端提供了docker镜像,您只需要简单几步,就可以将为知笔记服务端部署在自己的服务器甚至自己的电脑上面(windows/linux/mac)。

系统需求

操作系统:Windows / macOS / Linux
CPU: Intel / AMD x64, ARM v7 (arm32), ARM 64
内存:至少2G
安装docker

如果您已经安装了docker,则可以跳过该步骤。

请到docker官网,下载相应的docker应用。

windows或者mac环境,请到这里下载: https://www.docker.com/products/docker-desktop。注意:你可能需要注册一个docker账号才可以下载docker 桌面客户端。

如果是linux,请自行搜索docker安装方法。

安装完成后,请运行docker客户端。

注意:如果您的系统里面安装有虚拟机软件,可能会和docker冲突。

下载并启动为知笔记服务端docker镜像mac/linux系统:

请在终端(Terminal)窗口中输入下面的命令

cd ~
mkdir wizdata

我们在用户主目录建立一个wizdata的文件夹。为知笔记服务端会把所有的数据保存在这个目录里面。如果是正式使用,请注意定时备份该目录。也可以联系我们,使用更高级版本,将数据保存在NAS,私有云等专用存储里面。

然后通过下面的命令,下载并启动为知笔记服务

linux 命令

docker run --name wiz --restart=always -it -d -v  ~/wizdata:/wiz/storage -v  /etc/localtime:/etc/localtime -p 80:80 -p 9269:9269/udp  wiznote/wizserver

mac 命令

docker run --name wiz --restart=always -it -d -v  ~/wizdata:/wiz/storage -e TZ=`ls -la /etc/localtime | cut -d/ -f8-9` -p 80:80 -p 9269:9269/udp  wiznote/wizserver

windows系统:

请按下键盘上面的Win+R,或者点击开始菜单,选择运行,然后在对话框里面输入:

powershell

将会打开命令行窗口。

然后在命令行窗口里面输入:

D:
cd \\
md wizdata

将会在D盘根目录下面建立一个wizdata文件夹,所有为知笔记服务端的数据,都将会保存在这个目录里面。您也可以自己修改这个目录。

注意:在windows上面启动docker镜像之后,还需要进行时区设置。请参考后面的常见问题部分。

然后在命令行里面继续输入:

docker run --name wiz --restart=always -it -d -v  D:/wizdata:/wiz/storage -p 80:80 -p 9269:9269/udp wiznote/wizserver

第一次运行镜像,因为需要下载docker镜像,并且初始化数据,速度要慢一些。请耐心等待。(根据网络状况,可能需要10分钟或者更长时间。)在下载完成后,第一次启动镜像大概需要2-3分钟时间。

然后打开浏览器,在地址栏里面输入:http://localhost,如果服务正常,则会出现下面的界面

如果遇到下面的界面:

通常表示为知笔记服务还没有启动起来,请继续等待并刷新浏览器。

注意:启动后请参考常见问题进行时区的设置

如果您当前服务器/电脑的80端口已经被占用,则可以使用其他的端口,例如使用8080端口

将上面命令中的-p 80:80 修改为 -p 8080:80 即可。(前面代表当前服务器的端口,可以自行修改。后面的80端口不能修改)。

您也可以自行修改端口。注意,修改端口后,在浏览器里面,则需要输入相应的端口号,例如:

http://localhost:8080

如果您需要为局域网内其他用户提供服务,则需要获取自己电脑的ip地址(局域网ip,具体方法,请自行搜索),然后在浏览器地址栏里面输入类似下面的地址即可:

http://192.168.1.186

如果不是80端口,则需要包含端口号,例如:

http://192.168.1.186:8080

如果是Windows系统,通常情况下,您需要在Windows防火墙中开放相应的端口。

常用命令修改启动参数,并重新启动服务,例如修改映射端口

docker stop wiz
docker rm wiz
docker run --name wiz --restart=always -it -d -v  ~/wizdata:/wiz/storage -v  /etc/localtime:/etc/localtime -p 80:80 -p 9269:9269/udp  wiznote/wizserver

其中第三行,请自行修改为自己需要的命令行。

系统重新启动后,重新启动服务:
docker start wiz

更新服务命令行:

docker stop wiz
docker rm wiz
docker pull wiznote/wizserver:latest
docker run --name wiz --restart=always -it -d -v  ~/wizdata:/wiz/storage -v  /etc/localtime:/etc/localtime -p 80:80 -p 9269:9269/udp  wiznote/wizserver

其中最后一行,请自行修改为自己需要的命令行

或者使用 Watchtower 来自动更新 WizNote 的镜像:https://github.com/containrrr/watchtower

常见问题💰该服务如何收费?

5 用户以下免费使用,超出 5 用户,按照用户数的方式按年收取费用

授权价格:199 元/用户/年

购买后,服务有效期内可享有一次免费数据迁移服务,并可使用线上增值服务,如邮件转发收藏、微信收藏、网页剪辑等
一次性购买 3 年,可升级为永久授权(可一直享受增值服务,并含 3 年售后服务)
500 用户以上团队推荐更可靠的技术架构和集成定制服务,请与我们售前客服联系
如何配置https管理员账号是什么?

默认管理员账号:admin@wiz.cn,密码:123456。请在部署完成后,使用这个账号,登录网页版,然后修改管理员密码。其他用户,请自行注册。免费版本可以注册5个用户(不包含管理员账号)

为知笔记数据保存在哪里?

所有数据,都保存在我们前面建立的目录里面。请定时备份该目录,避免数据丢失。

重新启动服务器/电脑后,如何重新启动为知笔记服务?

在命令行中窗口/终端中,输入

docker start wiz

就可以重新启动为知笔记服务了。

可以使用企业已有用户登录吗?

可以,请联系我们的客服。

数据可以保存在专用的存储设备或者私有云里面吗?

可以,请联系我们的客服

可以使用客户端访问吗?

可以,您可以直接使用所有的官方客户端,然后在登录的时候,选择登录到企业私有服务器即可。注意:该功能仅限于客户端所在网络可以访问到您的企业私有服务器才可以。例如,手机客户端,在离开公司网络的环境下,通常无法访问私有部署的为知笔记。但是已经离线的数据,则可以正常访问。也可以在离线环境下新建/修改笔记,并在回到公司后进行同步。

可以禁止客户端访问吗?

可以禁用客户端访问,确保数据只能通过网页版访问。一旦离开公司网络,就无法访问任何数据。

为知笔记服务端有时间限制吗?

没有。在限定的用户数量下,您可以永久免费使用。如果想要更多用户使用,请联系我们购买使用许可。

如何升级为知笔记服务端?

我们会经常更新docker镜像。您只需要下载更新docker镜像,然后重新启动docker镜像即可升级为知笔记服务端。无需更多额外操作。

下面是更新镜像命令行:

docker stop wiz
docker rm wiz
docker pull wiznote/wizserver:latest

更新完成后,重新使用前面启动镜像的命令,就可以完成服务端升级。你也可以使用 Watchtower 来自动更新 WizNote 的镜像:https://github.com/containrrr/watchtower

使用一段时间后,如果想要将数据从本地硬盘迁移到NAS或者云存储里面可以吗?

可以。包括数据库,笔记数据内容等,都可以完整的进行迁移。具体方案,请联系我们的客服。

如何进行数据备份?

您可以自己备份用户数据目录,或者将数据保存在NAS/云存储里面。如有需求,请联系我们的客服。

可以部署在路由器里面吗?

由于路由器通常CPU性能较低,内存也不够大,所以基本无法运行起来。

可以支持微信/微博/邮件收藏吗?

可以。点击这里查看使用方式

服务启动后新建笔记时间不正确

因为docker镜像默认时区不正确。因此需要进入docker里面手工设置一下时区,命令如下:

docker exec -it wiz /bin/bash
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
exit

上面的命令,会把docker里面的时区设置为东八区(北京时间)。如果需要设置成其他的时区,请自行修改上面的命令。具体时区的名称,可以搜索linux时区名称获取。

如果是linux,则可以通过在命令行里面加入命令,来自动获取当前时区:

-v /etc/localtime:/etc/localtime

完整命令行:实际使用是,请根据自己的情况调整其他参数,例如映射路径,端口映射等。

docker run --name wiz --restart=always -it -d -v  ~/wizdata:/wiz/storage -p 8088:80 -v  /etc/localtime:/etc/localtime wiznote/wizserver

如果是mac系统,则可以通过下面的命令行来自动设置时区(实际使用是,请根据自己的情况调整其他参数,例如映射路径,端口映射等。)

-e TZ=`ls -la /etc/localtime | cut -d/ -f8-9`

群晖NAS使用docker镜像注意问题
目录映射,请勿在群晖管理界面建立目录映射,这样目录权限会有问题。请ssh到NAS里面,然后按照前面linux方式建立数据目录。
群晖NAS无法直接使用80端口,请自行选择合适的端口。

为知笔记私有部署配置nginx反向代理和https的方法

https://www.wiz.cn/zh-cn/docker-https

为知笔记私有部署配置nginx反向代理和https的方法

   server {
        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;
        ...

ssl 证书配置

ssl_certificate /etc/nginx/server.crt;   改成你的证书的名字
ssl_certificate_key /etc/nginx/server.key;   改成你的证书的名字
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5:!EXP;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;

由于为知笔记私有服务需要动态获取您的域名以及客户端使用的协议,因此,您需要在您的nginx服务上面增加一些配置,让客户端使用的协议,能够传递给为知笔记服务。

配置自动获取协议方式

通过这种方式配置,客户端可以使用http或者https协议,为知笔记服务能够自动获取客户端使用的协议。

配置nginx 反向代理 proxy_set_header 。 在server里面,增加下面的配置:

server {
        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;
        ...
}

如果您的nginx 只有一个server 模块,或者其他的server模块没有特殊的需求,那么上面的配置,也可以统一配置到http模块中:

http {
       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;
       ...
}

如果您的nginx有多层,那么,您可能还需要额外的配置: 在http 模块中加入以下配置:

http {
    map $http_x_forwarded_proto $thescheme {
          default $scheme;
          https https;
    }
   ...
}

然后在server模块(或者http模块)里面,将前面配置中的proxy_set_header X-Forwarded-Proto $scheme;,替换为下面的代码:

proxy_set_header X-Forwarded-Proto $thescheme;

然后重新启动nginx服务。

强制使用https协议

如果您的nginx服务,并没有直接面向最终用户,而是在某些负载均衡/cdn后面,并且您的ssl证书是在这些负载均衡/cdn上面配置的,那么有可能会导致nginx无法正确获取客户端所使用的协议,从而导致无法将客户端使用的协议传递给为知笔记服务。在这种情况下,您可以修改nginx配置,强制通知服务使用https协议。

修改前面的配置,直接将proxy_set_header X-Forwarded-Proto $scheme修改成

  proxy_set_header X-Forwarded-Proto "https";

如果您需要给为知笔记私有部署配置HTTPS服务,则您应该自己增加一个nginx服务,并在这个nginx上面配置您的网站证书。具体nginx安装和启动方式,请自行搜索。

测试配置

在浏览器内输入:(注意是https协议,将your-server修改成您自己的服务器地址)

https://your-server/?p=wiz&c=endpoints

正常情况下,会返回一个json数据,检查第一个key wizas的值,应该是https开头。如果是http开头,则说明配置没有生效。

如果按照上面的方式,仍然无法正常使用https协议,请联系我们的客服。

docker 手动导入镜像

  • X86/64镜像下载链接:https://pan.baidu.com/s/13rkYTJrN46zLQSNYdOIf2w
    提取码:wakk
    (ARM系列的镜像来不及导出,没有保留)
  • 仅导入镜像,原有数据文件使用上文中映射到本地的文件夹即可,原本正在使用的容器可以不被需要,如果重新部署,镜像会新建新的资料文件夹

sudo docker save 镜像名或者镜像ID > /文件路径/镜像文件名.tar

docker load < /文件路径/镜像文件名.tar

如果使用 import 导入 save 产生的文件,虽然导入不提示错误,但是启动容器时会提示失败,会出现类似"docker: Error response from daemon: Container command not found or does not exist"的错误。


一沙一世界,一花一天堂。君掌盛无边,刹那成永恒。