如何使用 Docker 部署一个私有化的为知笔记

上一篇推荐过为知笔记,博主也正在使用,感觉十分不错,买了一年的会员尝试一下,也写了文章推荐,具体可以看:

【推荐】为知笔记:多平台全能笔记工具

今天给大家介绍,如何使用 Docker 部署一个私有化的为知笔记

图片[1]-如何使用 Docker 部署一个私有化的为知笔记-北忘山博客

为知笔记功能简介

您可以直接使用docker运行为知笔记服务端,不需要有任何IT知识。为知笔记私有部署Docker镜像,包含有完整的为知笔记服务端以及所需的各种环境,同时还包含了为知笔记网页版。您只需要启用为知笔记服务端,就可以利用自带的为知笔记网页版,在局域网内无限制使用为知笔记各种功能了。

  • 先安装 Docker 应用,获取镜像,启动即可
  • 运行成功后,通过域名访问,可自行创建团队、群组,注册用户
  • 免费版本,最多支持 5 个用户进行使用,不包含管理员账号
  • 授权付费版,价格为199 元/用户/年
  • 没有功能,使用时间等限制
  • 可以使用为知笔记官方桌面/手机客户端访问私有部署的为知笔记服务
  • 可以禁止客户端访问,保证所有数据只能在公司网络内访问

部署简单、灵活,且官方一直保持持续的更新。几行命令即可完成部署为知笔记的后台应用、Web 应用、数据库应用均打包在 Docker 镜像中,保证了环境一致性和标准化,可快速部署,持续更新。

  • 支持私有云部署
    • 支持阿里云、腾讯云,AWSMicrosoft Azure
  • 支持单点登录
    • 自动开户,可对接 ADHTTP、第三方APP等已有的帐号系统,保持最终用户登录体验的一致性,亦可对接已有的短信、邮件网关
  • 数据安全且权限可控
    • 分布式存储技术,宕机自动迁移,多重数据备份等,保证数据安全可靠;文档采用公开的 HTML 格式并进行ZIP压缩,方便数据迁移证书加密,数据密文保存;全链路SSL支持;后台可设置数据管理员、分享管理员,对分享群组可设置团队管理员和群组管理员,对笔记操作权限可划分为超级成员、编辑、作者、读者
  • 可视化数据分析
    • 统一的数据分析后台,支持对不同服务器的文档、附件、索引进行数据统计,还可对用户登录等行为进行阶段性的统计,便于评估与反馈推广效果

为知笔记容器部署

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

  • 系统需求
    • 操作系统:Windows / macOS / Linux
    • CPU:Intel/AMD x64 / ARM v7 (arm32)ARM 64
    • 内存:至少2G以上
  • 私有化部署 - HTTP
version: "3"

services:
  watchtower:
    restart: on-failure
    image: wiznote/wizserver
    container_name: wizserver
    ports:
      - "80:80"
      - "9269:9269/udp"
    volumes:
      - /data//wiz/wizdata:/wiz/storage
    environment:
      - TZ='Asia/Shanghai'
    networks:
      - wizserver_network

networks:
  wizserver_network:
  • 管理员账号
    • 默认管理员账号:admin@wiz.cn
    • 默认管理员密码:123456
图片[2]-如何使用 Docker 部署一个私有化的为知笔记-北忘山博客

为知笔记支持 SSL

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

  • SSL 证书配置

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


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_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_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 模块中加入以下配置。然后在server模块或者http模块里面,将前面配置中的proxy_set_header 字段替换为下面的代码,然后重新启动nginx服务即可。

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

   proxy_set_header X-Forwarded-Proto $thescheme;
   ...
}
  • 强制使用 https 协议

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

 proxy_set_header X-Forwarded-Proto "https";
  • 测试配置是否生效

在浏览器内输入 https://your-server/?p=wiz&c=endpoints 地址,正常情况下,会返回一个json数据,检查第一个key wizas的值,应该是https开头。如果是http开头,则说明配置没有生效

隐藏模块

点击下面的广告小卡片,打开隐藏内容!!
本内容还在测试中,待上线
© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容