基于S3存储的笔记应用Notea

news2024/11/19 9:22:51

在这里插入图片描述

什么是 Notea ?

Notea 是存储在 S3 上的自托管笔记应用程序,Notea 不需要数据库。笔记存储在 AWS S3 存储桶或兼容的 API 中。这意味着您可以使用 MinIO(自托管)、阿里云 OSS(如 AWS S3)或 NAS 来存储您的数据。

什么是 S3 存储

S3Amazon Web Services (AWS) 提供的一项服务, 它通过基于 RESTful API 的接口提供对象存储。

Notea支持多种对象存储,包括: MinIOAmazon S3Aliyun OSSTencent COSOracle Object Storage ExoscaleCloudflare R2 ,具体的设置可以参考官方的示例:https://github.com/notea-org/notea/tree/main#storage

什么是 MinIO ?

MinIO是一个用Golang开发的基于Apache License v2.0开源协议的对象存储服务。其兼容亚马逊 S3云存储服务接口,非常适合于存储大容量非结构化的数据。

下面的安装中,老苏选择了 MinIO作为 Notea 的存储桶

安装

在群晖上以 Docker 方式安装。

老苏选择的是main 而不是 latest,因为 latest 对应的版本为 0.3.6,已经有两年没有更新了;

撰写本文时,main对应的版本是 0.4.0-alpha

在这里插入图片描述

docker cli 安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 notea 和 子目录
mkdir -p /volume2/docker/notea/data

# 进入 notea 目录
cd /volume2/docker/notea

# 运行 MinIO 容器
docker run -d \
   --restart unless-stopped \
   --name notea-minio \
   --entrypoint sh \
   -v $(pwd)/data:/data \
   -e MINIO_ACCESS_KEY=Q3AM3UQ867SPQQA43P2F \
   -e MINIO_SECRET_KEY=zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG \
   minio/minio \
   -c 'mkdir -p /data/notea && mkdir -p /data/notea-test && minio server /data'
可变
MINIO_ACCESS_KEY访问密钥
MINIO_SECRET_KEY秘密密钥

【注意 】:MINIO_ACCESS_KEYMINIO_SECRET_KEY 已经被弃用,取而代之的是 MINIO_ROOT_USERMINIO_ROOT_PASSWORD。这两个变量的作用和前两个一样,只是名字不同。

如果 MinIO 能正常启动了,接下来就可以运行 Notea

# 运行 Notea 容器
docker run -d \
   --restart unless-stopped \
   --name notea-webapp \
   --link notea-minio:minio \
   -p 3320:3000 \
   -e STORE_ACCESS_KEY=Q3AM3UQ867SPQQA43P2F \
   -e STORE_SECRET_KEY=zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG \
   -e STORE_BUCKET=notea \
   -e STORE_END_POINT=http://minio:9000 \
   -e STORE_FORCE_PATH_STYLE=true \
   -e PASSWORD=notea \
   -e COOKIE_SECURE=false \
   cinwell/notea:main
可变
STORE_ACCESS_KEYMinIO的访问密钥
STORE_SECRET_KEYMinIO的秘密密钥
STORE_BUCKETMinIO的存储桶名称
STORE_END_POINTMinIO的访问地址
PASSWORD登录网页的密码
COOKIE_SECURE如果网站不是https,需要将其设置为 false

更多的环境变量请参考官方文档:https://github.com/notea-org/notea/tree/main#environment-variables

docker-compose 安装

Notea 涉及到两个镜像,比较简单的安装方式是编排 docker-compose.yml 文件,然后用 docker-compose up -d 命令一键启动

将下面的内容保存为 docker-compose.yml 文件

version: '3'

services:
  minio:
    image: minio/minio
    container_name: notea-minio
    restart: unless-stopped
    #ports:
    #  - 9000:9000
    volumes:
      - ./data:/data
    environment:
      MINIO_ACCESS_KEY: Q3AM3UQ867SPQQA43P2F
      MINIO_SECRET_KEY: zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG
    entrypoint: sh
    command: -c 'mkdir -p /data/notea && mkdir -p /data/notea-test && minio server /data'
  
  notea:
    image: cinwell/notea:main
    container_name: notea-webapp
    restart: unless-stopped
    ports:
      - 3320:3000
    environment:
      STORE_ACCESS_KEY: Q3AM3UQ867SPQQA43P2F
      STORE_SECRET_KEY: zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG
      STORE_BUCKET: notea
      STORE_END_POINT: http://notea-minio:9000
      STORE_FORCE_PATH_STYLE: "true"
      PASSWORD: notea
      COOKIE_SECURE: "false"
      BASE_URL: http://192.168.0.197:3320/
    depends_on:
      - minio

然后执行下面的命令

# 新建文件夹 notea 和 子目录
mkdir -p /volume2/docker/notea/data

# 进入 notea 目录
cd /volume2/docker/notea

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:3320 就能看到登录界面

按前面的设置,PASSWORD设为了 notea

主界面

中文

点左下角的齿轮,进入 Settings

在这里插入图片描述

Settings --> Basic --> Language,选择 简体中文

即时生效,不需要保持或者刷新页面

新建页面

+ 号新建页面

在这里插入图片描述

文档支持 markdown 格式

支持分享

每日笔记

可以新建 每日笔记

和页面的区别在于默认以日期为文件名

在这里插入图片描述

笔记文件在 FileStation 中的存储

最后来张官方效果图,看起来在移动端上,显示效果也还不错

参考文档

QingWei-Li/notea: 📒 Self hosted note taking app stored on S3
地址:https://github.com/QingWei-Li/notea

Notea - Self-hosted note-taking app stored on S3 | AKA a self-hosted Notion alternative : selfhosted
地址:https://www.reddit.com/r/selfhosted/comments/n0jacf/comment/gw89iyo/?utm_source=share&utm_medium=web2x&context=3

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/826216.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot 实现数据加密脱敏(注解 + 反射 + AOP)

SpringBoot 实现数据加密脱敏(注解 反射 AOP) 场景:响应政府要求,商业软件应保证用户基本信息不被泄露,不能直接展示用户手机号,身份证,地址等敏感信息。 根据上面场景描述,我们…

功率放大器的种类有哪三种类型

功率放大器是一种能将输入信号转换为更高功率输出的电子设备。在电子工程和音频领域中,功率放大器通常被分为三种类型:A类、B类和AB类。下面安泰电子将详细介绍这三种类型的功率放大器及其特点。 A类功率放大器 A类功率放大器是一种基本的线性功率放大器…

# windows安装gcc、g++、pthread

目录 windows安装gcc、g、pthreadSTEP 1 :下载mingw文件STEP 2:安装.exeSTEP 3:环境变量配置STEP 4:确认MinGw的安装成功STEP 5:安装gccSTEP 6:安装gSTEP 7:查看gccSTEP 8:安装pthre…

城市内涝 | 复杂城市排水管网系统快速建模、管网水力性能专题图制作、城市内涝一维二维耦合模拟、海绵城市关键控制指标计算

随着计算机的广泛应用和各类模型软件的发展,将排水系统模型作为城市洪灾评价与防治的技术手段已经成为防洪防灾的重要技术途径。本次培训将聚焦于综合利用GIS及CAD等工具高效地进行大规模城市排水系统水力模型的建立,利用SWMM实现排水系统水力模拟。讲解…

怎么学习CSS相关技术知识? - 易智编译EaseEditing

学习CSS技术是前端开发中的重要一环,它用于控制网页的样式和布局,使网页更加美观和易于使用。以下是学习CSS技术的几个方面: 基本语法和选择器: 了解CSS的基本语法,学习如何使用选择器来选择HTML元素并应用样式。 样…

elementUi el-radio神奇的:label与label不能设置默认值

问题:最近项目遇到一个奇葩的问题:红框中列表的单选按钮无法根据需求设置默认选中,但是同样是设置开启状态的单选框可以设置默认状态 原因:开始同样是和开启/关闭状态一样也把红框中列表的默认值设置为数字模式,但是由于后台返回值、与label绑定值的类型不同导致设置红框…

问道管理:补仓什么意思?怎么补仓可以降低成本?

补仓这个术语我们在理财出资中经常听到,例如基金补仓,股票补仓。那么,补仓什么意思?怎样补仓能够降低成本?问道管理为我们预备了相关内容,以供参阅。 补仓什么意思? 股票补仓是指出资者在某一只…

机房断网断电监测网关支持远程告警

RTU5028E网络故障监测终端是一款功能强大且方便实用的设备,集合了断网、断电、网线故障报警功能。它支持同时监测多达7台网络设备,可以帮助用户快速定位远程网络设备离线的原因。此外,它还具备自动重启和远程重启网络设备的功能,为…

ODOO16运输费用摊入采购成本,总账和收发表一致?

产品的采购成本准确的计算是怎样的呢?在《会计准则》中有规定: “第三章 计量 ... 第六条 存货的采购成本,包括购买价款、相关税费、运输费、装卸费、保险费以及其他可归属于存货采购成本的费用。” 可见存货的采购成本包含的信息是很多&am…

【java】对象和类

java对象和类 面向对象对象和类属性方法静态包构建对象 面向对象 所谓的面向对象,其实就是分析问题时,以问题所涉及到的事或物为中心的分析方式。 比如在写小学作文里《美好的一天》,一种写法是记录几点起床,几点吃饭&#xff0…

GPTCache 悬赏令!寻找最佳捉虫猎手,豪华赏格等你来拿!

号外号外!GPTCache 全宇宙寻找最佳捉虫猎手!捉虫数量越多,奖品越丰厚! GPTCache 是为 AIGC 应用搭建的全新缓存,典型的应用场景是大模型,它采用语义缓存技术,能够存储 LLM 响应,从而…

将Visio和Excel导出成没有白边的PDF文件

1、VISIO如何无白边导出pdf格式 在使用Latex时,要导入矢量图eps格式。但是VISIO无法输出eps格式,这就需要将其导出为pdf。但是导出pdf时,往往会有大量的白边。VISIO无白边导出pdf格式的方法如下: 1.文件——开发工具——显示sha…

物联网||不一样的点灯实验(2)|通过使用CMSIS库函数实现点灯实验-学习笔记(12)

文章目录 通过使用CMSIS库函数实现点灯实验1 如何使用CMIS库2 如何利用CMSIS库操作IO 两种实现方法的比较课后作业:完整代码:LED.C:test.c:led.h: 通过使用CMSIS库函数实现点灯实验 1 如何使用CMIS库 #####如何使用此驱动#####[. .](#)启用GPIO AHB时钟使用以下函数…

使用条件访问自动执行访问决策

由于远程用户更容易受到网络攻击,因此需要实施严格的安全措施,例如多因素身份验证 (MFA) 以防止数据泄露。但是,应用严格的组织范围的访问策略(如 MFA)可能会对用户体验产生不利影响。ADSelfSer…

ICCV 2023 | Prior真的重要吗?IST-Net:更强更快的category-level物体位姿估计模型

​ 论文链接: https://arxiv.org/abs/2303.13479 代码链接: https://github.com/CVMI-Lab/IST-Net 01.背景介绍 Category-level 的物体姿态估计旨在让模型学习到类别独有的特征,从而能够在面对未见过的同类别物体时展现出良好的泛化性。为了…

私人网盘搭建(利用阿里云oss搭建)

1、个人网盘场景说明 个人网盘架构 使用ECS安装Cloudreve提供网盘服务,OSS提供存储服务。当用户使用个人网盘时,访问部署Cloudreve ECS的公网IP地址即可完成文件上传、下载、删除、分享等服务。 什么是Cloudreve Cloudreve可帮助您即刻构建出兼备自用…

下载vue-router的环境变量与创建路由包

目录 一、查看路由是否存在 二、vue路由介绍 三、操作步骤 (一)查看vue路由的版本号并记住 (二)vscode里面下载 一、查看路由是否存在 1.点击package.json文件查看里面是否有路由router的依赖,这里面没有发现&a…

Spring框架——AOP配置文件方式

目录 Spring框架的核心功能之AOP技术 AOP的概述 Spring的AOP的简单介绍 AOP概述 什么是AOP? Spring底层AOP实现 Spring的AOP的简介 AOP开发的相关术语 Spring框架的AOP的底层实现 JDK的动态代理(代码了解,理解原理) CGLIB的代理技…

Unity-数据持久化-PlayerPrefs

一、数据持久化概念 数据持久化就是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称。 简单来说:就是将游戏数据存储到硬盘,将硬盘中数据读取到游戏中,也就是传统意义上的存盘。 是Unity提供的可以…

软考A计划-系统集成项目管理工程师-项目合同管理-上

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 👉关于作者 专注于Android/Unity和各种游…