专栏首页运维之美如何使用 Docker 部署一个私有化的为知笔记

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

为知笔记: 私有部署 Docker 镜像,我们来了!

1. 为知笔记功能简介

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

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

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

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

为知笔记私有化部署

2. 为知笔记容器部署

需要事前安装好 Docker 相关的一系列工具

为知笔记服务端提供了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

为知笔记私有化部署

3. 为知笔记支持 SSL

为知笔记私有部署配置 https 的方法

如果您需要给为知笔记私有部署配置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开头,则说明配置没有生效。

4. 为知笔记参考链接

  • wiznote/wizserver
  • 为知笔记服务端 docker 镜像使用说明
  • 为知笔记私有部署配置 https 的方法
  • 如何将公有云个人笔记迁移至私有服务

本文转载自:「 Escape 的博客 」,原文:https://tinyurl.com/y6eep7cm,版权归原作者所有。欢迎投稿,投稿邮箱: editor@hi-linux.com。

本文分享自微信公众号 - 运维之美(Hi-Linux),作者:Escape

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-07-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用宝塔docker安装为知笔记私有部署

    之前使用的语雀客户端最近同步很有问题,遂弃坑,搞起来之前用的为知笔记。官方提供了docker镜像可以私有部署,配合宝塔docker安装非常方便。

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

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

    我是技术小白
  • 开发者如何快速搭建本地 Kubernetes 集群?Minikube趟坑记录

    为啥要在本地搭建 Kubernetes 集群?因为开发者可以在本地快速验证自己实现的功能,接口。众所周知,由于 Kubernetes 部署较为复杂,使得广大开发...

    JFrog杰蛙科技
  • 从零开始使用开源文档/Wiki软件 Outline(一)

    本篇文章将介绍一款适用于个人或团队场景使用的开源 文档/ Wiki 软件,Outline。

    soulteary
  • 【ChatOps系列】GitLab系列环境准备

    在搭建 GitLab 系列 ChatOps 时需要掌握一些基础的技能知识,整个 ChatOps 涉及到很多方面,我们至少需要掌握以下技能:

    thinkeridea
  • 两小时入门 Docker

    Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,于 2013 年 3 月以 Apache 2....

    芋道源码
  • 2小时入门Docker

    Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,于 2013 年 3 月以 Apache 2....

    Java团长
  • 必学必会 ● 1小时入门 Docker,让部署应用更快更简单

    Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,于 2013 年 3 月以 Apache 2....

    我的小碗汤
  • 两小时入门 Docker

    Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,于 2013 年 3 月以 Apache 2....

    蓝默空间
  • 两小时入门Docker

    Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,于 2013 年 3 月以 Apache 2....

    秃头哥编程
  • 两小时入门 Docker

    Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,于 2013 年 3 月以 Apache 2....

    好好学java
  • 如何用Amazon SageMaker 做分布式 TensorFlow 训练?(千元亚马逊羊毛可薅)

    TensorFlow 是广泛被用于开发大型深度神经网络 (DNN) 的开放源机器学习 (ML) 库,此类 DNN 需要分布式训练,并且在多个主机上使用多个 GP...

    机器之心
  • 001.Docker简介概述

    Docker最初是dotCloud公司的一个内部项目,诞生于 2013 年初,由google公司开源的Go语言开发。

    木二
  • 面向开发人员的Docker入门级实战,真香

    2013年“去IOE”这个话题在IT圈火热起来,它是由阿里巴巴提出的概念,意思是在IT架构中,去掉IBM的小型机、Oracle数据库、EMC存储设备,以自己在开...

    JavaQ
  • Kubernetes(二) 应用部署

    .example_responsive_1 { width: 200px; height: 50px; } @media(min-width: 290px)...

    草堂笺
  • 微服务[学成在线] day20:项目部署与持续集成(DevOps)

    DevOps 是 Development 和 Operations 两个词的缩写,引用百度百科的定义:

    LCyee
  • docker容器的概念

    软件应用(例如数据库服务器或 HTTP 服务器)通常部署到虚拟 机或物理主机的运行有一组服务的操作系统中软件应用受运行环境限制,操作系统的任何更新或补丁都可能会...

    胡齐
  • Docker

    百度百科这样说道:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也...

    小闫同学啊
  • Docker+Jenkins+GIT+Tomcat实战持续化集成

    | Docker-server | 172.20.6.20 |Docker宿主机

    KaliArch

扫码关注云+社区

领取腾讯云代金券