diff --git a/.obsidian/plugins/rss-reader/data.json b/.obsidian/plugins/rss-reader/data.json index e479b9bf..28e7c532 100644 --- a/.obsidian/plugins/rss-reader/data.json +++ b/.obsidian/plugins/rss-reader/data.json @@ -979,28 +979,6 @@ "hash": "6fa18edda739a671cfee1973e7db9111", "highlights": [] }, - { - "title": "Windows 远程控制的最佳方案,我只服微软。但还有一个问题…", - "description": "作为 Windows 操作系统的开发者,微软提供了整套跨平台的远程控制方案,就是 Windows App! 微软在起名这方面,还是非常随意的。 顾名思义,Windows App 是一个叫做 Windo ", - "content": "\n

作为 Windows 操作系统的开发者,微软提供了整套跨平台的远程控制方案,就是 Windows App!

\n\n\n\n
\"Windows
\n\n\n\n

微软在起名这方面,还是非常随意的。

\n\n\n\n

顾名思义,Windows App 是一个叫做 Windows 的 App,是微软推出的一款远程控制工具,可以用来在各种设备上,远程控制另外一台 Windows 电脑。

\n\n\n\n

支持的设备有:

\n\n\n\n\n\n\n\n

是的,目前没有 Linux,可能是唯一的遗憾了。

\n\n\n\n

Windows App 能够提供接近于本地电脑的体验,尤其在网络状况良好的情况下。

\n\n\n
\n
\"Windows
青小蛙常用的几台电脑:物理游戏机和两台虚拟机
\n\n\n

但是,青小蛙并不能离开家后,再次远程控制这些电脑,因为…青小蛙没有公网IP。

\n\n\n\n

公网IP是多少人的心头好啊

\n\n\n\n

没有,终究就是没有,你也不能去抢啊。

\n\n\n\n

如果你会一些技术、想折腾、不怕麻烦,可以自己去买一台有公网IP的云服务器,使用 frp 等工具实现内容穿透。

\n\n\n\n

但,既然都掏钱买云服务器了,能不能掏钱买内网穿透服务呢…

\n\n\n\n

俗话说:世界加钱可及。

\n\n\n\n

青小蛙就以小众软件多次介绍过的专业内网穿透服务网云穿为例,来解决这个问题吧:

\n\n\n\n

如何在外远程控制家中的电脑

\n\n\n\n

注册

\n\n\n\n
    \n
  1. 注册网云穿:https://login.xiaomy.net/#/
  2. \n\n\n\n
  3. 开通试用隧道:https://xiaomy.net/pay/?type=0
  4. \n
\n\n\n\n
\"Windows
\n\n\n\n

配置隧道

\n\n\n\n

进入网云穿的隧道管理界面,找到你的线路,点击配置,输入:

\n\n\n\n\n\n\n\n

然后点击确定,刷新页面后,看到状态显示正常,就好啦。

\n\n\n\n
\"Windows
\n\n\n\n

成功之后,会看到外网端口和域名:

\n\n\n\n
\"Windows
\n\n\n\n

下载&安装客户端

\n\n\n\n

这个时候,下载网云穿的 Windows 客户端,用于在你的电脑和网云穿的服务器间,创建一条隧道。

\n\n\n\n\n\n\n\n

对于普通用户,不建议使用服务版,因为没有界面,管理起来不够方便:

\n\n\n\n
\"Windows
\n\n\n\n

无需安装,直接解压缩,运行网云穿内网穿透.exe就行了:

\n\n\n\n
\"Windows
第一次运行后,它会在桌面创建一个快捷方式。
\n\n\n\n

使用账号进行登录,就可以看到刚刚配置的隧道了,点击启动:

\n\n\n\n
\"Windows
\n\n\n\n

复制映射地址,就好啦,全部配置好啦。

\n\n\n\n

哦,还要开通 Windows 远程桌面功能

\n\n\n\n

正常情况下,需要专业版 Windows 才能使用远程桌面功能,但是,这个事情青小蛙也折腾过:

\n\n\n\n\n\n\n\n

跟着里面的教程,就可以在很多预装的 Windows 家庭版中使用远程桌面了。

\n\n\n\n

在系统 > 远程桌面 中,打开它:

\n\n\n\n
\"Windows
\n\n\n\n

\"🎉\"

\n\n\n\n

正式使用

\n\n\n\n

现在,就可以出门,右转啦。记得把家里的电脑打开 \"😂\"

\n\n\n\n

此时,在 Windows App 中,添加一台电脑,输入刚刚网云穿提供的映射地址:外网端口:

\n\n\n\n
\"Windows
\n\n\n\n

开始连接

\n\n\n\n

如果看到这个证书提示,就是正版无疑了 \"😂\"

\n\n\n\n
\"Windows
\n\n\n\n

点击继续,你就会看到熟悉的 Windows 界面,和在家里一模一样啦。

\n\n\n\n

但是,千万不要在此时关闭网云穿程序本身,否则会立即断开。

\n\n\n\n

开机启动

\n\n\n\n

如果你不想每次都手动打开隧道,或者想要完全的无人值守,那么只需要编辑隧道,设置开机自启就行啦:

\n\n\n\n
\"Windows
\n\n\n\n

远程开机

\n\n\n\n

一个小技巧:针对 Windows 电脑,设置通电自动开机,再配合智能插座,就低成本实现了远程开机这件事。

\n\n\n\n
\n\n\n\n

介绍完啦,内网穿透也不难折腾。

\n\n\n\n

两个活动

\n\n\n\n

限时活动,史上最低!

\n\n\n\n

活动链接:http://xiaomy.net/pay/?type=1

\n\n\n\n

活动一:永久版单映射限时买一送一,到手2条永久,赠送同等带宽,且每条都是独享带宽,不限流量~最高支持35Mbps永久

\n\n\n\n

活动二:永久版多映射套餐,活动价格之外再加送一条永久,可同时映射内网多个服务

\n\n\n\n

联系售后妹子发送小众软件参与,抢占活动名额,先到先得:

\n\n\n
\n
\"Windows
\n\n\n

充值打折

\n\n\n\n\n\n\n\n

此活动仅30个名额,需联系售后参与充值活动!

\n\n\n\n

《永久特价买一送一的活动,6Mbps以上的套餐才可以参与此活动进行打折!》

\n

[ 点击前往获取链接 ]


", - "category": "Windows", - "link": "https://www.appinn.com/wangyc-windows-remote/", - "creator": "青小蛙", - "pubDate": "Wed, 09 Jul 2025 10:35:50 +0000", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "zh", - "folder": "资讯", - "feed": "小众软件", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "88576d3b555645965579af10c7b190be", - "highlights": [] - }, { "title": "微软自动奖励 – 一个 Chrome 插件,把 Bing 积分刷到 1000 多分了", "description": "微软自动奖励(Microsoft Automatic Rewards)是一个 Chrome 插件,通过自动完成每日任务获取 Bing 积分。安装插件之后,只需要登录 Microsoft Rewards ", @@ -1023,28 +1001,6 @@ "hash": "520f9be2227d5727b8de63bbe0f5d6ee", "highlights": [] }, - { - "title": "Backlog.md – 在 git 仓库中用 .md 生成并管理项目看板", - "description": "Backlog.md 是一款专为使用 git 的开发者设计的本地项目看板工具,拥有命令行与网页版两种操作模式。 它的思路很直接:每个任务都用一个 .md 文件保存在 git 仓库里,所有进度、分配、归 ", - "content": "\n

Backlog.md 是一款专为使用 git 的开发者设计的本地项目看板工具,拥有命令行与网页版两种操作模式。

\n\n\n\n

它的思路很直接:每个任务都用一个 .md 文件保存在 git 仓库里,所有进度、分配、归档都靠 git 协作同步。没有云端、没有账号、没有复杂配置,只要你会用 git,就能用它把项目管理和代码管理合二为一。@Appinn

\n\n\n\n
\"Backlog.md
\n\n\n\n

一个例子

\n\n\n
\n# 安装 Backlog.md\nbun/npm i -g backlog.md\n\n# 初始化 backlog 仓库,hello- 为前缀\nbacklog init hello-\n\n# 新建一个任务\nbacklog task create "Render markdown as kanban"\n\n# 查看当前项目看板\nbacklog board view\n
\n\n\n

它就会在你的 git 项目中,自动创建 backlog 文件夹以及 .md 文件:

\n\n\n\n
\"Backlog.md
\n\n\n\n

动起来是这样的:

\n\n\n\n
\n\n\n\n

它还有一个网页模式 backlog browser 可以查看,并且这个网页还能像真的看板一样直接添加新任务、拖拽使用、实时更新:

\n\n\n\n
\"Backlog.md
\n\n\n\n

主要特色

\n\n\n\n\n\n\n\n

获取

\n\n\n\n\n\n\n\n

感兴趣的开发者快去试试吧。

\n\n\n\n
\n\n\n\n

原文:https://www.appinn.com/backlog-md/

\n

[ 点击前往获取链接 ]


", - "category": "在线应用", - "link": "https://www.appinn.com/backlog-md/", - "creator": "青小蛙", - "pubDate": "Tue, 08 Jul 2025 03:28:00 +0000", - "enclosure": "https://do-cdn.appinn.com/static3/images/2025/07/Backlog.md_.mp4", - "enclosureType": "video/mp4", - "image": "https://do-cdn.appinn.com/static3/images/2025/07/Backlog.md_.mp4", - "id": "", - "language": "zh", - "folder": "资讯", - "feed": "小众软件", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "a7c49b4081e799784da1d56006161ef7", - "highlights": [] - }, { "title": "DockFlow – 分组切换 Mac 程序坞", "description": "DockFlow 是一款非常实用的 macOS 工具,支持创建多套程序坞图标组合,并可随场景一键切换。比如在工作时显示多个工作软件,娱乐时切换为游戏或影音应用。@Appinn 数码荔枝上新,买断产品。 ", @@ -1067,28 +1023,6 @@ "hash": "018d59f4838b74ac87ba1d824f35bc41", "highlights": [] }, - { - "title": "Daily Sparks – 在 iPhone 屏幕上显示重要的事,并不断重复", - "description": "Daily Sparks 是一款简单、小巧的免费 iPhone 应用,只有 2.7 MB,它通过桌面小组件的方式,显示重要的事情。甚至还能设置每日 16 次提醒通知,让重要的事情变成真的重要。@App ", - "content": "\n

Daily Sparks 是一款简单、小巧的免费 iPhone 应用,只有 2.7 MB,它通过桌面小组件的方式,显示重要的事情。甚至还能设置每日 16 次提醒通知,让重要的事情变成真的重要。@Appinn

\n\n\n\n
\"Daily
\n\n\n\n

青小蛙觉得,开发者的本意,是保存你最喜欢的语录,并不断的显示在屏幕上。

\n\n\n\n

但不断的重复,最终会成为你真正重要的事情。

\n\n\n\n
\"Daily
\n\n\n\n

所以除了鸡汤语录,完全可以把重要的事情添加到这里,让它不断的提醒你。

\n\n\n\n

甚至,开发者还提供了每次最多 16 次的提醒,再次、不断的重复重要的事情。

\n\n\n
\n
\"Daily
\n\n\n

不过,以青小蛙测试的大概1个小时内,还没看到通知,也不知道这个16次通知,是如何推送的,可别大半夜不停来扰啊 \"😂\"

\n\n\n\n

获取

\n\n\n\n\n\n\n\n
\n\n\n\n

原文:https://www.appinn.com/daily-sparks/

\n

[ 点击前往获取链接 ]


", - "category": "iOS", - "link": "https://www.appinn.com/daily-sparks/", - "creator": "青小蛙", - "pubDate": "Sun, 06 Jul 2025 06:59:30 +0000", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "zh", - "folder": "资讯", - "feed": "小众软件", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "acc1bae6a4745f1f6dc9e3919968b7ba", - "highlights": [] - }, { "title": "四帝之母:拿到“寡妇”剧本,从战俘最终成为帝国顶级政治家", "description": "


本 文 约 3400 字

阅 读 需 要 11 分 钟 


说起中国历史上的女性政治家,人们往往最先想到武则天、吕雉这些熟悉的名字。但广袤的蒙古草原上也曾出现过一位传奇的女性政治家——唆鲁禾帖尼。



她的故事,要从一场政治婚姻开始讲起。


  老公死了怎么办?

在线等,挺急的


唆鲁禾帖尼出身于当时蒙古高原最强大的部落之一——克烈部。她是克烈部王罕的弟弟札合敢不的女儿。成吉思汗灭克烈部后,将唆鲁禾帖尼许配给幼子拖雷为正妻。按照蒙古的传统,蒙古大汗只会从嫡子中选出。成吉思汗的正妻孛儿帖孕育了四个儿子:长子术赤、次子察合台、三子窝阔台和幼子拖雷。成吉思汗西征前,选定了窝阔台为汗位的继承人。同时,按照蒙古“幼子守灶”的传统习俗,幼子拖雷继承了核心领地和主要军队。1227年,成吉思汗病逝,根据蒙古的传统习俗,新大汗在举行忽里台大会后才能上任。因此,此时实际上是由幼子拖雷摄政监国。1229年,窝阔台登上汗位。次年,率军南下征金,拖雷同往,战后北还,但拖雷在途中病卒。



那么,拖雷去世后,他的财产与军队该由谁来继承?



拖雷去世时,他的孩子们尚且年幼,家族中的事务主要由其正妻唆鲁禾帖尼管理。蒙古传统习俗,规定:


“夫死以后,带领幼年子女的寡妇,全权掌管家庭财产,直到儿女长大成人以后,各自婚嫁为止,因此寡妇完全享有其丈夫的地位与权力。”(《蒙古社会制度史》)


因此,唆鲁禾帖尼便继承了拖雷的财产与权力,成为拖雷家族的实际掌控者。然而,窝阔台汗对拖雷家族的忌惮很快显现出来,窝阔台家族对拖雷系的压制也随即展开。严峻的形势下,唆鲁禾帖尼深知她必须确保家族的财产不被侵吞、政治权力不被削弱,她需要在强敌环伺的环境中,既要保全家族利益,又不能给对手留下可乘之机。


较量很快拉开帷幕。拖雷去世不久,窝阔台便未经宗亲会议同意,擅自将拖雷系属下的两千速勒都思部军队划归给自己的儿子阔端。群情激奋,但唆鲁禾帖尼却并未对此表现出不满,反而呼吁将士们服从大汗,以此巧妙地笼络了阔端,使他后来站在拖雷家族一边。



但是,窝阔台并未放弃,他想通过政治联姻进一步控制拖雷家族。依照蒙古的收继婚习俗,他提议让唆鲁禾帖尼改嫁其子贵由。这一提议表面上合乎礼法,实则暗藏陷阱:若唆鲁禾帖尼接受,拖雷家族的政治遗产将尽归窝阔台一系;若拒绝,则可能招致报复。对此,唆鲁禾帖尼以“诸子尚未成人”为由婉拒,既未直接违抗汗命,又巧妙争取了时间。唆鲁禾帖尼知道,此时与窝阔台系发生冲突将危及家族存亡,因此她选择隐忍。后来,由于贵由也没有非常坚持,此事便不了了之。



在窝阔台系的持续打压下,唆鲁禾帖尼看似始终保持顺从的姿态,但难道她会一直坐以待毙吗?


深藏不露

靠自己成为大女主

 

虽然唆鲁禾帖尼从未公开违抗大汗命令,也刻意避免直接参与汗位之争,但暗地里却从未停止政治布局。



唆鲁禾帖尼利用窝阔台在中原分封的机会,主动为家族争取封地,并推荐能臣布鲁海牙进行治理。她慧眼识珠,在布鲁海牙的治理下,家族经济实力大增。后来忽必烈继位,“择信臣宣抚十道”,布鲁海牙就是其一。布鲁海牙的儿子廉希宪也在后来忽必烈建立王朝时立下了汗马功劳。


1241年,窝阔台去世,蒙古帝国陷入动荡。许多宗王贵族趁机瓜分财富、争夺权柄,她却严令儿子们恪守本分,抚民养兵,静待时机,赢得了广泛的支持。按照蒙古习俗,部落首领死后,会由其遗孀主政,直到新的首领即位为止。因此,窝阔台死后,蒙古帝国进入了脱列哥那摄政时期。与窝阔台一样,脱列哥那也对拖雷家族十分忌惮,多次向唆鲁禾帖尼发难。但她始终以柔克刚,将锋芒藏于谦卑之下,避免被抓到把柄。



后来,贵由继承汗位。唆鲁禾帖尼又率先率家族宣誓拥护贵由汗,贵由汗在看到他们的忠心后,也有意拉拢拖雷家族,许多重大的赏赐活动,包括对妃主、亲王、大臣及其子弟的封赏,对诸翼将士及其家属的犒劳,乃至对外国使节的接待等事务,均会安排唆鲁禾帖尼全权主持。在此期间,她悄然编织人脉,她无声巩固势力……直到贵由暴毙、海迷失皇后摄政时,人们才惊觉,帝国权力格局已经发生变化,窝阔台系几乎没有能与拖雷系抗衡的人物了。



时机终于成熟,唆鲁禾帖尼韬光养晦多年,此时,她的孩子们都已长大成材。尤其是她的长子蒙哥,骁勇善战,已在草原各部中声名远播。更关键的是,唆鲁禾帖尼还赢得了术赤的嫡次子拔都的支持——拔都威望极高、势力极强,他欣赏蒙哥才能出众,力荐蒙哥为汗。


然而,窝阔台系的很多重要人物都持反对意见。面对重重阻力,唆鲁禾帖尼及蒙哥极有耐心,多次游说他们来参加忽里台大会。最后,唆鲁禾帖尼凭借多年积累的政治资源和人脉关系,成功争取到各方势力的支持。最终,在各方势力的共同拥戴下,蒙哥成功登基,实现了汗位从窝阔台系向拖雷系的转移。而这一切,无不是唆鲁禾帖尼毕生心血的结晶。



此后,为了巩固蒙哥的汗位,之前一直以温顺示人的唆鲁禾帖尼开始毫不留情地镇压反对者,并亲自下令处死海迷失(贵由可汗的皇后),以雷霆手段震慑所有心怀不轨之人。


然而命运总是充满戏剧性,就在蒙哥即位的第二年,唆鲁禾帖尼病逝。


教子有方的天才老妈


唆鲁禾帖尼是一位杰出的女政治家,她经历了成吉思汗、窝阔台、贵由等时期的宫廷斗争,并一直立于不败之地。除此之外,唆鲁禾帖尼还是一位杰出的母亲,被称为“四帝之母”:她培养出的四个儿子皆称汗称帝,这在古今中外的历史上都是十分罕见的。



唆鲁禾帖尼的嫡长子蒙哥在即位后,致力攻灭南宋、大理等国,并派遣旭烈兀西征西亚诸国。后来,蒙哥在征战南宋的过程中阵亡。



随后,唆鲁禾帖尼的嫡次子忽必烈即位,建立元朝。忽必烈特别重视汉文化的吸收与融合,任用大批汉族儒士,推行汉法,展现出不同于传统蒙古统治者的治国理念。



而唆鲁禾帖尼的第三子旭烈兀则征服了波斯,建立了伊利汗国,不仅延续了蒙古帝国的统治,更成为东西方文化交流的重要桥梁。


至于最小的儿子阿里不哥,蒙哥阵亡后,他被蒙古贵族经由忽里勒台制度的推举而继位,此后与忽必烈展开四年之久的战争,最后阿里不哥战败后归降。


唆鲁禾帖尼在多年来与窝阔台系的若干次交锋都能不落下风,无疑对孩子们产生了潜移默化的影响。同时,她十分注重对孩子们的培养,当长子蒙哥初露锋芒时,她就刻意安排其参与重要军事行动,让其在战火中淬炼威望与胆识。尤为难得的是,作为一名基督徒,她坚定推行宗教宽容政策,这种开明的执政理念深刻影响了她的子孙后代,尤其影响了元朝的宗教政策。



《剑桥中国辽西夏金元史》记载唆鲁禾帖尼的教育理念宛如四柱架构:


首先,确保儿子们有文化;其次,教导他们一些基本政治准则;再次,宗教宽容,最后,吸收汉人幕僚为其服务。


可以看出,唆鲁禾帖尼对孩子们的培养是十分全面的,她也对孩子们抱有很大期望。

 

作为拖雷的遗孀,唆鲁禾帖尼在丈夫早逝后独自承担起振兴家族的重任,在她的苦心经营下,蒙古帝国的最高统治权最终由拖雷家族牢牢掌控。


 

参考文献:

[1][俄]符拉基迷尔佐夫著,刘荣竣译,《蒙古社会制度史》,中国社会科学出版社,1980.

[2][德]傅海波、[英]崔瑞德著,史卫民等译,陈高华等审校,《剑桥中国辽西夏金元史》,中国社会科学出版社,1998.

[3]李建辉,《唆鲁禾帖尼与大蒙古国汗位的转移》,内蒙古大学,2008.


*本文系“国家人文历史”独家稿件,欢迎读者转发朋友圈。



END
作者 | 夹心‍‍‍‍‍‍‍
编辑 | 胡心雅‍
主编 | 周斌
排版 | 徐沁(实习)‍
校对 | 张斌
\"图片\"

国历好物
\"图片\"

进击的士族

旁落的皇权

跨越五百年的权力对抗史

国民历史读物《国家人文历史》专业团队

最新力作

展现士族潮起潮落的史诗级历史画卷


\"图片\"


点击下方封面,即可购买



↓↓↓

\"图片\"

\"图片\"

\"图片\"

“在看”的永远18岁~

\n \n\n \n
\n\n \n 文章原文\n
\n \n\n \n\n \"\"
", @@ -1454,28 +1388,6 @@ "hash": "acc1bae6a4745f1f6dc9e3919968b7ba", "highlights": [] }, - { - "title": "侯逸凡:最年轻的“棋后”Conquering the world of chess", - "description": "16岁就成为最年轻的国际象棋世界“棋后”,她是真人版的《后翼弃兵》!", - "content": "16岁就成为最年轻的国际象棋世界“棋后”,她是真人版的《后翼弃兵》!", - "category": "人物", - "link": "http://www.i21st.cn/story/3807.html", - "creator": "www.i21st.cn", - "pubDate": "Thu, 1 Sep 2022 17:00:02", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "zh", - "folder": "双语", - "feed": "21世纪", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "3372e349617e8cdb5732ee4da3cdcdce", - "highlights": [] - }, { "title": "“大老虎”被拿下!中共中央决定对周永康严重违纪问题立案审查", "description": "", @@ -1498,28 +1410,6 @@ "hash": "9f21f8fa51704a71191c0219c9793433", "highlights": [] }, - { - "title": "索契冬奥会李坚柔夺中国首金", - "description": "Short track speed skating", - "content": "Short track speed skating", - "category": "", - "link": "http://www.i21st.cn/article/translate/4927_1.html", - "creator": "www.i21st.cn", - "pubDate": "Fri, 14 Feb 2014 10:50:53", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "zh", - "folder": "双语", - "feed": "21世纪", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "7371f6dbcab15edaf9642e52b8d5ac96", - "highlights": [] - }, { "title": "甲骨文技术人才发展部?Oracle University 免费送两门认证考试:Race to Certification 2025", "description": "Oracle University 是著名的云服务商 Oracle(甲骨文)官方的培训与认证平台,主要目标是帮助用户掌握 Oracle Cloud 产品并提供考试认证。 最近有活动: 甲骨文技术人才发 ", @@ -1775,28 +1665,6 @@ "hash": "70391c560d13fa2ded36785145ef6474", "highlights": [] }, - { - "title": "双语百科:为什么鸟儿在黎明歌唱?", - "description": "
\n\n \n\n \n \n\n

清晨悦耳的鸟鸣让人心旷神怡,但是一天中的其他时间却很少能听到鸟叫。为什么鸟儿都喜欢在清晨歌唱?来本文中寻找答案吧。

\n

 

\n
\n \n
\n Photo/Pexels \n
\n
\n

 

\n

Wake up early enough and, depending on where you live, you’ll likely hear a pleasant chorus of birds chirping their tiny hearts out. This am avian arrangement is instinctual behavior for birds, but why?
早上起得够早的话,在你所住的地方也许能听到一阵悦耳的鸟鸣。在清晨歌唱是鸟的本能行为,但是鸟鸣为什么都在清晨呢?

\n

 

\n

According to the Woodland Trust, this early singing is known as the dawn chorus, and it can start as early as 4 am and last for several hours. Birds do it to attract mates and warn other birds to avoid their turf. One theory as to why they opt for the wee hours to communicate these important messages is because the low visibility makes it hard to do other bird activities, like foraging. Keeping their activity level low, they opt to sing instead.
林地信托机构称,鸟儿在清晨鸣叫最早从凌晨4点开始,可持续数个小时。鸟鸣叫是为了吸引配偶,也是为了警告其他鸟不要入侵自己的领地。关于鸟类为什么选择在凌晨传递这些重要信息,有一个理论是,凌晨能见度低,鸟类难以进行觅食等其他活动,既然无事可做,那么鸟儿就转而选择鸣叫。

\n

 

\n

Another theory argues that birds use the morning vocals to project an image of strength. By singing with fervor, they’re letting other birds know they survived the night—no guarantee in nature—and would make for an excellent mate.
另一种理论认为,鸟类利用晨鸣来展示自己的力量。通过热情地歌唱,它们让其他鸟儿知道自己已经安然度过黑夜——要知道自然界的动物过着朝不保夕的日子,不一定能看见明天的太阳——并能够成为出色的伴侣。

\n

 

\n

Like a good recording studio, the early morning hours also allow birds to transmit a clear tune thanks to the cooler, drier air. Because birds have distinctive chirps, that clarity helps them be more easily identified by birds within listening distance.
清晨的空气更凉爽、更干燥,就像一个效果很好的录音棚,鸟儿在此时歌唱能传递出清晰的音质。因为鸟儿的声音各有不同,这种清晰度可以让听得见的鸟儿更容易识别出它们的声音。

\n

 

\n

There used to be a prevailing theory that birds sang so much in the mornings because the sounds could travel greater distances due to less atmospheric turbulence, but it was disproven by researchers at the University of Western Ontario in 2003. They played recordings of sparrows at dawn and midday. The songs didn’t travel farther, but they were more consistent.
过去有一个流行的理论认为,鸟儿最爱在清晨鸣叫是因为在气流稳定的时候声音能传播得更远。但是西安大略大学的研究人员在2003年否定了这一理论。研究人员在黎明和中午分别播放了麻雀的录音。然而麻雀声音并没有传播得更远,只不过黎明时分麻雀的叫声更连贯。

\n

 

\n

Because birds only have so much energy to belt one out, singing when they stand the best chance of being heard makes sense. For a bird, an early morning session is like having the perfect acoustic environment for their performance.
因为鸟儿只能用有限的精力来鸣叫,它们自然会选择在最可能被听到的时候歌唱。对一只鸟儿来说,清晨鸣叫相当于在最佳音效环境中表演。

\n

 

\n

英文来源:Mental Floss

\n

编译:丹妮

\n

审校:董静、齐磊

\n\n
", - "content": "
\n\n \n\n \n \n\n

清晨悦耳的鸟鸣让人心旷神怡,但是一天中的其他时间却很少能听到鸟叫。为什么鸟儿都喜欢在清晨歌唱?来本文中寻找答案吧。

\n

 

\n
\n \n
\n Photo/Pexels \n
\n
\n

 

\n

Wake up early enough and, depending on where you live, you’ll likely hear a pleasant chorus of birds chirping their tiny hearts out. This am avian arrangement is instinctual behavior for birds, but why?
早上起得够早的话,在你所住的地方也许能听到一阵悦耳的鸟鸣。在清晨歌唱是鸟的本能行为,但是鸟鸣为什么都在清晨呢?

\n

 

\n

According to the Woodland Trust, this early singing is known as the dawn chorus, and it can start as early as 4 am and last for several hours. Birds do it to attract mates and warn other birds to avoid their turf. One theory as to why they opt for the wee hours to communicate these important messages is because the low visibility makes it hard to do other bird activities, like foraging. Keeping their activity level low, they opt to sing instead.
林地信托机构称,鸟儿在清晨鸣叫最早从凌晨4点开始,可持续数个小时。鸟鸣叫是为了吸引配偶,也是为了警告其他鸟不要入侵自己的领地。关于鸟类为什么选择在凌晨传递这些重要信息,有一个理论是,凌晨能见度低,鸟类难以进行觅食等其他活动,既然无事可做,那么鸟儿就转而选择鸣叫。

\n

 

\n

Another theory argues that birds use the morning vocals to project an image of strength. By singing with fervor, they’re letting other birds know they survived the night—no guarantee in nature—and would make for an excellent mate.
另一种理论认为,鸟类利用晨鸣来展示自己的力量。通过热情地歌唱,它们让其他鸟儿知道自己已经安然度过黑夜——要知道自然界的动物过着朝不保夕的日子,不一定能看见明天的太阳——并能够成为出色的伴侣。

\n

 

\n

Like a good recording studio, the early morning hours also allow birds to transmit a clear tune thanks to the cooler, drier air. Because birds have distinctive chirps, that clarity helps them be more easily identified by birds within listening distance.
清晨的空气更凉爽、更干燥,就像一个效果很好的录音棚,鸟儿在此时歌唱能传递出清晰的音质。因为鸟儿的声音各有不同,这种清晰度可以让听得见的鸟儿更容易识别出它们的声音。

\n

 

\n

There used to be a prevailing theory that birds sang so much in the mornings because the sounds could travel greater distances due to less atmospheric turbulence, but it was disproven by researchers at the University of Western Ontario in 2003. They played recordings of sparrows at dawn and midday. The songs didn’t travel farther, but they were more consistent.
过去有一个流行的理论认为,鸟儿最爱在清晨鸣叫是因为在气流稳定的时候声音能传播得更远。但是西安大略大学的研究人员在2003年否定了这一理论。研究人员在黎明和中午分别播放了麻雀的录音。然而麻雀声音并没有传播得更远,只不过黎明时分麻雀的叫声更连贯。

\n

 

\n

Because birds only have so much energy to belt one out, singing when they stand the best chance of being heard makes sense. For a bird, an early morning session is like having the perfect acoustic environment for their performance.
因为鸟儿只能用有限的精力来鸣叫,它们自然会选择在最可能被听到的时候歌唱。对一只鸟儿来说,清晨鸣叫相当于在最佳音效环境中表演。

\n

 

\n

英文来源:Mental Floss

\n

编译:丹妮

\n

审校:董静、齐磊

\n\n
", - "category": "", - "link": "https://language.chinadaily.com.cn/a/202409/04/WS66d7fb2da3108f29c1fca198.html", - "creator": "", - "pubDate": "", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "", - "folder": "双语", - "feed": "ChinaDaily", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "ce6345bc9ae331d44d7f2c1699c0a3c6", - "highlights": [] - }, { "title": "开学啦!来看看新学期的正确打开方式", "description": "
\n\n \n\n \n \n\n

A new semester means a fresh start. Get your semester started right by practicing these strategies, and your productivity will soar.
新学期意味着新的开始。掌握了新学期的正确打开方式,你的学习效率将会直线上升。

\n

 

\n
\n \n
\n Photo/Pexels \n
\n
\n

 

\n

1. Get organized
让一切井井有条

\n

Organization helps you reduce chaos and stress, thus making you more productive. Develop a system at the start of your semester. This may include:
条理性可以帮助你减少混乱和压力,从而让你做事更有效率。在开学时把一切都整理得井井有条,包括:

\n

--Color coded notebooks and/or folders for each class
——给每门课程准备一个彩页笔记本和文件夹;

\n

-- A planner with important dates and deadlines filled out
——准备一个日程表,标注出重要的日子和各项任务的截止日期;

\n

--Cleaning out your backpack, desk, and dorm room to reduce clutter from previous semesters
——清理背包、书桌和宿舍,把前几个学期积攒下来的无用之物处理掉;

\n

--Organizing your computer files (e.g., by school year, semester, course, and assignment type or project)
——整理电脑文件,可以按照学年、学期、课程、作业或项目分门别类;

\n

If you keep track of deadlines, know where to find everything, and maintain a well-organized space, you free up your mind to focus on learning and achieving.
如果你对截止日期了如指掌,知道每样东西放在哪儿,把空间整理得井井有条,你就可以把脑子腾出来专心学习,做出成绩。

\n

 

\n

2. Get into a routine
做事有规律

\n

Like being organized, establishing a routine helps your life run smoothly.
和条理性一样,做事有规律可以让你的生活更顺利。

\n

It’s easier said than done, but try waking up and going to sleep around the same time each day (or at least on weekdays). Schedule time for the gym, any clubs or activities you participate in, and studying. Instead of waiting until the last minute to work on assignments or cram in information, set aside studying/homework blocks each day. Choose a time of day when you feel especially productive.
尽管说起来容易做起来难,但是你可以试着每天都在同一时间起床和睡觉(至少在工作日如此)。规划好去健身、去参加社团或其他活动以及学习的时间。每天都要留出一整块时间用于学习和做作业,不要等到最后一刻才赶作业或背书。选择一天中你自认为效率最高的时间来学习。

\n

Start each day on a positive note by preparing the night before. For instance, set out the outfit you’ll wear to class and pack your backpack with the supplies you’ll need that day. Instead of frantically scrambling around in the morning, you’ll begin the day feeling confident and prepared. Ultimately, these small habits make a big difference in your overall mood and performance.
通过在前一天晚上做好准备,以积极的态度开始每一天。举例而言,准备好你明天上课要穿的衣服,在书包里放好明天需要的东西。这样,你就可以在准备充分的情况下自信地开始新的一天,而不是一大早紧张忙乱地到处找东西。最终,这些小习惯将会让你的整体情绪状态和表现大为改观。

\n

 

\n

3. Surround yourself with motivated peers
结交好学的同伴

\n

Maybe you’ve heard the saying, “Show me your friends and I’ll show you your future.” It may sound dramatic, but it’s true that the people you spend the most time with have a major influence on you. If your friends are partying every night, skipping class, and seemingly unconcerned about their grades, staying motivated will be an uphill battle for you.
也许你听过这句话:“你身边的朋友决定你的未来。”这也许听起来有些夸张,但是你与之交往时间最长的人对你会产生重大影响,这是事实。如果你的朋友夜夜狂欢,逃课,对成绩毫不在意,那么保持斗志对你来说会非常困难。

\n

Try to make at least one positive friend in every class. Meet ambitious people with clearly defined goals, good study habits, and healthy lifestyles. These friends can help you stay accountable, and they make great study buddies too.
你应该试着每门课程都结交至少一位好学的朋友。结交那些有明确目标、良好学习习惯和健康生活方式的有志向的人。这些朋友可以帮助你保持责任心,也可以成为很好的学伴。

\n

 

\n

4. Take good care of yourself
照顾好自己

\n

Finally, remember to practice self-care and healthy habits. When you eat poorly and don’t get enough sleep, it impacts your mood and your mind. You may feel fuzzy and forgetful, and you’ll have a tough time learning new concepts. Obviously, this is not helpful for a successful semester.
最后,记得要照顾好自己,养成健康的生活习惯。如果你吃不好,睡眠不足,就会影响你的情绪和头脑。你可能会觉得脑子迷迷糊糊,变得健忘,在学习新概念时也会感到费劲。显然,这对于成功开展新学期有害无益。

\n

Eat nutritious meals (as often as you can), exercise, and get plenty of rest. Studying in small chunks instead of relying on cram sessions is one way to ensure you sleep enough.
平常多吃有营养的饭菜,坚持锻炼,充分休息。每天学一点,而不是临时抱佛脚,也是确保你睡眠充足的一个方式。

\n

Creating new habits is tough at first. Stick with it, and you’ll find that you’re far more productive and successful—and probably happier, too.
养成新习惯一开始很难。坚持下来,你会发现你远比以前效率更高、更成功,应该也会更快乐。

\n

 

\n

英文来源:Niche

\n

编译:丹妮

\n

审校:董静、齐磊

\n\n
", @@ -2272,28 +2140,6 @@ "hash": "83bc9f980c4741dfe1ca8069d1ae4e38", "highlights": [] }, - { - "title": "自托管的云文件存储解决方案Phylum", - "description": "\n\n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n \n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n\n \n \n \n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n\n \n \n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n
\n
\n \n
\n
\n \n\n\n\n\n
\n \n
\n \n
\n \n \n \n
\n \n
\n \"cover_image\"\n
\n
\n
\n\n \n
\n
\n \n \n \n \n \n\n
\n \n

\n自托管的云文件存储解决方案Phylum

\n
\n Original\n \n 杨浦老苏\n \n \n \n \n 各种折腾 \n \n
\n
\n \n \n \n \n \n \n \n \n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n \n\n \n \n \n \n \n \n \n \n

简介

什么是 Phylum ?

Phylum 是一个自托管的文件存储平台,旨在替代 Google Drive 和 Dropbox 等云存储服务。它具有离线优先的 web 和原生客户端,用户可以在没有稳定互联网连接的情况下进行操作。

主要特点

  1. 自托管:用户可以在自己的服务器上部署,确保数据的隐私和控制。
  2. 离线优先:支持在无网络连接时进行操作,并在重新连接时自动同步更改。
  3. 多种客户端:提供 web 和原生客户端,支持跨平台使用。
  4. 文件共享:支持对文件进行公开分享,并设置密码保护和过期时间。
  5. 权限管理: 用户权限管理灵活,可以添加、修改用户及其权限。
  6. 版本历史:保留文件的完整版本历史,允许用户回溯和下载以前的版本。
  7. WebDAV 兼容:支持 WebDAV 协议,方便与其他应用程序集成。
  8. 多种身份验证后端:支持 LDAP 和 OpenID(OAuth)等身份验证方式。
  9. 高度可配置:允许用户根据需求自定义配置和管理选项。

应用场景

  • 个人和团队文件管理:适用于需要安全存储和管理个人或团队文件的用户。
  • 开发和测试环境:开发者可以在本地或测试环境中使用 Phylum,支持快速迭代和版本控制。
  • 企业文件共享:企业可以利用 Phylum 实现内部文件共享和权限管理,确保数据安全。
  • 教育和培训:教师和学生可以共享学习资料,管理课程文件。

Phylum 为用户提供了一种灵活、安全的文件存储和管理解决方案,适合各种需求和使用场景。

安装

在群晖上以 Docker 方式安装。

本文写作时, latest 版本对应的软件版本为  0.4.0;

采用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

services:
  server:
    image:shroff12/phylum:latest
    container_name:phylum_server
    restart:always
    ports:
      -'2448:2448'
    volumes:
      -./storage:/app/storage
    #  - ./config.yml:/app/config.yml
    environment:
      PHYLUM_DB_HOST:db
      PHYLUM_DB_NAME:phylum
      PHYLUM_DB_USER:phylum
      PHYLUM_DB_PASSWORD:phylum123
    depends_on:
      db:
        condition:service_healthy

db:
    image:docker.io/postgres:17
    container_name:phylum_db
    restart:always
    # ports:
    #   - '5432:5432'
    volumes:
      -./data:/var/lib/postgresql/data
    environment:
      POSTGRES_DB:phylum
      POSTGRES_USER:phylum
      POSTGRES_PASSWORD:phylum123
    healthcheck:
      test:\"pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}\"
      interval:30s
      timeout:5s
      retries:3
      start_period:5s

然后执行下面的命令

# 新建文件夹 phylum 和 子目录
mkdir -p /volume1/docker/phylum/{data,storage}

# 进入 phylum 目录
cd /volume1/docker/phylum

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

# 一键启动
docker-compose up -d 

运行

在浏览器中输入 http://群晖IP:2448 就能看到设置界面

直接点 Next 会看到登录界面

添加用户

官方的文档没看懂,所以求助了一下 AI

# 进入容器
docker exec -it phylum_server /bin/sh

# 创建用户(不发送邮件)
./phylum admin user invite wbsu2003@gmail.com --no-email

# 为用户设置密码
# 密码不能少于12个字符,必须要有1个大写字母等(示例:@Abc1234567890@)
./phylum admin user passwd wbsu2003@gmail.com

用上面创建用户的邮件和密码登录成功后的主界面

点 + NEW 可以新建目录和上传文件

随便上传了一个文件

支持右键功能

WebDAV

默认是开启的,user@exmaple.com 的 WebDAV 路径将为 /webdav/~user@example.com

按照上一步新建的

  • 服务器 URL:http://群晖IP:2448/webdav/~wbsu2003@gmail.com
  • 账号: wbsu2003@gmail.com
  • 密码: 对应的用户网页登录密码

连接成功后,能看到我们上传的文件

客户端

从代码看,客户端使用 Flutter 开发,应该是支持多平台的

但是发布的版本,目前似乎还只有 Android 的,可能是因为还在项目早期吧

参考文档

1. shroff/phylum: Self-hosted cloud file storage with offline-first web and native clients - Codeberg.org
地址:https://codeberg.org/shroff/phylum

2. Phylum - self-hosted file storage with offline-first web and native clients : r/selfhosted
地址:https://www.reddit.com/r/selfhosted/comments/1lseax4/phylum_selfhosted_file_storage_with_offlinefirst/

@所有人:写文不易,如果你都看到了这里,请点个赞和在看,分享给更多的朋友;为确保你能收到每一篇文章,请主页右上角设置星标。

\n \n
\n
预览时标签不可点
\n \n
\n\n \n
\n \n
\n
\n \n
\n \n \n \n
\n
\n
\n\n
\n\n\n \n
\n
\n\n
\n\n \n
\n
\n \n
\n
\n
\n\n \n
\n
\n
\n \n

Scan to Follow

\n
\n
\n
\n
\n\n \n \n\n
\n
\n \n 继续滑动看下一个\n
\n
\n\n
\n\n\n
\n\n\n\n\n\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n 各种折腾
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n 向上滑动看下一个\n
\n
\n
\n
\n\n\n\n
\n\n\n
\n\n\n
\n\n\n
\n
\n \n
\n
\n\n\n
\n
\n
\n
\n
\n Got It\n
\n
\n
\n\n\n\n\n\n\n
\n
\n
\n \n Scan with Weixin to
use this Mini Program\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n Cancel\n Allow\n
\n
\n
\n\n
\n
\n
\n
\n \n
\n
\n \n
\n Cancel\n Allow\n
\n
\n
\n\n
\n \n \n
\n\n\n
\n
\n
\n
\n \n
\n \"跳转二维码\"\n
\n \"作者头像\"\n
\n
\n
\n
\n

微信扫一扫可打开此内容,
使用完整服务

\n
\n
\n
\n\n\n \n
\n
\n
\n
\n
\n
\n \n \n\n: \n,\n,\n,\n,\n,\n,\n,\n,\n,\n,\n,\n,\n.\n \n\n\nVideo\nMini Program\n\n\nLike\n,轻点两下取消赞\nWow\n,轻点两下取消在看\nShare\nComment\nFavorite\n听过\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n \n\n\n\n", - "content": "\n\n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n \n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n\n \n \n \n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n\n \n \n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n
\n
\n \n
\n
\n \n\n\n\n\n
\n \n
\n \n
\n \n \n \n
\n \n
\n \"cover_image\"\n
\n
\n
\n\n \n
\n
\n \n \n \n \n \n\n
\n \n

\n自托管的云文件存储解决方案Phylum

\n
\n Original\n \n 杨浦老苏\n \n \n \n \n 各种折腾 \n \n
\n
\n \n \n \n \n \n \n \n \n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n \n\n \n \n \n \n \n \n \n \n

简介

什么是 Phylum ?

Phylum 是一个自托管的文件存储平台,旨在替代 Google Drive 和 Dropbox 等云存储服务。它具有离线优先的 web 和原生客户端,用户可以在没有稳定互联网连接的情况下进行操作。

主要特点

  1. 自托管:用户可以在自己的服务器上部署,确保数据的隐私和控制。
  2. 离线优先:支持在无网络连接时进行操作,并在重新连接时自动同步更改。
  3. 多种客户端:提供 web 和原生客户端,支持跨平台使用。
  4. 文件共享:支持对文件进行公开分享,并设置密码保护和过期时间。
  5. 权限管理: 用户权限管理灵活,可以添加、修改用户及其权限。
  6. 版本历史:保留文件的完整版本历史,允许用户回溯和下载以前的版本。
  7. WebDAV 兼容:支持 WebDAV 协议,方便与其他应用程序集成。
  8. 多种身份验证后端:支持 LDAP 和 OpenID(OAuth)等身份验证方式。
  9. 高度可配置:允许用户根据需求自定义配置和管理选项。

应用场景

  • 个人和团队文件管理:适用于需要安全存储和管理个人或团队文件的用户。
  • 开发和测试环境:开发者可以在本地或测试环境中使用 Phylum,支持快速迭代和版本控制。
  • 企业文件共享:企业可以利用 Phylum 实现内部文件共享和权限管理,确保数据安全。
  • 教育和培训:教师和学生可以共享学习资料,管理课程文件。

Phylum 为用户提供了一种灵活、安全的文件存储和管理解决方案,适合各种需求和使用场景。

安装

在群晖上以 Docker 方式安装。

本文写作时, latest 版本对应的软件版本为  0.4.0;

采用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

services:
  server:
    image:shroff12/phylum:latest
    container_name:phylum_server
    restart:always
    ports:
      -'2448:2448'
    volumes:
      -./storage:/app/storage
    #  - ./config.yml:/app/config.yml
    environment:
      PHYLUM_DB_HOST:db
      PHYLUM_DB_NAME:phylum
      PHYLUM_DB_USER:phylum
      PHYLUM_DB_PASSWORD:phylum123
    depends_on:
      db:
        condition:service_healthy

db:
    image:docker.io/postgres:17
    container_name:phylum_db
    restart:always
    # ports:
    #   - '5432:5432'
    volumes:
      -./data:/var/lib/postgresql/data
    environment:
      POSTGRES_DB:phylum
      POSTGRES_USER:phylum
      POSTGRES_PASSWORD:phylum123
    healthcheck:
      test:\"pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}\"
      interval:30s
      timeout:5s
      retries:3
      start_period:5s

然后执行下面的命令

# 新建文件夹 phylum 和 子目录
mkdir -p /volume1/docker/phylum/{data,storage}

# 进入 phylum 目录
cd /volume1/docker/phylum

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

# 一键启动
docker-compose up -d 

运行

在浏览器中输入 http://群晖IP:2448 就能看到设置界面

直接点 Next 会看到登录界面

添加用户

官方的文档没看懂,所以求助了一下 AI

# 进入容器
docker exec -it phylum_server /bin/sh

# 创建用户(不发送邮件)
./phylum admin user invite wbsu2003@gmail.com --no-email

# 为用户设置密码
# 密码不能少于12个字符,必须要有1个大写字母等(示例:@Abc1234567890@)
./phylum admin user passwd wbsu2003@gmail.com

用上面创建用户的邮件和密码登录成功后的主界面

点 + NEW 可以新建目录和上传文件

随便上传了一个文件

支持右键功能

WebDAV

默认是开启的,user@exmaple.com 的 WebDAV 路径将为 /webdav/~user@example.com

按照上一步新建的

  • 服务器 URL:http://群晖IP:2448/webdav/~wbsu2003@gmail.com
  • 账号: wbsu2003@gmail.com
  • 密码: 对应的用户网页登录密码

连接成功后,能看到我们上传的文件

客户端

从代码看,客户端使用 Flutter 开发,应该是支持多平台的

但是发布的版本,目前似乎还只有 Android 的,可能是因为还在项目早期吧

参考文档

1. shroff/phylum: Self-hosted cloud file storage with offline-first web and native clients - Codeberg.org
地址:https://codeberg.org/shroff/phylum

2. Phylum - self-hosted file storage with offline-first web and native clients : r/selfhosted
地址:https://www.reddit.com/r/selfhosted/comments/1lseax4/phylum_selfhosted_file_storage_with_offlinefirst/

@所有人:写文不易,如果你都看到了这里,请点个赞和在看,分享给更多的朋友;为确保你能收到每一篇文章,请主页右上角设置星标。

\n \n
\n
预览时标签不可点
\n \n
\n\n \n
\n \n
\n
\n \n
\n \n \n \n
\n
\n
\n\n
\n\n\n \n
\n
\n\n
\n\n \n
\n
\n \n
\n
\n
\n\n \n
\n
\n
\n \n

Scan to Follow

\n
\n
\n
\n
\n\n \n \n\n
\n
\n \n 继续滑动看下一个\n
\n
\n\n
\n\n\n
\n\n\n\n\n\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n 各种折腾
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n 向上滑动看下一个\n
\n
\n
\n
\n\n\n\n
\n\n\n
\n\n\n
\n\n\n
\n
\n \n
\n
\n\n\n
\n
\n
\n
\n
\n Got It\n
\n
\n
\n\n\n\n\n\n\n
\n
\n
\n \n Scan with Weixin to
use this Mini Program\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n Cancel\n Allow\n
\n
\n
\n\n
\n
\n
\n
\n \n
\n
\n \n
\n Cancel\n Allow\n
\n
\n
\n\n
\n \n \n
\n\n\n
\n
\n
\n
\n \n
\n \"跳转二维码\"\n
\n \"作者头像\"\n
\n
\n
\n
\n

微信扫一扫可打开此内容,
使用完整服务

\n
\n
\n
\n\n\n \n
\n
\n
\n
\n
\n
\n \n \n\n: \n,\n,\n,\n,\n,\n,\n,\n,\n,\n,\n,\n,\n.\n \n\n\nVideo\nMini Program\n\n\nLike\n,轻点两下取消赞\nWow\n,轻点两下取消在看\nShare\nComment\nFavorite\n听过\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n \n\n\n\n", - "category": "", - "link": "https://mp.weixin.qq.com/s/xBkVJ0TIxPerLzM7YMST8Q", - "creator": "", - "pubDate": "2025-07-07T11:00:35.000Z", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "xBkVJ0TIxPerLzM7YMST8Q", - "language": "", - "folder": "IT技术", - "feed": "各种折腾", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "37e8086261b53a64d0e3494743fc98a7", - "highlights": [] - }, { "title": "Docker端口映射查看工具Dockpeek", "description": "\n\n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n \n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n\n \n \n \n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n\n \n \n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n
\n
\n \n
\n
\n \n\n\n\n\n
\n \n
\n \n
\n \n \n \n
\n \n
\n \"cover_image\"\n
\n
\n
\n\n \n
\n
\n \n \n \n \n \n\n
\n \n

\nDocker端口映射查看工具Dockpeek

\n
\n Original\n \n 杨浦老苏\n \n \n \n \n 各种折腾 \n \n
\n
\n \n \n \n \n \n \n \n \n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n \n\n \n \n \n \n \n \n \n \n

简介

什么是 Dockpeek ?

Dockpeek 是一个轻量级的 Docker 容器端口映射仪表盘,主要用于即时查看 Docker 容器的端口映射情况。它支持管理多个 Docker 套接字(Docker sockets),可以一键打开暴露的端口,方便访问和管理容器化应用。

主要特点

  • 端口映射展示:提供可点击的主机到容器端口链接,方便快速访问对应的 Web 应用。
  • 多 Docker 套接字支持:能够集中管理多个 Docker 主机的套接字。
  • 安全设计:通过认证和 socket-proxy 实现对 Docker API 的只读安全访问。
  • 便捷搜索:支持按容器名称或外部端口快速查找容器。
  • 数据导出:可以将容器和端口详情导出为 JSON 格式。
  • 用户友好界面:界面简洁,支持持久化暗黑模式。

应用场景

  • 复杂的 Docker 环境:在多 Docker 主机或大量容器的复杂环境中,帮助用户集中、直观地查看和管理所有容器的端口映射,解决了追踪应用端口使用的难题。
  • 开发和测试: 适合需要快速访问多个容器服务的开发、测试和运维场景。
  • 运维管理:通过安全认证和只读访问,适合对安全性有要求的生产环境。

总结来说,Dockpeek 是一个方便、集中且安全的 Docker 端口映射查看工具,提升了多主机多容器环境下的管理效率和使用体验

安装

在群晖上以 Docker 方式安装。

本文写作时, latest 版本对应为  v1.1;

单主机模式

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

# 运行容器
docker run -d \\
   --restart unless-stopped \\
   --name dockpeek \\
   -p 8644:8000 \\
   -v /var/run/docker.sock:/var/run/docker.sock \\
   -e SECRET_KEY=my_secret_key \\
   -e USERNAME=admin \\
   -e PASSWORD=admin \\
   ghcr.io/dockpeek/dockpeek:latest

/var/run/docker.sock

/var/run/docker.sock 是 Docker API 的主要入口,简单地说,它是 Docker 守护进程(Docker daemon)默认监听的 Unix 域套接字(Unix domain socket),容器中的进程可以通过它与 Docker 守护进程进行通信。

\"title\"
title

图片来自:https://betterprogramming.pub/about-var-run-docker-sock-3bfd276e12fd

环境

可变
值
SECRET_KEY
用于加密会话数据和 cookie 的强密码
USERNAME
用于登录 Dockpeek 仪表板的用户名
PASSWORD
与用户名关联的密码
DOCKER_HOST_N_URL
定义额外 Docker 主机的 UR
DOCKER_HOST_N_NAME
显示在用户界面中的友好名称,关联到相应的 Docker 主机 URL
DOCKER_HOST_N_PUBLIC_HOSTNAME
用于生成可点击的容器链接的公共主机名或 IP。如果未设置,则从主机 URL 推断

其中 N 为数字,可以参考多主机模式的示例;

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

services:
  dockpeek:
    image:ghcr.io/dockpeek/dockpeek:latest
    container_name:dockpeek
    restart:unless-stopped
    ports:
      -\"8644:8000\"
    volumes:
      -/var/run/docker.sock:/var/run/docker.sock
    environment:
      -SECRET_KEY=my_secret_key   # Set secret key
      -USERNAME=admin             # Change default username
      -PASSWORD=admin             # Change default password

然后执行下面的命令

# 新建文件夹 dockpeek
mkdir -p /volume1/docker/dockpeek

# 进入 dockpeek 目录
cd /volume1/docker/dockpeek

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

# 一键启动
docker-compose up -d

多主机模式

准备

首先我们需要让群晖的 docker 服务允许通过 TCP 进行连接,用 SSH 连到群晖上,编辑文件 /var/packages/Docker/etc/dockerd.json ,并新增一行:

\"hosts\" : [ \"tcp://192.168.0.199:2375\", \"unix:///var/run/docker.sock\" ],
\"title\"
title

其中的 IP 需要改成群晖主机的 IP 地址,然后用保存。接下来重启群晖的 docker 服务:

# 重启 docker 套件
synoservice --restart pkgctl-Docker

docker-compose.yml

services:
  dockpeek:
    image:ghcr.io/dockpeek/dockpeek:latest
    container_name:dockpeek
    restart:unless-stopped
    ports:
      -\"8644:8000\"
    volumes:
      -/var/run/docker.sock:/var/run/docker.sock
    environment:
      -SECRET_KEY=my_secret_key   # Set secret key
      -USERNAME=admin             # Change default username
      -PASSWORD=admin             # Change default password
      
      # Docker Host 1
      -DOCKER_HOST_1_URL=unix:///var/run/docker.sock    # Required for DOCKER_HOST_N: URL of the additional Docker host.
      -DOCKER_HOST_1_NAME=ds3617xs                      # Required for DOCKER_HOST_N: Display name shown in the UI.
      -DOCKER_HOST_1_PUBLIC_HOSTNAME=                   # Optional: Public hostname or IP for clickable links. If empty, inferred from the URL.

      # Docker Host 2
      -DOCKER_HOST_2_URL=tcp://192.168.0.199:2375       # Required for DOCKER_HOST_N: URL of the additional Docker proxy.
      -DOCKER_HOST_2_NAME=ds918                         # Required for DOCKER_HOST_N: Display name shown in the UI.
      -DOCKER_HOST_2_PUBLIC_HOSTNAME=                   # Optional: Public hostname or IP for clickable links. If empty, inferred from the URL. 
                                                         # Example: Use device name like 'NAS' for easier access via Tailscale.           

运行

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

登录后的主界面,点端口可以直接打开应用的界面

如果是多主模式,则会多显示一列 Server

可以搜索端口

能很容易找到空闲的端口,对老苏这种没事就瞎折腾的人来说,省了很多事

参考文档

dockpeek/dockpeek
地址:https://github.com/dockpeek/dockpeek

@所有人:写文不易,如果你都看到了这里,请点个赞和在看,分享给更多的朋友;为确保你能收到每一篇文章,请主页右上角设置星标。

\n \n
\n
预览时标签不可点
\n \n
\n\n \n
\n \n
\n
\n \n
\n \n \n \n
\n
\n
\n\n
\n\n\n \n
\n
\n\n
\n\n \n
\n
\n \n
\n
\n
\n\n \n
\n
\n
\n \n

Scan to Follow

\n
\n
\n
\n
\n\n \n \n\n
\n
\n \n 继续滑动看下一个\n
\n
\n\n
\n\n\n
\n\n\n\n\n\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n 各种折腾
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n 向上滑动看下一个\n
\n
\n
\n
\n\n\n\n
\n\n\n
\n\n\n
\n\n\n
\n
\n \n
\n
\n\n\n
\n
\n
\n
\n
\n Got It\n
\n
\n
\n\n\n\n\n\n\n
\n
\n
\n \n Scan with Weixin to
use this Mini Program\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n Cancel\n Allow\n
\n
\n
\n\n
\n
\n
\n
\n \n
\n
\n \n
\n Cancel\n Allow\n
\n
\n
\n\n
\n \n \n
\n\n\n
\n
\n
\n
\n \n
\n \"跳转二维码\"\n
\n \"作者头像\"\n
\n
\n
\n
\n

微信扫一扫可打开此内容,
使用完整服务

\n
\n
\n
\n\n\n \n
\n
\n
\n
\n
\n
\n \n \n\n: \n,\n,\n,\n,\n,\n,\n,\n,\n,\n,\n,\n,\n.\n \n\n\nVideo\nMini Program\n\n\nLike\n,轻点两下取消赞\nWow\n,轻点两下取消在看\nShare\nComment\nFavorite\n听过\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n \n\n\n\n", @@ -2316,28 +2162,6 @@ "hash": "c8f37ade75a11813df0bcb7cf0bdd61a", "highlights": [] }, - { - "title": "极易搭建的自助Git服务Gogs", - "description": "\n\n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n \n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n\n \n \n \n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n\n \n \n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n
\n
\n \n
\n
\n \n\n\n\n\n
\n \n
\n \n
\n \n \n \n
\n \n
\n \"cover_image\"\n
\n
\n
\n\n \n
\n
\n \n \n \n \n \n\n
\n \n

\n极易搭建的自助Git服务Gogs

\n
\n Original\n \n 杨浦老苏\n \n \n \n \n 各种折腾 \n \n
\n
\n \n \n \n \n \n \n \n \n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n \n\n \n \n \n \n \n \n \n \n

简介

什么是 Gogs ?

Gogs 是一个轻量级、自托管的 Git 服务,旨在提供简单、高效的 Git 版本控制解决方案。它允许用户在自己的服务器上快速部署 Git 仓库,便于团队协作和代码管理。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的所有平台,包括 Linux、macOS、Windows 和基于 ARM 的操作系统。

主要特点

  1. 易于安装: 用户只需运行适合其平台的二进制文件,或通过 Docker、Vagrant 等工具进行部署。
  2. 跨平台支持:Gogs 可以在多种操作系统上运行,包括 Windows、Mac、Linux 和 ARM 等。
  3. 轻量级:Gogs 的最低系统要求非常低,可以在 Raspberry Pi 等低配置设备上运行,甚至一些用户在 NAS 设备上也能成功部署。
  4. 开源免费:Gogs 是 100% 开源的,遵循 MIT 许可证,源代码可在 GitHub 上获取,用户无需支付费用即可使用。

应用场景

  • 团队协作: Gogs 适合开发团队用于管理代码和项目,提供版本控制和协作功能。
  • 私有项目托管: 适合需要在内部网络中托管代码的企业和开发者,确保数据安全。
  • 轻量级解决方案: 对于资源有限的环境(如小型服务器或单板计算机),Gogs 提供了一个经济实惠的 Git 解决方案。

Gogs 以其简洁和高效的特性,成为了许多开发者和团队的理想选择。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 gogs ,选择第一个 gogs/gogs,版本选择 latest。

本文写作时, latest 应该是  0.13.2 之后的版本;

从软件界面看是 0.14.0+dev

卷

在 docker 文件夹中,创建一个新文件夹 gogs,并在其中建一个子文件夹 data

文件夹
装载路径
说明
docker/gogs/data/data 
存放数据,包括仓库和配置文件

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口
容器端口
说明
32343000
主服务端口,用于访问 Gogs 的 Web 界面
322222
用于 SSH 访问,以便通过 Git 协议进行代码推送和拉取

命令行安装

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

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

# 进入 gogs 目录
cd /volume1/docker/gogs

# 运行容器
docker run -d \\
   --restart unless-stopped \\
   --name gogs \\
   -p 3234:3000 \\
   -p 3222:22 \\
   -v $(pwd)/data:/data \\
   gogs/gogs:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'

services:
gogs:
    image:gogs/gogs:latest
    container_name:gogs
    restart:unless-stopped
    ports:
      -\"3234:3000\"
      -\"3222:22\"
    volumes:
      -./data:/data

然后执行下面的命令

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

# 进入 gogs 目录
cd /volume1/docker/gogs

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

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:3234 就能看到向导界面

既然是简易,数据库就选择 SQLite3

修改

  • 域名: 填写 Docker 主机的主机名或 IP 地址,将默认的 localhost 改为 192.168.0.197
  • 应用 URL:填写公开的访问地址,将默认的 http://localhost:3000/  改为  http://192.168.0.197:3234/

如果要启用 SSH 协议,要将 SSH 端口 改为 3222;

点 立即安装

完成之后,会显示登录界面

第一次需要先注册

登录成功后的主界面

接下来就可以创建仓库了

如果是管理员,可以进入管理面板

参考文档

gogs/gogs: Gogs is a painless self-hosted Git service
地址:https://github.com/gogs/gogs

Gogs: A painless self-hosted Git service
地址:https://gogs.io/

gogs/gogs - Docker Image | Docker Hub
地址:https://hub.docker.com/r/gogs/gogs

@所有人:写文不易,如果你都看到了这里,请点个赞和在看,分享给更多的朋友;为确保你能收到每一篇文章,请主页右上角设置星标。

\n \n
\n
预览时标签不可点
\n \n
\n\n \n
\n \n
\n
\n \n
\n \n \n \n
\n
\n
\n\n
\n\n\n \n
\n
\n\n
\n\n \n
\n
\n \n
\n
\n
\n\n \n
\n
\n
\n \n

Scan to Follow

\n
\n
\n
\n
\n\n \n \n\n
\n
\n \n 继续滑动看下一个\n
\n
\n\n
\n\n\n
\n\n\n\n\n\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n 各种折腾
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n 向上滑动看下一个\n
\n
\n
\n
\n\n\n\n
\n\n\n
\n\n\n
\n\n\n
\n
\n \n
\n
\n\n\n
\n
\n
\n
\n
\n Got It\n
\n
\n
\n\n\n\n\n\n\n
\n
\n
\n \n Scan with Weixin to
use this Mini Program\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n Cancel\n Allow\n
\n
\n
\n\n
\n
\n
\n
\n \n
\n
\n \n
\n Cancel\n Allow\n
\n
\n
\n\n
\n \n \n
\n\n\n
\n
\n
\n
\n \n
\n \"跳转二维码\"\n
\n \"作者头像\"\n
\n
\n
\n
\n

微信扫一扫可打开此内容,
使用完整服务

\n
\n
\n
\n\n\n \n
\n
\n
\n
\n
\n
\n \n \n\n: \n,\n,\n,\n,\n,\n,\n,\n,\n,\n,\n,\n,\n.\n \n\n\nVideo\nMini Program\n\n\nLike\n,轻点两下取消赞\nWow\n,轻点两下取消在看\nShare\nComment\nFavorite\n听过\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n \n\n\n\n", - "content": "\n\n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n \n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n\n \n \n \n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n\n \n \n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n
\n
\n \n
\n
\n \n\n\n\n\n
\n \n
\n \n
\n \n \n \n
\n \n
\n \"cover_image\"\n
\n
\n
\n\n \n
\n
\n \n \n \n \n \n\n
\n \n

\n极易搭建的自助Git服务Gogs

\n
\n Original\n \n 杨浦老苏\n \n \n \n \n 各种折腾 \n \n
\n
\n \n \n \n \n \n \n \n \n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n \n\n \n \n \n \n \n \n \n \n

简介

什么是 Gogs ?

Gogs 是一个轻量级、自托管的 Git 服务,旨在提供简单、高效的 Git 版本控制解决方案。它允许用户在自己的服务器上快速部署 Git 仓库,便于团队协作和代码管理。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的所有平台,包括 Linux、macOS、Windows 和基于 ARM 的操作系统。

主要特点

  1. 易于安装: 用户只需运行适合其平台的二进制文件,或通过 Docker、Vagrant 等工具进行部署。
  2. 跨平台支持:Gogs 可以在多种操作系统上运行,包括 Windows、Mac、Linux 和 ARM 等。
  3. 轻量级:Gogs 的最低系统要求非常低,可以在 Raspberry Pi 等低配置设备上运行,甚至一些用户在 NAS 设备上也能成功部署。
  4. 开源免费:Gogs 是 100% 开源的,遵循 MIT 许可证,源代码可在 GitHub 上获取,用户无需支付费用即可使用。

应用场景

  • 团队协作: Gogs 适合开发团队用于管理代码和项目,提供版本控制和协作功能。
  • 私有项目托管: 适合需要在内部网络中托管代码的企业和开发者,确保数据安全。
  • 轻量级解决方案: 对于资源有限的环境(如小型服务器或单板计算机),Gogs 提供了一个经济实惠的 Git 解决方案。

Gogs 以其简洁和高效的特性,成为了许多开发者和团队的理想选择。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 gogs ,选择第一个 gogs/gogs,版本选择 latest。

本文写作时, latest 应该是  0.13.2 之后的版本;

从软件界面看是 0.14.0+dev

卷

在 docker 文件夹中,创建一个新文件夹 gogs,并在其中建一个子文件夹 data

文件夹
装载路径
说明
docker/gogs/data/data 
存放数据,包括仓库和配置文件

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口
容器端口
说明
32343000
主服务端口,用于访问 Gogs 的 Web 界面
322222
用于 SSH 访问,以便通过 Git 协议进行代码推送和拉取

命令行安装

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

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

# 进入 gogs 目录
cd /volume1/docker/gogs

# 运行容器
docker run -d \\
   --restart unless-stopped \\
   --name gogs \\
   -p 3234:3000 \\
   -p 3222:22 \\
   -v $(pwd)/data:/data \\
   gogs/gogs:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'

services:
gogs:
    image:gogs/gogs:latest
    container_name:gogs
    restart:unless-stopped
    ports:
      -\"3234:3000\"
      -\"3222:22\"
    volumes:
      -./data:/data

然后执行下面的命令

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

# 进入 gogs 目录
cd /volume1/docker/gogs

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

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:3234 就能看到向导界面

既然是简易,数据库就选择 SQLite3

修改

  • 域名: 填写 Docker 主机的主机名或 IP 地址,将默认的 localhost 改为 192.168.0.197
  • 应用 URL:填写公开的访问地址,将默认的 http://localhost:3000/  改为  http://192.168.0.197:3234/

如果要启用 SSH 协议,要将 SSH 端口 改为 3222;

点 立即安装

完成之后,会显示登录界面

第一次需要先注册

登录成功后的主界面

接下来就可以创建仓库了

如果是管理员,可以进入管理面板

参考文档

gogs/gogs: Gogs is a painless self-hosted Git service
地址:https://github.com/gogs/gogs

Gogs: A painless self-hosted Git service
地址:https://gogs.io/

gogs/gogs - Docker Image | Docker Hub
地址:https://hub.docker.com/r/gogs/gogs

@所有人:写文不易,如果你都看到了这里,请点个赞和在看,分享给更多的朋友;为确保你能收到每一篇文章,请主页右上角设置星标。

\n \n
\n
预览时标签不可点
\n \n
\n\n \n
\n \n
\n
\n \n
\n \n \n \n
\n
\n
\n\n
\n\n\n \n
\n
\n\n
\n\n \n
\n
\n \n
\n
\n
\n\n \n
\n
\n
\n \n

Scan to Follow

\n
\n
\n
\n
\n\n \n \n\n
\n
\n \n 继续滑动看下一个\n
\n
\n\n
\n\n\n
\n\n\n\n\n\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n 各种折腾
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n 向上滑动看下一个\n
\n
\n
\n
\n\n\n\n
\n\n\n
\n\n\n
\n\n\n
\n
\n \n
\n
\n\n\n
\n
\n
\n
\n
\n Got It\n
\n
\n
\n\n\n\n\n\n\n
\n
\n
\n \n Scan with Weixin to
use this Mini Program\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n Cancel\n Allow\n
\n
\n
\n\n
\n
\n
\n
\n \n
\n
\n \n
\n Cancel\n Allow\n
\n
\n
\n\n
\n \n \n
\n\n\n
\n
\n
\n
\n \n
\n \"跳转二维码\"\n
\n \"作者头像\"\n
\n
\n
\n
\n

微信扫一扫可打开此内容,
使用完整服务

\n
\n
\n
\n\n\n \n
\n
\n
\n
\n
\n
\n \n \n\n: \n,\n,\n,\n,\n,\n,\n,\n,\n,\n,\n,\n,\n.\n \n\n\nVideo\nMini Program\n\n\nLike\n,轻点两下取消赞\nWow\n,轻点两下取消在看\nShare\nComment\nFavorite\n听过\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n \n\n\n\n", - "category": "", - "link": "https://mp.weixin.qq.com/s/eL0FL7l0NuILUZZB6EEyug", - "creator": "", - "pubDate": "2025-06-30T11:01:20.000Z", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "eL0FL7l0NuILUZZB6EEyug", - "language": "", - "folder": "IT技术", - "feed": "各种折腾", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "b54132b0681affd72262bc6384d424bf", - "highlights": [] - }, { "title": "微信公众号文章搜索MCP服务weixin_search_mcp", "description": "\n\n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n \n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n\n \n \n \n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n\n \n \n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n
\n
\n \n
\n
\n \n\n\n\n\n
\n \n
\n \n
\n \n \n \n
\n \n
\n \"cover_image\"\n
\n
\n
\n\n \n
\n
\n \n \n \n \n \n\n
\n \n

\n微信公众号文章搜索MCP服务weixin_search_mcp

\n
\n Original\n \n 杨浦老苏\n \n \n \n \n 各种折腾 \n \n
\n
\n \n \n \n \n \n \n \n \n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n \n\n \n \n \n \n \n \n \n \n

前言

偶然发现了一个 python 库,可以搜索微信公众号的文章。

miku_ai 是一个用于搜索和获取微信公众号文章 Python 库。它使用异步方法来提高效率,能够快速获取指定关键词的相关文章信息。

虽然老苏不是程序员,但还是粗浅的研究了一下这个库的工作原理,是基于搜狗引擎来搜索微信文章的

速度挺快的

所以通过 AI 的协助,老苏将其手搓成了一个 MCP 服务,代码放在了 https://github.com/wbsu2003/weixin-search-mcp

安装

源码安装

如果不想借助服务器,可以在本机安装

关于 python 环境的安装,不在本文的范围,请自行搜索学习;

# 下载代码
git clone https://github.com/wbsu2003/weixin-search-mcp.git

# 通过代理
git clone https://gh-proxy.com/github.com/wbsu2003/weixin-search-mcp.git
  
# 进入目录  
cd weixin-search-mcp

# 安装依赖
pip install -r requirements.txt

# 运行服务
python main.py

docker 安装

在群晖上以 Docker 方式安装。

在注册表中搜索 wbsu2003 ,选择第一个 wbsu2003/weixin-search-mcp,版本选择 latest。

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口
容器端口
80008000

命令行安装

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

# 运行容器
docker run -d \\
   --restart unless-stopped \\
   --name weixin-search-mcp \\
   -p 8000:8000 \\
   wbsu2003/weixin-search-mcp

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'

services:
  mcp:
    image: wbsu2003/weixin-search-mcp
    container_name: weixin-search-mcp
    restart: unless-stopped
    ports:
      - 8000:8000

然后执行下面的命令

# 新建文件夹 weixin-search-mcp 和 子目录
mkdir -p /volume1/docker/weixin-search-mcp

# 进入 weixin-search-mcp 目录
cd /volume1/docker/weixin-search-mcp

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

# 一键启动
docker-compose up -d

运行

网页

在浏览器中输入 http://群晖IP:8000 就能看到主界面

输入搜索关键词和返回的最大结果数量

继续

在手机浏览器上也是没问题的

接口

在浏览器中输入 http://群晖IP:8000/docs 会看到接口文档,这个速度有点慢,如果页面空白不要担心,稍微多等一会儿

可以用命令行进行测试

# 测试健康检查
curl http://群晖IP:8000/health

# 测试文章搜索 API
curl -X POST \"http://群晖IP:8000/search_articles\" \\
     -H 'accept: application/json' \\
     -H \"Content-Type: application/json\" \\
     -d '{\"query\": \"人工智能\",\"top_num\": 5}'

# 访问 MCP SSE 端点
curl http://群晖IP:8000/mcp

MCP

当然更重要的是实际应用,以 Cherry Studio 为例

  • 名称: 自己好识别就可以
  • 类型:选择 SSE 协议
  • URL:http://群晖IP:8000/mcp,如果是安装在本机,可以用 http://localhost:8000/mcp

如果连接没问题,切换到工具可以看到内置的函数

新建一个助手,提示词可以明确 调用 mcp_weixin_search 搜索公众号文章

别忘了启用 MCP

输入关键词,这种情况默认会返回 5 条

如果希望返回更多,可以直接要求

从工具中看,参数确实是符合了我们的要求

但实际返回的少于我们的要求

风险提示

查询数量太大或者太频繁,可能存在风险,这个需要有充分的认识,下图来自 Miku Spider 的说明

Miku Spider 给的建议是使用代理和 User-Agent 轮换以避免被封禁,weixin_search_mcp 是基于同样的库,所以解决方案是一致的

参考文档

wbsu2003/weixin-search-mcp: 这是一个基于FastAPI的微信文章搜索MCP服务,提供了通过关键词搜索微信公众号文章的功能。
地址:https://github.com/wbsu2003/weixin-search-mcp

GobinFan/Miku_Spider: Miku Spider 是用于搜索微信公众号文章的 Python 工具,具有异步搜索、获取文章多信息等特性。
地址:https://github.com/GobinFan/Miku_Spider

@所有人:写文不易,如果你都看到了这里,请点个赞和在看,分享给更多的朋友;为确保你能收到每一篇文章,请主页右上角设置星标。

\n \n
\n
预览时标签不可点
\n \n
\n\n \n
\n \n
\n
\n \n
\n \n \n \n
\n
\n
\n\n
\n\n\n \n
\n
\n\n
\n\n \n
\n
\n \n
\n
\n
\n\n \n
\n
\n
\n \n

Scan to Follow

\n
\n
\n
\n
\n\n \n \n\n
\n
\n \n 继续滑动看下一个\n
\n
\n\n
\n\n\n
\n\n\n\n\n\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n 各种折腾
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n 向上滑动看下一个\n
\n
\n
\n
\n\n\n\n
\n\n\n
\n\n\n
\n\n\n
\n
\n \n
\n
\n\n\n
\n
\n
\n
\n
\n Got It\n
\n
\n
\n\n\n\n\n\n\n
\n
\n
\n \n Scan with Weixin to
use this Mini Program\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n Cancel\n Allow\n
\n
\n
\n\n
\n
\n
\n
\n \n
\n
\n \n
\n Cancel\n Allow\n
\n
\n
\n\n
\n \n \n
\n\n\n
\n
\n
\n
\n \n
\n \"跳转二维码\"\n
\n \"作者头像\"\n
\n
\n
\n
\n

微信扫一扫可打开此内容,
使用完整服务

\n
\n
\n
\n\n\n \n
\n
\n
\n
\n
\n
\n \n \n\n: \n,\n,\n,\n,\n,\n,\n,\n,\n,\n,\n,\n,\n.\n \n\n\nVideo\nMini Program\n\n\nLike\n,轻点两下取消赞\nWow\n,轻点两下取消在看\nShare\nComment\nFavorite\n听过\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n \n\n\n\n", @@ -2360,28 +2184,6 @@ "hash": "cec0b4ac495d75dcf0d0496c32a70cac", "highlights": [] }, - { - "title": "FeedMe:通过AI摘要提升阅读效率", - "description": "\n\n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n \n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n\n \n \n \n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n\n \n \n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n
\n
\n \n
\n
\n \n\n\n\n\n
\n \n
\n \n
\n \n \n \n
\n \n
\n \"cover_image\"\n
\n
\n
\n\n \n
\n
\n \n \n \n \n \n\n
\n \n

\nFeedMe:通过AI摘要提升阅读效率

\n
\n Original\n \n 杨浦老苏\n \n \n \n \n 各种折腾 \n \n
\n
\n \n \n \n \n \n \n \n \n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n \n\n \n \n \n \n \n \n \n \n

本文软件由网友  P家单推人 推荐;

简介

什么是 FeedMe ?

FeedMe 是一个基于 AI 的 RSS 阅读器,旨在通过聚合和自动生成摘要来重新定义用户的 RSS 阅读体验。该项目可以轻松部署到 GitHub Pages 或使用 Docker 本地运行。

主要特点

  1. 多源 RSS 聚合:从多个信息源获取并整合 RSS 内容,便于用户集中获取信息。
  2. AI 摘要生成:自动使用大语言模型(LLM)为文章生成摘要,帮助用户快速了解内容要点。
  3. 定时更新机制:支持通过 GitHub Actions 或 Cron 定期自动更新内容,确保信息新鲜。
  4. 分类浏览:支持按分类查看不同信息源,方便用户根据兴趣进行浏览。
  5. 主题切换:提供明暗主题切换,提升用户体验。
  6. 静态部署:可部署在 GitHub Pages 等静态托管服务上,简单易用。
  7. Docker 部署:可以在本地服务器上轻松部署,适合需要本地运行的用户。

应用场景

  • 个人信息聚合:用户可以通过 FeedMe 聚合自己感兴趣的新闻、博客和其他信息源,方便集中阅读。
  • 内容监控:适合需要实时监控特定主题或领域的用户,自动获取最新动态。
  • 开发者和技术爱好者:开发者可以使用 FeedMe 集成不同技术博客和开源项目的更新,保持知识更新。
  • 自定义信息源:用户可以根据需求配置 RSS 源,灵活定制信息获取方式。

FeedMe 提供了一个轻量级、自由定制的解决方案,适合各种需要信息聚合和快速浏览的用户。

构建镜像

如果你不想自己构建,可以跳过,直接阅读下一章节

官方提供了 Dockerfile ,但需要我们自己编。构建镜像的基本命令如下👇

# 下载代码
git clone https://github.com/Seanium/FeedMe.git

# 通过代理
git clone https://gh-proxy.com/github.com/Seanium/FeedMe.git

# 进入目录  
cd FeedMe

# 构建镜像
docker build -t wbsu2003/feedme:v1 .

# 运行容器
docker run -d \\
   --restart unless-stopped \\
   --name feedme \\
   -p 3220:3000 \\
   -v $(pwd)/env.txt:/app/.env \\
   -v $(pwd)/config:/app/config \\
   -v $(pwd)/data:/app/data \\
   wbsu2003/feedme:v1

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 wbsu2003 ,下拉找到  wbsu2003/feedme,版本选择 latest。

卷

在 docker 文件夹中,创建一个新文件夹 feedme,并在其中建两个子文件夹 data 和 config

  • 在 feedme 根目录中准备一个 env.txt 文件

env.txt

env.txt 是环境变量文件,用来配置 FeedMe 项目调用外部 AI 服务(如摘要等)的相关信息

LLM_API_KEY=your_api_key
LLM_API_BASE=https://api.siliconflow.cn/v1
LLM_NAME=THUDM/GLM-4-9B-0414

其中:

  • LLM_API_KEY :你的大语言模型 API 密钥;
  • LLM_API_BASE:指定大语言模型 API 的基础地址;
  • LLM_NAME:指定所要使用的具体大语言模型名称;

目前硅基流动(SiliconFlow),注册就送 2000 万 Tokens,虽然不是免费,但也够用一阵子的,更何况还有很多免费的模型,例如: THUDM/GLM-4-9B-0414、Qwen/Qwen3-8B 等

注册地址

https://cloud.siliconflow.cn/i/NkUiXVhQ

  • 另外在 config 中准备两个文件,分别是 crontab-docker 和 rss-config.js

crontab-docker

crontab-docker  用于定时执行更新脚本,实现自动化更新。

下面👇的示例设置,表示每 3 小时运行一次

# Schedule the update and serve script to run every 3 hours
0 */3 * * * /app/scripts/update_and_serve.sh >> /proc/1/fd/1 2>&1

rss-config.js

rss-config.js 用于定义和管理所有的 RSS 源及相关配置,是数据抓取和展示的基础配置文件

你可以根据下面👇的示例修改,但是一定要记得,保存时采用 UTF-8 编码格式

// RSS源接口
// name: 信息源名称
// url: RSS URL地址
// category: 分类名称

/**
 * @typedef {object} RssSource
 * @property {string} name - 信息源名称
 * @property {string} url - RSS URL地址
 * @property {string} category - 分类名称
 */


// 默认配置
exportconst config = {
sources: [
    {
      name: \"Simon Willison's Weblog\",
      url: \"https://simonwillison.net/atom/everything/\",
      category: \"技术博客\",
    },
    {
      name: \"老苏的博客\",
      url: \"https://laosu.tech/atom.xml\",
      category: \"技术博客\",
    },
    {
      name: \"阮一峰的网络日志\",
      url: \"https://feeds.feedburner.com/ruanyifeng\",
      category: \"技术博客\",
    },
    {
      name: \"少数派\",
      url: \"https://sspai.com/feed\",
      category: \"科技资讯\",
    },
    {
      name: \"小众软件\",
      url: \"https://feeds.appinn.com/appinns/\",
      category: \"科技资讯\",
    },
  ],
maxItemsPerFeed: 30,
dataPath: \"./data\",
}

exportconst defaultSource = config.sources[0]

/**
 * @param {string} url
 * @returns {RssSource | undefined}
 */

exportfunction findSourceByUrl(url) {
return config.sources.find((source) => source.url === url)
}

exportfunction getSourcesByCategory() {
return config.sources.reduce((acc, source) => {
    if (!acc[source.category]) {
      acc[source.category] = []
    }
    acc[source.category].push(source)
    return acc
  }, {})
}
文件夹
装载路径
说明
docker/feedme/env.txt/app/.env
存放设置文件,包括定时任务和 RSS 源
docker/feedme/data/app/data
存放 RSS 源的数据文件,保存了最新的 RSS 源爬取和解析后的数据(比如文章列表、源信息等)
docker/feedme/config/app/config
存放设置文件,包括定时任务和 RSS 源

第一项 env.txt 是文件映射,后两项是文件夹映射

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口
容器端口
32203000

命令行安装

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

# 新建文件夹 feedme 和 子目录
mkdir -p /volume1/docker/feedme/{data,config}

# 进入 feedme 目录
cd /volume1/docker/feedme

# 将 env.txt 放入根目录
# 将 crontab-docker 和 rss-config.js 放入 config 目录

# 运行容器
docker run -d \\
   --restart unless-stopped \\
   --name feedme \\
   -p 3220:3000 \\
   -v $(pwd)/env.txt:/app/.env \\
   -v $(pwd)/config:/app/config \\
   -v $(pwd)/data:/app/data \\
   wbsu2003/feedme

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'

services:
feedme:
    image:wbsu2003/feedme
    container_name:feedme
    restart:unless-stopped
    ports:
      -3220:3000
    volumes:
      -./env.txt:/app/.env
      -./config:/app/config
      -./data:/app/data

然后执行下面的命令

# 新建文件夹 feedme 和 子目录
mkdir -p /volume1/docker/feedme/{data,config}

# 进入 feedme 目录
cd /volume1/docker/feedme

# 将 env.txt 放入根目录
# 将 crontab-docker 和 rss-config.js 放入 config 目录

# 一键启动
docker-compose up -d

运行

容器启动后,FeedMe 会根据我们在 rss-config.js 中设定的源进行数据抓取,源越多,花费的时间也越长,当然也和网络有很大的关系

当你在 data 目录中,看到和源数量相同的 json 文件时,就可以开始访问了

在浏览器中输入 http://群晖IP:3220 就能看到主界面

可以切换源

对于中文来说,摘要的用途不大,顶多也就是概括总结

切换到原文,你会发现,对英文还是很有用的

当然这只是因为老苏的英文太菜了😋

强制更新

按照 crontab-docker 的设定,数据是定时更新的,但如果需要强制更新,可以执行下面的命令

# 更新 RSS 数据
docker exec -it feedme /app/scripts/update_and_serve.sh

日志中会看到变化

参考文档

Seanium/FeedMe:AI 驱动的 RSS 阅读器,可部署到 GitHub Pages 或使用 Docker  --- Seanium/FeedMe: AI-powered RSS reader, deployable to GitHub Pages or with Docker | 用 AI 重新定义你的 RSS 阅读体验,轻松部署到 GitHub Pages / Docker
地址:https://github.com/Seanium/feedme

FeedMe
地址:https://feedme.icu/

@所有人:写文不易,如果你都看到了这里,请点个赞和在看,分享给更多的朋友;为确保你能收到每一篇文章,请主页右上角设置星标。

\n \n
\n
预览时标签不可点
\n \n
\n\n \n
\n \n
\n
\n \n
\n \n \n \n
\n
\n
\n\n
\n\n\n \n
\n
\n\n
\n\n \n
\n
\n \n
\n
\n
\n\n \n
\n
\n
\n \n

Scan to Follow

\n
\n
\n
\n
\n\n \n \n\n
\n
\n \n 继续滑动看下一个\n
\n
\n\n
\n\n\n
\n\n\n\n\n\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n 各种折腾
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n 向上滑动看下一个\n
\n
\n
\n
\n\n\n\n
\n\n\n
\n\n\n
\n\n\n
\n
\n \n
\n
\n\n\n
\n
\n
\n
\n
\n Got It\n
\n
\n
\n\n\n\n\n\n\n
\n
\n
\n \n Scan with Weixin to
use this Mini Program\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n Cancel\n Allow\n
\n
\n
\n\n
\n
\n
\n
\n \n
\n
\n \n
\n Cancel\n Allow\n
\n
\n
\n\n
\n \n \n
\n\n\n
\n
\n
\n
\n \n
\n \"跳转二维码\"\n
\n \"作者头像\"\n
\n
\n
\n
\n

微信扫一扫可打开此内容,
使用完整服务

\n
\n
\n
\n\n\n \n
\n
\n
\n
\n
\n
\n \n \n\n: \n,\n,\n,\n,\n,\n,\n,\n,\n,\n,\n,\n,\n.\n \n\n\nVideo\nMini Program\n\n\nLike\n,轻点两下取消赞\nWow\n,轻点两下取消在看\nShare\nComment\nFavorite\n听过\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n \n\n\n\n", - "content": "\n\n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n \n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n\n \n \n \n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n\n \n \n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n
\n
\n \n
\n
\n \n\n\n\n\n
\n \n
\n \n
\n \n \n \n
\n \n
\n \"cover_image\"\n
\n
\n
\n\n \n
\n
\n \n \n \n \n \n\n
\n \n

\nFeedMe:通过AI摘要提升阅读效率

\n
\n Original\n \n 杨浦老苏\n \n \n \n \n 各种折腾 \n \n
\n
\n \n \n \n \n \n \n \n \n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n \n\n \n \n \n \n \n \n \n \n

本文软件由网友  P家单推人 推荐;

简介

什么是 FeedMe ?

FeedMe 是一个基于 AI 的 RSS 阅读器,旨在通过聚合和自动生成摘要来重新定义用户的 RSS 阅读体验。该项目可以轻松部署到 GitHub Pages 或使用 Docker 本地运行。

主要特点

  1. 多源 RSS 聚合:从多个信息源获取并整合 RSS 内容,便于用户集中获取信息。
  2. AI 摘要生成:自动使用大语言模型(LLM)为文章生成摘要,帮助用户快速了解内容要点。
  3. 定时更新机制:支持通过 GitHub Actions 或 Cron 定期自动更新内容,确保信息新鲜。
  4. 分类浏览:支持按分类查看不同信息源,方便用户根据兴趣进行浏览。
  5. 主题切换:提供明暗主题切换,提升用户体验。
  6. 静态部署:可部署在 GitHub Pages 等静态托管服务上,简单易用。
  7. Docker 部署:可以在本地服务器上轻松部署,适合需要本地运行的用户。

应用场景

  • 个人信息聚合:用户可以通过 FeedMe 聚合自己感兴趣的新闻、博客和其他信息源,方便集中阅读。
  • 内容监控:适合需要实时监控特定主题或领域的用户,自动获取最新动态。
  • 开发者和技术爱好者:开发者可以使用 FeedMe 集成不同技术博客和开源项目的更新,保持知识更新。
  • 自定义信息源:用户可以根据需求配置 RSS 源,灵活定制信息获取方式。

FeedMe 提供了一个轻量级、自由定制的解决方案,适合各种需要信息聚合和快速浏览的用户。

构建镜像

如果你不想自己构建,可以跳过,直接阅读下一章节

官方提供了 Dockerfile ,但需要我们自己编。构建镜像的基本命令如下👇

# 下载代码
git clone https://github.com/Seanium/FeedMe.git

# 通过代理
git clone https://gh-proxy.com/github.com/Seanium/FeedMe.git

# 进入目录  
cd FeedMe

# 构建镜像
docker build -t wbsu2003/feedme:v1 .

# 运行容器
docker run -d \\
   --restart unless-stopped \\
   --name feedme \\
   -p 3220:3000 \\
   -v $(pwd)/env.txt:/app/.env \\
   -v $(pwd)/config:/app/config \\
   -v $(pwd)/data:/app/data \\
   wbsu2003/feedme:v1

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 wbsu2003 ,下拉找到  wbsu2003/feedme,版本选择 latest。

卷

在 docker 文件夹中,创建一个新文件夹 feedme,并在其中建两个子文件夹 data 和 config

  • 在 feedme 根目录中准备一个 env.txt 文件

env.txt

env.txt 是环境变量文件,用来配置 FeedMe 项目调用外部 AI 服务(如摘要等)的相关信息

LLM_API_KEY=your_api_key
LLM_API_BASE=https://api.siliconflow.cn/v1
LLM_NAME=THUDM/GLM-4-9B-0414

其中:

  • LLM_API_KEY :你的大语言模型 API 密钥;
  • LLM_API_BASE:指定大语言模型 API 的基础地址;
  • LLM_NAME:指定所要使用的具体大语言模型名称;

目前硅基流动(SiliconFlow),注册就送 2000 万 Tokens,虽然不是免费,但也够用一阵子的,更何况还有很多免费的模型,例如: THUDM/GLM-4-9B-0414、Qwen/Qwen3-8B 等

注册地址

https://cloud.siliconflow.cn/i/NkUiXVhQ

  • 另外在 config 中准备两个文件,分别是 crontab-docker 和 rss-config.js

crontab-docker

crontab-docker  用于定时执行更新脚本,实现自动化更新。

下面👇的示例设置,表示每 3 小时运行一次

# Schedule the update and serve script to run every 3 hours
0 */3 * * * /app/scripts/update_and_serve.sh >> /proc/1/fd/1 2>&1

rss-config.js

rss-config.js 用于定义和管理所有的 RSS 源及相关配置,是数据抓取和展示的基础配置文件

你可以根据下面👇的示例修改,但是一定要记得,保存时采用 UTF-8 编码格式

// RSS源接口
// name: 信息源名称
// url: RSS URL地址
// category: 分类名称

/**
 * @typedef {object} RssSource
 * @property {string} name - 信息源名称
 * @property {string} url - RSS URL地址
 * @property {string} category - 分类名称
 */


// 默认配置
exportconst config = {
sources: [
    {
      name: \"Simon Willison's Weblog\",
      url: \"https://simonwillison.net/atom/everything/\",
      category: \"技术博客\",
    },
    {
      name: \"老苏的博客\",
      url: \"https://laosu.tech/atom.xml\",
      category: \"技术博客\",
    },
    {
      name: \"阮一峰的网络日志\",
      url: \"https://feeds.feedburner.com/ruanyifeng\",
      category: \"技术博客\",
    },
    {
      name: \"少数派\",
      url: \"https://sspai.com/feed\",
      category: \"科技资讯\",
    },
    {
      name: \"小众软件\",
      url: \"https://feeds.appinn.com/appinns/\",
      category: \"科技资讯\",
    },
  ],
maxItemsPerFeed: 30,
dataPath: \"./data\",
}

exportconst defaultSource = config.sources[0]

/**
 * @param {string} url
 * @returns {RssSource | undefined}
 */

exportfunction findSourceByUrl(url) {
return config.sources.find((source) => source.url === url)
}

exportfunction getSourcesByCategory() {
return config.sources.reduce((acc, source) => {
    if (!acc[source.category]) {
      acc[source.category] = []
    }
    acc[source.category].push(source)
    return acc
  }, {})
}
文件夹
装载路径
说明
docker/feedme/env.txt/app/.env
存放设置文件,包括定时任务和 RSS 源
docker/feedme/data/app/data
存放 RSS 源的数据文件,保存了最新的 RSS 源爬取和解析后的数据(比如文章列表、源信息等)
docker/feedme/config/app/config
存放设置文件,包括定时任务和 RSS 源

第一项 env.txt 是文件映射,后两项是文件夹映射

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口
容器端口
32203000

命令行安装

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

# 新建文件夹 feedme 和 子目录
mkdir -p /volume1/docker/feedme/{data,config}

# 进入 feedme 目录
cd /volume1/docker/feedme

# 将 env.txt 放入根目录
# 将 crontab-docker 和 rss-config.js 放入 config 目录

# 运行容器
docker run -d \\
   --restart unless-stopped \\
   --name feedme \\
   -p 3220:3000 \\
   -v $(pwd)/env.txt:/app/.env \\
   -v $(pwd)/config:/app/config \\
   -v $(pwd)/data:/app/data \\
   wbsu2003/feedme

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'

services:
feedme:
    image:wbsu2003/feedme
    container_name:feedme
    restart:unless-stopped
    ports:
      -3220:3000
    volumes:
      -./env.txt:/app/.env
      -./config:/app/config
      -./data:/app/data

然后执行下面的命令

# 新建文件夹 feedme 和 子目录
mkdir -p /volume1/docker/feedme/{data,config}

# 进入 feedme 目录
cd /volume1/docker/feedme

# 将 env.txt 放入根目录
# 将 crontab-docker 和 rss-config.js 放入 config 目录

# 一键启动
docker-compose up -d

运行

容器启动后,FeedMe 会根据我们在 rss-config.js 中设定的源进行数据抓取,源越多,花费的时间也越长,当然也和网络有很大的关系

当你在 data 目录中,看到和源数量相同的 json 文件时,就可以开始访问了

在浏览器中输入 http://群晖IP:3220 就能看到主界面

可以切换源

对于中文来说,摘要的用途不大,顶多也就是概括总结

切换到原文,你会发现,对英文还是很有用的

当然这只是因为老苏的英文太菜了😋

强制更新

按照 crontab-docker 的设定,数据是定时更新的,但如果需要强制更新,可以执行下面的命令

# 更新 RSS 数据
docker exec -it feedme /app/scripts/update_and_serve.sh

日志中会看到变化

参考文档

Seanium/FeedMe:AI 驱动的 RSS 阅读器,可部署到 GitHub Pages 或使用 Docker  --- Seanium/FeedMe: AI-powered RSS reader, deployable to GitHub Pages or with Docker | 用 AI 重新定义你的 RSS 阅读体验,轻松部署到 GitHub Pages / Docker
地址:https://github.com/Seanium/feedme

FeedMe
地址:https://feedme.icu/

@所有人:写文不易,如果你都看到了这里,请点个赞和在看,分享给更多的朋友;为确保你能收到每一篇文章,请主页右上角设置星标。

\n \n
\n
预览时标签不可点
\n \n
\n\n \n
\n \n
\n
\n \n
\n \n \n \n
\n
\n
\n\n
\n\n\n \n
\n
\n\n
\n\n \n
\n
\n \n
\n
\n
\n\n \n
\n
\n
\n \n

Scan to Follow

\n
\n
\n
\n
\n\n \n \n\n
\n
\n \n 继续滑动看下一个\n
\n
\n\n
\n\n\n
\n\n\n\n\n\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n 各种折腾
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n 向上滑动看下一个\n
\n
\n
\n
\n\n\n\n
\n\n\n
\n\n\n
\n\n\n
\n
\n \n
\n
\n\n\n
\n
\n
\n
\n
\n Got It\n
\n
\n
\n\n\n\n\n\n\n
\n
\n
\n \n Scan with Weixin to
use this Mini Program\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n Cancel\n Allow\n
\n
\n
\n\n
\n
\n
\n
\n \n
\n
\n \n
\n Cancel\n Allow\n
\n
\n
\n\n
\n \n \n
\n\n\n
\n
\n
\n
\n \n
\n \"跳转二维码\"\n
\n \"作者头像\"\n
\n
\n
\n
\n

微信扫一扫可打开此内容,
使用完整服务

\n
\n
\n
\n\n\n \n
\n
\n
\n
\n
\n
\n \n \n\n: \n,\n,\n,\n,\n,\n,\n,\n,\n,\n,\n,\n,\n.\n \n\n\nVideo\nMini Program\n\n\nLike\n,轻点两下取消赞\nWow\n,轻点两下取消在看\nShare\nComment\nFavorite\n听过\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n \n\n\n\n", - "category": "", - "link": "https://mp.weixin.qq.com/s/jFPxZMLSKIxsBa72VhwVhg", - "creator": "", - "pubDate": "2025-06-23T11:00:24.000Z", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "jFPxZMLSKIxsBa72VhwVhg", - "language": "", - "folder": "IT技术", - "feed": "各种折腾", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "9d4d7122028a361937c754b38d2b7578", - "highlights": [] - }, { "title": "宋朝不可以随便杀牛,为什么「好汉们」却总能吃到牛肉?", "description": "
\"头图\"/
\n

不准随便杀牛,不等于吃不了牛肉。

\n

像是汉朝也禁止杀牛,横人董卓楞是带头杀牛,杀的还是耕牛。不是偷偷摸摸地杀牛,吃牛。

\n

而是有人投靠自己时,就召集一群人来大吃特吃,搞起宴席,生怕别人不知道他杀了耕牛吃了牛肉一般,“诸豪帅有来从之者,卓为杀耕牛,与共宴乐。”

\n
\"\"
图片来自网络,供参考
\n

宋朝也是这样,上有政策,下有对策。

\n

像董卓那样的强横,老百姓很难学,多数人也不大敢学。这样大张旗鼓的,无疑是鼓励邻里把自己给卖了。

\n

两宋之时,确实明文禁止屠牛杀牛。《宋会要辑稿》也有多项规定,比如,“昭牛羊司畜孳乳者并放牧之,无得宰杀。”又比如,“自今屠耕牛及盗杀牛罪不至死者,并系狱以闻,当从重断。”

\n

但百姓也有一些个人应对,有的是紧急情况不得不吃,有的是形成规模获取暴利,也不是别的时代,就在宋朝。

\n

先看第一种,紧急避险,呆萌可爱的hello kitty逼急了,也能变成老虎一战。

\n

《宋史》卷四百二十六列传第一百八十五,“初,民饥,多杀耕牛食之。”饿死事大,先保命要紧,被动主动地尝尝牛肉的味道,哪怕后果是“犯者皆配关中。”

\n
\"\"
图片来自网络,供参考
\n

接下来是第二种,一些地方公开化的宴席吃牛现象。梁山好汉们在一些地方吃到类似的牛肉饭菜,并不奇怪。

\n

事实上,在宋朝的浙江秀州(今天的嘉兴市一带)搞宴席时,当地民众就爱吃牛肉,以至于“凡百筵会,必杀牛取肉,巧为庖馔,恣啖为乐。”

\n
秀州青龙镇盛肇,凡百筵会,必杀牛取肉,巧为庖馔,恣啖为乐。
\n

宋真宗时期,“浙民以牛肉为上味,不逞之辈竞于屠杀。”因为当地吃牛的人太多了,有大臣就建议说,皇上,要不就算了吧,别罚了,罚不过来啊。

\n

当然, 我个人发挥了一下,这是原文,“事发即逮捕滋广,请释不问罪。”

\n

南宋《建炎以来系年要录》也说,当时的福建、江浙等地涌现了规模化的贩牛屠宰,原文为,“福建、江浙贩牛屠宰,十百为群。”

\n

南宋判例汇编《名公书判清明集》,详细地记录了一些见闻,都是城里城外公然买卖牛肉的,“数日以来,闻诸道途之言,自界首以至近境,店肆之间,公然鬻卖,而城市之中亦复滔滔皆是。”

\n
\"\"
图片来自网络,供参考
\n

第三种,为换取更大的利益,贩牛、偷牛、杀牛。

\n

前面提到,“福建、江浙贩牛屠宰,十百为群。”也是类似的情况。

\n

违禁屠牛吃牛肉的情况,有的就发生在北宋天子眼皮底下的开封府。

\n

《宋会要辑稿》记了一个经典案例,“京城无赖辈,相聚蒲博,开柜坊,屠牛马驴狗以食,销铸铜钱,为器用杂物,令开封府戒坊市谨捕之,犯者斩……”

\n

接下来,是南宋福建泉州的偷牛、转售、杀牛,已形成一定的灰色产业链,“……屠牛之风,与盗贼实相表里。盖屠牛者,盗杀人之牛,与承盗者之牛而屠之。”

\n

哦,对了,在泉州城内屠杀牛牛的人,甚至还有一些身份不大一样的人,他们是赵宋宗室子弟,相对没落的那一部分。

\n

相应记录出自南宋福建人陈淳《上傅寺丞论民间利病六条》,

\n
此间屠牛,在城是宗室不检者,乡村是亡命浮浪者。
\n

现在。

\n

我们再回头看看问题,

\n
宋朝不可以随便杀牛,为什么“好汉们”却总能吃到牛肉?
\n

当赵宋宗室的一些子弟都按捺不住,公然屠牛牟利时。

\n

人家梁山好汉们,或明或暗地喝酒,吃牛肉,算甚问题!

\n

(图片来自网络,供参考)

\n
\n
\n\n\n
查看知乎讨论
\n\n
\n\n\n\n

获取更多RSS:
https://feedx.net
https://feedx.site
",