前言

为知笔记前段时间突然发布了docker镜像,用户可以自己用docker镜像搭建自己的为知笔记,搭建的笔记可以支持网页访问客户端访问,还是挺让人动心的,然后照着教程搭建了一下,这段时间有点时间,升级了一下然后写个教程总结一下。

具体步骤

安装

首选服务器安装docker,官方文档关于win,mac写的挺详细的,Linux用户自行安装把,在这不再赘述。

安装docker之后,需要用命令进行创建容器。

docker run --name wiz -it -d -v  ~/wizdata:/wiz/storage -p 3000:80 -e SEARCH=true wiznote/wizserver

具体各个参数

~/wizdata 这是用于保存数据的文件夹,你可以自定义,将来迁移数据保存这个文件夹就行。
3000端口可以设置称自己定义,SEARCH=true代表你开启笔记的全文检索功能,笔记的搜索功能是用java实现的,占用内存比较高,内存小的机子慎用吧,不想开启运行时去掉就行。

然后经过等待,就可以登录,初次登录账号是admin@wiz.cn,密码是123456

网址访问http:你的ip:3000即可登录。
比较诟病的一点是,一开始的docker版本登录账号可以修改,现在起码博主在写这篇博客时的这个版本,账号就不能修改,比较二了就。不过这个版本支持https,也算是好事。

升级

docker stop wiz
docker rm wiz
docker pull wiznote/wizserver:latest
docker run --name wiz -it -d -v  ~/wizdata:/wiz/storage -p 3000:80 -e SEARCH=true wiznote/wizserver

只要 ~/wizdata保存的没问题,数据就能在新版本中访问。

配置反向代理

我是用的nginx,所以只有nginx的配置文件了。

 server
    {
        server_name wiznote.denry.cn; 
         location / {            
         proxy_pass           http://localhost:3000;            
         proxy_set_header   Host             $host;            
         proxy_set_header   X-Real-IP        $remote_addr;             
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         }
    #REWRITE-END
    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }
    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
         proxy_pass http://127.0.0.1:3000;
        error_log off;
        access_log off;
    }
   location ~ .*\.(js|css)$ {
             proxy_pass http://127.0.0.1:3000;
     }
}

需要注意的地方

最下面的两个location这是把访问当前域名的请求,也反向代理到笔记的运行的ip:端口号,没这两个配置,就会导致网站没样式,笔记插入的图片也会显示不正常。

配置https

https官方文档在此,一开始踩了一些坑,http访问没问题,https访问就出错,表现在新建笔记失败,新建笔记失败那还玩啥,查了查查到了官方文档。
需要修改如下:
如果您的nginx有多层,那么,您可能还需要额外的配置: 在http 模块(nginx.conf里面)中加入以下配置:

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

网站对应的conf文件

server
    {
    listen 80;
       listen 443 ssl http2;
       server_name wiznote.denry.cn; 
    location / {            
        proxy_pass           http://localhost:3000;            
        proxy_set_header   Host             $host;            
        proxy_set_header   X-Real-IP        $remote_addr;  
        proxy_set_header X-Forwarded-Proto $thescheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto "https";
         }
    #REWRITE-END
     if ($server_port !~ 443){
        rewrite ^(/.*)$ https://$host$1 permanent;
    }
    #HTTP_TO_HTTPS_END
    ssl_certificate    /www/server/panel/vhost/cert/wiznote.denry.cn/fullchain.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/wiznote.denry.cn/privkey.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    error_page 497  https://$host$request_uri;
    
    

    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }
    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
         proxy_pass http://127.0.0.1:3000;
        error_log off;
        access_log off;
    }
   location ~ .*\.(js|css)$ {
             proxy_pass http://127.0.0.1:3000;
         }
}

除了证书,就是比http加了多加了两条,修改了nginx.conf然后https就可以完美使用了,新建笔记失败也消失了。完美运行,很好用了。

结语

为知笔记算是国内的做的不错的,定价也很低,的确很良心了。就是贴吧现在一堆bug反应没人管,不充值会员也没办法同步笔记比较6,docker版本现在5用户以下免费,感兴趣的可以去看看官方定价,并且使用网页微信收藏需要购买许可。
还有就是运行吃内存,是隔壁leanote好几倍了,并且markdown支持也不好。

不过官方免费放出来让你用了,要啥自行车,日常用一段时间在做补充。

最后修改:2019 年 11 月 10 日
如果觉得我的文章对你有用,请随意赞赏