使用minio和思源搭建私有的笔记系统

思源笔记

image

使用 思源笔记 作为自己的笔记软件,是出于以下几点:

  1. 思源笔记是已本地优先的笔记。避免了云端出现问题后,笔记无法使用的尴尬。
  2. 思源笔记可以采用自建的服务器来同步数据(支持S3协议和webdav),并采用端到端加密同步,个人笔记的一些重要、敏感内容不用担心泄密。
  3. 多层级的笔记管理方式。(这里吐槽印象笔记不支持多层级)
  4. 插件、主题、外挂等扩展性比较好。
  5. 用自建同步的话,价格是买断制,不用持续的支出。

自建minio服务

搭建服务器

弄一台服务器的方式有很多:

  1. oracle 的免费云服务器,一个账号2台,每台1G内存,默认50G硬盘(安装完系统剩下30G左右,另外免费账号一共是200G硬盘),带宽0.5G左右。用来同步数据绰绰有余了。

  2. 自己家里架设一台微电脑(最好是低压的CPU,低功耗)配合内网穿透用来同步数据也是绰绰有余了,内网穿透推荐natfrp

    image

  3. 阿里云/腾讯云买一台服务器,一般首年只有100不到。阿里云的话是新老优惠99一年,可以原价续费,2C2G3M的服务器。一个实名账号仅限购买一台。

搭建面板

服务器架设完成之后就是搭建面板,推荐使用1panel,很多软件都可以一键安装。按照安装文档安装面板就行,几乎是傻瓜式的一键安装。唯一需要注意的是,安全策略需要放开相关控制面板的端口。

已oracle云服务器为例,需要如下放开安全策略

image

安装minio

  1. 在1panel面板中选择minio进行安装

    image

  2. 配置好初始账号、密码和端口。

    image

  3. 安装好之后,有2种方式可以访问。一种是采用上一步配置的9000端口直接访问,这就需要在防火墙中添加2个端口为白名单。个人不太喜欢这种方式,所以前面使用OpenResty作为反向代理。这样不用对外暴露9000和9001端口了。

    image

配置存储桶

  1. 使用域名登录管理端

    image

  2. 创建存储桶,可以看到我这里已经有一个名为siyuan的桶用于同步笔记了

    image

  3. 一般来说输入桶的名称创建桶就可以了,但是如果要桶复制功能,需要额外开启versioning。后面会介绍使用这个功能来同步复制,使自己的数据更安全。

    image

  4. 创建一个key用于同步,一般来说默认创建就可以了(默认可以访问到所有桶)

    image

  5. 如果需要配置权限,就需要额外配置策略了。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Effect": "Allow",
    "Action": [
    "admin:*"
    ]
    },
    {
    "Effect": "Allow",
    "Action": [
    "kms:*"
    ]
    },
    {
    "Effect": "Allow",
    "Action": [
    "s3:*"
    ],
    "Resource": [
    "arn:aws:s3:::桶名称/*"
    ]
    }
    ]
    }
  6. 配置区域,想填什么填什么。

    image

配置思源笔记的S3同步

image

至此,思源笔记的同步就完成了,触发一下同步,就可以正常使用了。

备份

既然是自建服务,那相应的备份工作也是需要做好的。

  1. 周期性备份
  2. 异地备份
  3. 实时备份

1panel面板有计划任务,可以备份目录、备份应用等等。除此之外,也可以使用一些脚本来将本地目录打包上传到七牛、阿里oss等第三方作为备份。当然不定期的手动执行导出数据也是一种备份。

这里再介绍一种使用minio复制桶的功能,来做实时备份。

  1. 创建桶复制规则

    image

  2. 配置好另一个桶的信息

    image

建议是2个桶不要放在一个服务器上,不然万一服务器出现点问题2个桶数据都有可能丢失。