2025-09-27 23:20:27
我见过许多可以上传照片,将其作为作品展示的平台,比如小红书、Instagram、抖音,再或者是图虫,或者是国外的 Unsplash 等平台。或许和写博客一样,内心有一股执念,数据只有掌握在自己手里才安全,紧接着便开始搜索各种可自部署的图片展示服务。
过去使用 Typecho 搭配立云图志的 Snapic Plus 主题,折腾了一段时间,最近又因为拾一的 Afilmory 项目,勾起自己的折腾兴趣,尝试了许多次,终究因为它缺少后台管理功能,无法直接在后台添加新的照片,需要在存储端进行增加,较为繁琐。最近找到另一款类似的项目——ChronoFrame,外观、功能大差不差,最重要的是有 dashboard,随时随地登录后台添加新照片,极其方便。
相比较 Afilmory,ChronoFrame 的部署也更简单利落,熟悉 Docker 则非常容易上手。提供 Docker 和 Docker Compose 两种形式,这里将自己的过程记录下来,方便以后继续使用。
我在服务器上安装了 1panel,新建文件夹,命名“photo”,然后新建文件,命名为 .env,在文件里填入下列信息:
# Admin user email (required)
CFRAME_ADMIN_EMAIL=
# Admin user name (required)
CFRAME_ADMIN_NAME=
# Admin user password (required)
CFRAME_ADMIN_PASSWORD=
# 应用标题与口号
NUXT_PUBLIC_APP_TITLE=
NUXT_PUBLIC_APP_SLOGAN=
NUXT_PUBLIC_APP_AUTHOR=
NUXT_PUBLIC_APP_AVATAR_URL=
# Mapbox Token
NUXT_PUBLIC_MAPBOX_ACCESS_TOKEN=
# 存储提供者(s3/github/local)(required)
NUXT_STORAGE_PROVIDER=s3
# S3 存储服务配置(required)
NUXT_PROVIDER_S3_ENDPOINT=
NUXT_PROVIDER_S3_BUCKET=chronoframe
NUXT_PROVIDER_S3_REGION=auto
NUXT_PROVIDER_S3_ACCESS_KEY_ID=
NUXT_PROVIDER_S3_SECRET_ACCESS_KEY=
NUXT_PROVIDER_S3_PREFIX=photos/
NUXT_PROVIDER_S3_CDN_URL=
# 会话密码(32 位随机字符串,必须设置)(required)
NUXT_SESSION_PASSWORD=
# GitHub OAuth
NUXT_OAUTH_GITHUB_CLIENT_ID=
NUXT_OAUTH_GITHUB_CLIENT_SECRET=
备注 required 的则是必填项,最上面是登录邮箱和密码,接着是网站标题和描述、头像地址等,如果照片上存有地点信息,则可以申请 Mapbox 的 Token 一并部署,网站上就可以显示相应的地理信息;最主要的是存储提供者,目前仅支持 S3 协议,比如缤纷云、阿里云 OSS、腾讯云 COS,都可以使用,难点在于存储桶的相关信息要填写正确。
另外还需要创建 docker-compose.yml
文件,填入下列信息:
services:
chronoframe:
image: ghcr.io/hoshinosuzumi/chronoframe:latest
container_name: chronoframe
restart: unless-stopped
ports:
- '3000:3000'
volumes:
- ./data:/app/data
env_file:
- .env
最后一步,启动命令:
docker-compose up -d
这是我部署的:
这是陈仓颉部署的:
他一开始部署没成功,气得红温,最后还是折腾成功了。
部署完这个服务之后,上传了一些自认为还不错的照片,然后呢,内心又陷入一阵空虚。照片没拍几张,却一心想着如何展示,你拍得很好吗?其实也一般,但只要自己喜欢,就足够了。
最后,问一下小孙,你的 Camlife 进展如何。
2025-09-18 23:00:02
今天下班很早,天气不错。风吹在脸上,气温宜人。趁着还有一点夕阳的余晖,我回到家便换上装备,骑行至附近的公园。
按照往常的路线,最初是一段约 200 米的短坡,侧风阵阵,或许是未曾热身,显得有些吃力。翻过这道坡,便是一段漫长而舒适的下坡路。常有居民在这里跑步、散步,两旁的树木郁郁葱葱,路灯的光影在树叶间摇曳,投下斑驳的剪影。从这里开始,我借着身后的风和路面的坡度,毫不费力地滑行。下坡之后,人流渐密,滑轮滑的孩子、散步的老人,还有跑步的父母和他们的孩子。这是一段起伏不大的平坦路,风依然助我前行,但我不敢骑得太快。继续往前,我选择了一条之前在博客提过的未曾踏足的小径,即便知道前方的风景已然烂熟于心,这次也不例外。
风势渐强,路旁一排排柳树摇曳,外侧便是湖。湖面卷起层层波浪,树上的柳条也随之狂舞。看不见风的形状,但路上全是风。我借着这股强劲的势头,越骑越快,越骑越轻松。只需以正常的力度踩踏,平坦的路面和强劲的风,仿佛有无形的手在身后推动着我,好风凭借力,送我上青云。
然而,人生的路并非总是一帆风顺,风向也并非永远顺遂。返程途中,天色渐渐暗了下来,人影却丝毫未减。路灯微弱的光几乎被夜色吞噬,而车上的手电筒也在此刻耗尽了电量。更糟的是,风向完全逆转,正面迎向我。我看不清路面的碎石和凹坑,又怕行人与小狗忽然从路边窜出,每一步都必须小心翼翼,异常谨慎。我曾想过,能否寻觅另一条归途——一条灯火通明、人迹稀少的路?或许可以,或许很容易找到,但在这夜色与逆风中,一切都变得未知而艰难。
我最终没有选择逃避。路上的风依然在吹,我知道,寻找一条顺风的路,意味着要绕更远、花费更多的时间。我不知风何时会变小,更不知它停歇之后的路是否会更难。骑行的路上,总会遇到诸多未知。与其想尽办法逃避,不如弯下腰,躬下身,减少与风的接触面积;既然路灯太暗,那就紧贴着路边,放慢速度。逆风,终会过去。这路或许难走一阵子,但绝不会一直难下去。
拨动车上的小铃铛,清脆的响声提醒着周边的行人,我借着微弱的灯光,慢慢骑出了公园。公园之外,是一条宽阔的大道,汽车呼啸而过。这里的路灯很亮,路面很平坦,没有顺风的推动,但骑行却出奇地轻松。
这条路不会一直难走,再难走的路都走过去了,迎接自己的一定是坦途。
《当我在骑车时,我在想什么》最先出现在印记。
2025-09-14 22:41:48
在积薪关停之后,博客阅读来源几乎只有订阅的 RSS,用 Folo 进行查阅。单从积薪的形式和做法来说,它是一个好项目,收录的博客都很有水准,不管是从内容、设计、风格等方面都是一些值得收藏和阅读的好网站,没能延续下去确实是一个遗憾。可能这也是网站商业化的弊端之一,要考虑受众群体的想法和需求。
一个博客导航网站倒下,还会有成千上万个博客导航网站出现。现在就是如此,但同质化太严重,要么是千篇一律的模板,要么是没有严格的收录标准,一些质量低下、存活时间不长的网站输出 RSS 到首页,更是污染时间线的行为,我曾经也做过博客导航网站,也因上述原因而倒下,这次我选择做点不一样的。
它只是我的一个收藏,像一个图书馆一样,把我喜欢的博客放进去,贴上我定义的标签,按我的想法进行分类,99% 的主观,不带任何广告,不掺杂任何商业元素,不接受任何自荐,我没有收藏某个博客,并不代表这个博客不好,只表示我不喜欢。因此,我这次没有使用其他网站程序,没有找所谓的导航主题,只用 Notion,并用它的自定义域名发布,有人要问了,既然自己收藏,一切都随自己想法,为什么还要公开呢,雅俗共赏,看一看别人的审美和兴趣。
最初定义的是收藏一些有特色的博客网站,特色的涵盖范围比较广,包括但不限于内容本身、网站设计、文章排版等等。基于我的主观性,拒绝花里胡哨、无病呻吟之流的博客,也拒绝网络搬运、三天打鱼,两天晒网等类型的网站。现在很常见的一个现象是,是个人都能建网站,随便发点东西就能称之为博客,但实际上更多的是在污染中文互联网,制造越来越多的内容农场。与之对应的是优质内容很难快速、便捷获取,这才有了我的这个想法。
目前使用 Notion 的数据库,画廊模式,添加了网址、标签、程序等字段,后续我也会在详情里添加自己的一些描述和评论。没有额外添加 RSS 地址,我几乎已经订阅了,而且如果访问到这个网站的用户,有需要,直接去博客里寻找即可。
有意思的是,幸运地使用了 BlogRoll 作为 Notion 二级域名的前缀,所以网址是:
以上观点并不针对特定的人和网站,请勿对号入座。
问:你为什么要收藏自己的博客?
答:我乐意。
2025-09-07 20:35:20
什么时候开始聊起 Mastodon,已经不太记得,我曾经提过一次,群里如果想玩的人多,一起部署一个实例,后面不了了之;1900 最近分享部署 GoToSocial 的心得,带动了几个群友一起入坑,韩宇提议要不部署一个实例一起使用,我表示赞同,并提供 yxvm 的服务器使用,然而一周不到,从开始到放弃。
Mastodon 始于2016年,一个开源项目,往大了讲,是组成联邦宇宙的服务之一,具体我也不是很清楚。凭我的感觉来说,Mastodon 似乎一直不温不火,像是 Twitter 的替代品,在 Elon Musk 收购 Twitter 之后,以及 Twitter 限制用户使用频率期间,都有一大批用户逃离 Twitter,拥抱 Mastodon,我也是其中之一,甚至还有工具支持一键迁移关注者(只需在 Twitter 的 Bio 上备注 Mastodon 的用户名),称之为 Twitter 难民。
但 Twitter 改名 X 之后,仍然活得好好的,Mastodon 也没有将其取而代之,包括后面 Meta 推出的 Threads,我感觉只要 Twitter 仍然存在,同类型的软件或服务便很难取代它,即使做得再好,也很难改变一个人的使用习惯,我体验过 Mastodon、Threads,熟悉的人和内容仍然在 Twitter 上,切换到另一个软件上则十分不适应。
以上内容来自四个月前的 Obsidian 笔记,当时群里都热衷部署 Mastodon 和 GoToSocial,本想继续往下写,但最终还是昙花一现,现在也只是偶尔提一提。今天重新拾起,是因为上周在 WordPress 上安装了 ActivityPub 插件,我的理解是它将 WordPress 博客作为一个去中心化的节点,连接去中心化社交网络,因此可以在 Mastodon、GoToSocial、Friendica、Misskey 等联邦平台通过搜索[email protected]
来关注我,WordPress 上发布的博客都会自动同步一条动态至联邦平台,在联邦平台留下的评论或点赞,都会同步反馈到 WordPress。
前段时间短暂体验 Ghost,在 6.0 版本中新增了 Fediverse 功能,即我上面提到的去中心化社交网络,不用安装任何插件,也是同样的原理,有点不同的是 WordPress 只能同步新文章动态,而 Ghost 完全可以作为一个联邦平台使用,不仅同步新文章动态,还可以自己发布内容。
那天我发了一句话,这确实是我理想中的去中心化,不用自己部署类似 Mastodon 一样的服务,不用额外注册账号,不用费尽心思选择实例,只要部署一个 Ghost,既可以写博客,也可以发动态,通过去中心化社交网络,可以浏览别人的内容。
目前 WordPress 上的 ActivityPub 插件还没有类似的功能,希望后续能跟上。有意思的一个点,在使用 Ghost 的时候,同步了几条动态到 Fediverse 上,但我删除 Ghost 之后,Fediverse 上的内容仍然保存着,包括账号、动态、点赞,以及别人的评论,博友老刘戏称我在 Fediverse 上拉了一坨屎,然后扬长而去。
社交平台和短视频一样,会让有一种刷不完、看不完的错觉,每天醒来、睡前习惯性地打开 Twitter、微博等平台,刷一刷看一看,我觉得这其实不是好习惯。人还是要有具体的生活。出门,下楼,去街道,去自然中,吹野外的风,见到人群,见到动物,摸摸花草和树。不能关上房门在互联网大战风车。人会坏掉的。
所以还是写博客吧。
说一句题外话,又想把博客评论关掉了,原因可以看上一篇文章评论区。
《ActivityPub 与去中心化社交》最先出现在印记。
2025-09-04 22:43:52
在 X 上看到 Lyric 分享他的产品 Quaily 的新功能,上线了统计分析,虽然没做完,但又不是不能用。恰巧陈仓颉提起 Quaily 的设计风格和原则,好看,令人喜欢。
在 Quaily 官方网站上有一篇内容《 Quaily 的替代品》,详细介绍了 Quaily 能做什么,不能做什么,如果你想做它不能做的,它会推荐使用其他产品。在此之前看见类似的内容是在 flomo 的 101 文档中,也写了其产品适合用来做什么,不适合用来做什么等等。
优先考虑创作者,给读者最佳体验。所以可以看到 Quaily 每次迭代都是给创作者更好的创作体验,给读者更好的阅读体验,每一步都十分克制,与其告诉别人 Quaily 比某某产品更好在哪里,不如用心打磨应该做好的地方。
聊着聊着,又想起我那“死”去已久的周报,最新一期停留在 6 个月前,从 2023 年的教师节,到今年的 2 月份,一共 12 期。坦白来说我很喜欢这种周报形式的内容,像写日记一般回顾过去一周的事情,尤其是将自己经历的有趣事情、见过的有意思的人、看过或读过有意义的文字和视频一一记录下来,是一种梳理生活的方式,日记也是我读大学时期最喜欢做的事情之一,曾信誓旦旦要写完好几本,最终也只停留在信誓旦旦阶段。同时,最近我也深刻体会到没有输入就没有输出的感觉,这两年没看完一本书,电影也看得少,一有空就把时间投入到娱乐之中,逛社交平台、短视频平台等等,写博客的时候半天写不出一个字来,有时候觉得挺痛苦,挺难受。
刚刚登录 Quaily 后台,已经和 6 个月前大不一样了,但不变的是给人一种优雅、舒适的感觉。让我意外的是,在停止更新 6 个月之久,内容仅有 12 篇的情况下,7 月份还新增了一个读者,意外之喜。还记得几个月前,在L,.G.的文章《一键发布 Newsletter:AppleScript 与 Quaily CLI 的完美配合》下面评论说真想把博客切换到 Quaily 上来,既好看又好用,还在不断迭代更新,谁不想使用呢。
我也想继续写,继续分享我的每一周,即使没有多姿多彩,也有平凡和朴素在其中。但工作让我很难闲下来做自己喜欢的事情,若非这段时间买了新键盘,就连写博客的心思都没多少,每天下班回来只想放空自己,从短视频中找到一点快乐,这样的话,我的一周就是上班和下班。今天还在抱怨工作,不想算工资,做梦都梦到自己转岗,在梦里不用牵扯和薪酬相关的任何东西,开心得不想醒来。
抱怨归抱怨,生活还是得继续,我最近正调整自己的生活方式,比如早起一个小时,一个小时可以做许多自己想做的事情,锻炼、做早饭、洗衣服、听音乐,或者刷一刷 RSS,看看别人的更新,目前我的做法就是泡一杯茶,一边吃早饭一边阅读文章,到点再出门上班。我相信, 变化往往是从习惯的改变开始。
或许在不远的未来,会看到 13、14、15 期周报……
2025-09-03 22:35:31
现在越来越喜欢一些小而美的软件,它们不来自大厂,没有花里胡哨的功能,没有商业气息,在 GitHub 或者各种论坛上经常可以看到别人自发分享和推荐,今年开始使用 macOS 之后,对一些小工具的使用程度大大降低,可能是获取方式不对,但也有不少收获。
macOS 上的“日历”程序似乎有点鸡肋,虽然我对于它的使用频率不高,不会增加日程、提醒等内容,只是像以前使用 Windows 那样,点击左下角查看今天是周几,农历是什么日子,仅此而已。在 macOS 上,我需要打开“日历”才能查到今天是农历七月十二。使用频率高,天天打开,倒是无所谓,对于我这种使用频率低,只想看农历的用户来说却显得多余。
与此同时,另一款系统自带程序就恰到好处。“天气”程序,状态栏有个小图标,只需要点击图标,就会弹出一个小框,清晰明了的显示当前的气温和天气状况,不用打开软件。相比之前使用 Windows,它自带的天气程序略丑,难看,我查询天气的方式基本上是打开浏览器,输入 xx 天气进行搜索,准确与否另说。
便捷程度,给它竖大拇指。
今天在 X 上看见别人分享一款日历工具,正好解决了这个小问题。把日历放在状态栏上,点击小图标,展示本月日历,农历也会在下方显示。
点击具体日期就会进入系统日历程序,可以继续操作,比如添加日程等等。它是一款开源程序,叫做 LunarBar,还翻到开发者写的其开发背后的故事。
LunarBar:https://github.com/LunarBar-app/LunarBar/
LunarBar 的开发:https://github.com/LunarBar-app/LunarBar/blob/main/DEV.md
我一直以为农历就是阴历,公历就是阳历,而实际上农历是阴阳合历,开发一个日历工具,背后是历法知识、天文地理与编程语言之间的博弈,怪不得开发者说这是即传统又现代的产品。
其他同类产品:
《放在状态栏上的日历工具》最先出现在印记。