收起左侧

开源便签-笔记Memos

5
回复
1122
查看
[ 复制链接 ]

1

主题

6

回帖

0

牛值

江湖小虾

2025-4-29 15:42:14 显示全部楼层 阅读模式

因为现在是多修系统,手机是米,电脑是mac,win双持,平板是ipad。平常都是这里记一点,那里记一点。当我平板想用手机备忘录(便签,笔记)的时候,总是要使用QQ,微信之类的软件来中转,真的很恶心。于是我找了多种开源笔记软件,尝试去替换掉系统本身的便签,备忘录。

那么我了解了思源笔记,joplin,memos之后,我率先尝试了joplin,编辑不够直观。一些字符会被转译,他确实是一个好的笔记软件,但是跟我想要的便签差的还是太远,我想要的是随记。

那么最终了解到了这么一款使用Golang开发的笔记软件memos。界面优美,有开源的生态,通过使用第三方软件可以做到全端互通。

CleanShot2025-04-29at15.00.50@2x.png

接下来就教大家怎么部署

docker run -d --name memos -p 5230:5230 -v ~/.memos/(本地目录:用的时候记得删除括号内容):/var/opt/memos neosmemo/memos:stable (--driver mysql --dsn 'root:password@tcp(localhost)/memos_prod' 假如你有自行部署数据库,不想使用默认的sqlite
,那么就可以添加上括号内内容,删除中文,支持mysql和postgresql)

也可以使用docker-compose一键部署

version: "3.0"
services:
  memos:
    image: neosmemo/memos:stable
    restart: always
    depends_on:
      - db
    ports:
      - 5230:5230
    environment:
      - MEMOS_DRIVER=postgres
      - MEMOS_DSN=user=memos password=secret dbname=memosdb host=db sslmode=disable

  db:
    image: postgres:16.1
    restart: unless-stopped
    volumes:
      - "./database:/var/lib/postgresql/data/"
    environment:
      POSTGRES_USER: memos
      POSTGRES_PASSWORD: secret
      POSTGRES_DB: memosdb

到这里就可以使用ip地址:5230来访问memos的网页版了。初次登录输入的用户密码会作为管理员账号

外网ddns访问那么可能还需要添加一个nginx反代,自行配置ssl证书文件,nginx模板我会丢二楼。

手机 android,ios 可以到应用商店下载moe memos,但是他现在的逻辑有些不合常理,网页版是可以选择双击编辑,app端是默认长按编辑。

电脑 linux mac,win都可以使用一个聚合工具Ferdium来使用。

全端都需要服务端memos运行,将地址填入,登录即可。

与手机和电脑自带备忘录差别很小,转移成本很低。

但是,memos单个便签的长度上限被设计为了8192。在写一些长一些的便签时会捉襟见肘。

终于在第三次遇到这个问题时我难受住了,我寻思不管是mysql还是sqlite还是postgresql都支持存储几M的数据。怎么会给我限制到8192的,于是我拉下来源码,当你没有特意配置的时候,他的长度是8192。

CleanShot2025-04-29at15.27.11@2x.png

CleanShot2025-04-29at15.27.33@2x.png

那么那里可以修改他的配置呢?

一种是通过接口,使用admin账号来修改配置。

CleanShot2025-04-29at15.29.06@2x.png

但是我使用它的前端又没有找到这个配置选项。我也不会写前端代码😭😭😭。那就只能再找,那么一会儿啊就找到了,第二种方法。

CleanShot2025-04-29at15.37.36@2x.pngmemos的持久化配置是从数据库拉出来的,他所存储的表就是这张system_setting,那么直接关闭memos,打开数据库,把表system_setting的ContentLengthLimit的值从8192直接后面添加三个0,长度直接提升到8M,这下一个便签就可以写一本小说了。

收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

1

主题

6

回帖

0

牛值

江湖小虾

2025-4-29 15:49:53 楼主 显示全部楼层
#模板来自群晖反代
server {
    listen 8230 ssl default_server;
    listen [::]:8230 ssl default_server;

    server_name _;

    ssl_certificate          你滴秘钥;
    ssl_certificate_key      你滴key;

    add_header Strict-Transport-Security "max-age=15768000; includeSubdomains; preload" always;

    proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;

    location / {

        proxy_connect_timeout 60;

        proxy_read_timeout 60;

        proxy_send_timeout 60;

        proxy_intercept_errors off;

        proxy_http_version 1.1;

        proxy_set_header        Host            $http_host;

        proxy_set_header        X-Real-IP            $remote_addr;

        proxy_set_header        X-Forwarded-For            $proxy_add_x_forwarded_for;

        proxy_set_header        X-Forwarded-Proto            $scheme;

        proxy_pass http://localhost:5230;

    }

}

0

主题

2

回帖

0

牛值

江湖小虾

2025-5-24 19:10:53 显示全部楼层
我想知道你用的什么浏览器 或者 应用

1

主题

6

回帖

0

牛值

江湖小虾

2025-6-4 09:34:57 楼主 显示全部楼层

ferdium,chorme

1

主题

13

回帖

0

牛值

江湖小虾

2025-7-2 16:47:05 显示全部楼层

请问远程访问,需要什么代理吗

1

主题

6

回帖

0

牛值

江湖小虾

2025-12-4 13:48:37 显示全部楼层

小白不知道怎么修改问了DS,以下是答案

直接修改数据库里 system_setting 表的 ContentLengthLimit 值,思路是对的,但仅修改这一处还不够。因为当Memos通过 MEMOS_MAX_CONTENT_LENGTH 环境变量启动时,这个环境变量会覆盖数据库里这个配置项的值。
所以,要完全生效,你需要在两个地方都进行修改。下面这张表总结了这两种方法的区别和完整操作流程:
修改位置
目的与作用
是否必须

  1. 数据库 system_setting 表
    修改Memos核心程序读取并缓存到内存中的配置基准值。
    必须
  2. 容器环境变量 (docker-compose.yml)
    在Memos启动时,覆盖数据库中的旧值,确保新限制生效。
    必须
    🛠 具体操作步骤
    第一步:停止Memos服务为了避免数据冲突,先停止正在运行的服务。
    docker-compose down
    第二步:修改数据库配置
    连接到你的PostgreSQL数据库容器:
    docker-compose exec db psql -U memos -d memosdb
    执行以下SQL命令,将 ContentLengthLimit 的值从 8192 修改为 8192000 (即约8MB):
    UPDATE system_setting
    SET value = '8192000'
    WHERE name = 'ContentLengthLimit';
    输入 \q 并按回车退出数据库命令行。
    第三步:修改 docker-compose.yml 文件在你的 docker-compose.yml 文件中,为 memos 服务添加 MEMOS_MAX_CONTENT_LENGTH 环境变量。修改后的 environment 部分应如下所示:
    environment:
    MEMOS_DRIVER=postgres
    MEMOS_DSN=user=memos password=secret dbname=memosdb host=db sslmode=disable
    增加以下一行,值与你数据库里设置的一致
    MEMOS_MAX_CONTENT_LENGTH=8192000
    第四步:重启服务并验证
    启动服务:
    docker-compose up -d
    验证是否生效:
    最直接的方法是尝试创建一个长度超过8KB的便签。
    或者,进入Memos容器的bash,查看当前生效的环境变量值:
    docker-compose exec memos bash
    进入容器后执行
    env | grep MEMOS_MAX_CONTENT_LENGTH
    应该会输出 MEMOS_MAX_CONTENT_LENGTH=8192000。
    ⚠️ 重要提醒
    修改顺序:务必先停止服务再修改数据库,修改完成后再重启服务。直接在运行中的服务后端修改数据库可能导致配置不同步。
    双重修改:两个地方必须一起修改才能保证新限制稳定生效。只改数据库,重启后会被旧的环境变量覆盖;只改环境变量,下次从数据库加载配置时可能被重置。
    数值设置:你可以根据需要将 8192000 调整为任何数值(例如 16777216 表示16MB)。
    如果你在操作中遇到问题,或者想进一步了解如何优化大文本的存储性能,可以随时告诉我。

直接修改数据库里 system_setting 表的 ContentLengthLimit 值,思路是对的,但仅修改这一处还不够。因为当Memos通过 MEMOS_MAX_CONTENT_LENGTH 环境变量启动时,这个环境变量会覆盖数据库里这个配置项的值。

所以,要完全生效,你需要在两个地方都进行修改。下面这张表总结了这两种方法的区别和完整操作流程:

修改位置 目的与作用 是否必须
1. 数据库 system_setting 修改Memos核心程序读取并缓存到内存中的配置基准值。 必须
2. 容器环境变量 (docker-compose.yml) 在Memos启动时,覆盖数据库中的旧值,确保新限制生效。 必须

🛠 具体操作步骤

第一步:停止Memos服务
为了避免数据冲突,先停止正在运行的服务。

docker-compose down

第二步:修改数据库配置

  1. 连接到你的PostgreSQL数据库容器:
    docker-compose exec db psql -U memos -d memosdb
    
  2. 执行以下SQL命令,将 ContentLengthLimit 的值从 8192 修改为 8192000 (即约8MB):
    UPDATE system_setting
    SET value = '8192000'
    WHERE name = 'ContentLengthLimit';
    
  3. 输入 \q 并按回车退出数据库命令行。

第三步:修改 docker-compose.yml 文件
在你的 docker-compose.yml 文件中,为 memos 服务添加 MEMOS_MAX_CONTENT_LENGTH 环境变量。修改后的 environment 部分应如下所示:

environment:
  - MEMOS_DRIVER=postgres
  - MEMOS_DSN=user=memos password=secret dbname=memosdb host=db sslmode=disable
  # 增加以下一行,值与你数据库里设置的一致
  - MEMOS_MAX_CONTENT_LENGTH=8192000

第四步:重启服务并验证

  1. 启动服务:
    docker-compose up -d
    
  2. 验证是否生效:
    • 最直接的方法是尝试创建一个长度超过8KB的便签。

    • 或者,进入Memos容器的bash,查看当前生效的环境变量值:

      docker-compose exec memos bash
      # 进入容器后执行
      env | grep MEMOS_MAX_CONTENT_LENGTH
      

      应该会输出 MEMOS_MAX_CONTENT_LENGTH=8192000

⚠️ 重要提醒

  • 修改顺序:务必先停止服务再修改数据库,修改完成后再重启服务。直接在运行中的服务后端修改数据库可能导致配置不同步。
  • 双重修改两个地方必须一起修改才能保证新限制稳定生效。只改数据库,重启后会被旧的环境变量覆盖;只改环境变量,下次从数据库加载配置时可能被重置。
  • 数值设置:你可以根据需要将 8192000 调整为任何数值(例如 16777216 表示16MB)。

如果你在操作中遇到问题,或者想进一步了解如何优化大文本的存储性能,可以随时告诉我。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则