Compare commits

..

3 Commits

Author SHA1 Message Date
6ac6b835bf Edit Diaries.
All checks were successful
部署文档 / build (push) Successful in 1m34s
Signed-off-by: SilverAg.L <caclx@outlook.com>
2026-03-10 01:18:16 +08:00
4f393245ab Edit Diary: about me
All checks were successful
部署文档 / build (push) Successful in 1m17s
Signed-off-by: SilverAg.L <caclx@outlook.com>
2026-03-06 06:17:18 +08:00
7c26278cf6 deps: update
Signed-off-by: SilverAg.L <caclx@outlook.com>
2026-03-06 06:16:25 +08:00
5 changed files with 676 additions and 585 deletions

View File

@@ -85,8 +85,28 @@ date: 2025-05-16
银这个设定实际上直到去年才给她勾个轮廓——**白丝魅魔猫娘少女**。乍一听这四个词组合在一起很违和。说实话我也觉得( 银这个设定实际上直到去年才给她勾个轮廓——**白丝魅魔猫娘少女**。乍一听这四个词组合在一起很违和。说实话我也觉得(
首先说说“魅魔”吧。既然银这个字有着一层谐音关系(所谓“银梦”嘛),那么我就往涩涩的方向去考虑了。所以给她的定型是魅魔元素。 相比前面两个反映我不同时期的、特点鲜明的自设,“银”这一形象就相对一以贯之,同时又很随性了。大约在初中我就误入当时流传的所谓“本子库”[^benziku],所以涩涩也算是我一直以来的隐藏属性,如今启用这个自设也有种借谐音梗的题发挥的意思。
但一来我说话做不到大多数黄油的魅魔那么“诱人”,二来我养成的猫娘口癖根深蒂固,这就决定了**立绘主体仍然是猫娘**。那么怎么办呢?那就把猫尾巴替换成魅魔尾巴罢。“猫娘身上”的“魅魔尾巴”,很奇特的组合对吧(
剩下来的要素就很简单了:白丝一般显得清纯(相对地黑丝会显得诱惑一些),穿在“摇着魅魔尾巴的猫娘”身上增添些反差感;少女嘛……可以保留一些卡哇伊的感觉。(但实际想象起来好像更偏雌小鬼一点) [^benziku]: 具体的经过已经淡忘了,我的博客对涩涩的话题也比较含蓄。可以确定的是,“本子库”、“兔纱子”、“魔法少女”这些关键词是我早期的朦胧印象,后来形成的题材偏好(或者说 xp也是基于这个印象所做的建构。
至于这个轮廓为什么这么左右脑互搏,只能说是基于自身经历导致的历史惯性吧。钙设是猫少年嘛,加上我认识的老朋友们普遍爱发猫猫表情包,所以我的口癖不可避免地也倾向于喵来喵去,忽然摘掉“猫”这个元素反倒不知道怎么表达了(毕竟我做不到真像魅魔那样妩媚)。但我又希望能够突出涩涩的要素,所以最终形象就是点缀上白丝、魅魔尾巴、猫耳猫爪的少女啦。~~但自己想象的时候感觉更像雌小鬼一点()~~
设定上魅魔尾巴非常敏感,只是碰触就会浑身战栗的程度。若是摸上那么一两下说不定就开始发情了吧。 设定上魅魔尾巴非常敏感,只是碰触就会浑身战栗的程度。若是摸上那么一两下说不定就开始发情了吧。
> “诶嘿嘿…身体绵软被搂在怀里什么的……嘿嘿…
> “可是……为什么呢?光是咀嚼着文字想象,身体就酥酥麻麻的……
> “好羡慕……好烦躁……
> “你是怎么看我的呢,氯喵?你会要我吗?
> “好想再被你抱着……抱在怀里,就像…就像……”
> ::: right
> ——Ag
> :::
---
## 后记
事实上我确实没想过它们之间会有什么社会关系,毕竟本质上都是我在网络上的皮套而已,它们都是我,却又不完全是。但真的做出决定,“既然我本来就没活,索性把身为创作者的我,叫做‘氯’的我给埋葬了吧”,这么做的时候,我的内心还是会觉得痛苦,仿佛真的失去了重要的人一般。
基于这样的感情,我才决定写下这一篇随笔,完善这几个自设的形象。至于每个设定底下的自白,更多地是对[友链 PR](https://github.com/Twisuki/blog/pull/4) 里的小对话做一个扩写,很抱歉我并不擅长写一个完整的故事,只能像这样侧面地刻画 CaCl~2~ 和 AgCl 这两对之间的亲密关系。
不论钙、氯还是银,都是我精神世界的投射,也都寄托了我的愿望或是欲求。也许我就是很享受被人家说可爱、就是会为喜欢的事情不顾一切、就是会代入本子里的女孩子、就是想要“身体绵软被搂在怀里”呢?哪怕只是想象,只是在被窝里小声呢喃着“想要”,只是在博客里发癫、写一篇篇的碎碎念。

View File

@@ -8,10 +8,12 @@
## 硬件加速,硬件呢 ## 硬件加速,硬件呢
我是 Linux Docker 部署的。由于因特耳的核显驱动闭源,**官版 Docker 容器搞起来后还需要`exec -it`进去装 Intel 驱动**即便是`nyanmisaka`版开箱即用 Jellyfin 镜像,也需要**手动映射渲染节点**(他们就没设置过`render`用户组,若要**映射整个`/dev/dri`后续就需要进去`groupadd`** 我是 Linux Docker 部署的。由于因特耳的核显驱动闭源,**官版 Docker 容器搞起来后还需要`exec -it`进去装 Intel 驱动**即便是`nyanmisaka`版开箱即用 Jellyfin 镜像,也需要**手动映射渲染节点**[^renderD128]
[^renderD128]: 非要映射整个`/dev/dri`也可以,那样后续仍然**可能**需要进入容器里创建`render`组。并且由于`nyanmisaka`版镜像并没有对用户组做特别设置,如需映射渲染节点做硬件解码,就**不允许指定用户(组)运行**。
::: details docker-compose.yml ::: details docker-compose.yml
See [AgxCOy@liteyuki/agserver.svc](https://git.liteyuki.org/AgxCOy/agserver.svc). 以下是最简配置。如果预计暴露到公网上,建议再加上额外的安全措施,**尤其注意收紧容器的执行权限和性能分配**。
```yaml ```yaml
services: services:
jellyfin: jellyfin:
@@ -19,19 +21,18 @@ services:
container_name: jellyfin container_name: jellyfin
network_mode: 'host' network_mode: 'host'
volumes: volumes:
- /var/lib/jellyfin:/config - jellyfin-config:/config
- jellyfin-cache:/cache - jellyfin-cache:/cache
- /media:/media - /home/http/media:/media:ro,nosuid,nodev # recursive 'rx'
# - /dev/dri/renderD128:/dev/dri/renderD128 # - /dev/dri/renderD128:/dev/dri/renderD128
- type: bind - type: bind
source: /usr/share/fonts/opentype source: /usr/share/fonts/opentype
target: /usr/local/share/fonts/custom target: /usr/local/share/fonts/custom
read_only: true read_only: true
devices: devices:
- /dev/dri/renderD128:/dev/dri/renderD128 - /dev/dri/renderD128:/dev/dri/renderD128:rw
#- /dev/dri/card0:/dev/dri/card0 #- /dev/dri/card0:/dev/dri/card0
restart: 'unless-stopped' restart: 'unless-stopped'
# Optional - alternative address used for autodiscovery
# environment: # environment:
# - JELLYFIN_PublishedServerUrl= # - JELLYFIN_PublishedServerUrl=
extra_hosts: extra_hosts:
@@ -39,6 +40,8 @@ services:
volumes: volumes:
jellyfin-cache: jellyfin-cache:
driver: local driver: local
jellyfin-config:
driver: local
``` ```
::: :::
@@ -148,57 +151,14 @@ epub 的 mimetype 通常标`application/epub+zip`,说明其本质是压缩包
AI 对此的解法是在 frp 这里记录下真实 IP。我选配的服务商支持 Proxy Protocol也更推荐这么实现。但在实地测试后发现 Jellyfin 并不直接支持 Proxy Protocol那么就只能在 frpc 跟 Jellyfin 之间多加一层 nginx 做反向代理了frps 显然我是动不了的)。 AI 对此的解法是在 frp 这里记录下真实 IP。我选配的服务商支持 Proxy Protocol也更推荐这么实现。但在实地测试后发现 Jellyfin 并不直接支持 Proxy Protocol那么就只能在 frpc 跟 Jellyfin 之间多加一层 nginx 做反向代理了frps 显然我是动不了的)。
方法很简单frp 侧仍旧启用 Proxy Protocol在 nginx 里剥离真实 ip。我是在 Ubuntu Server 上安装的 nginx据称已集成`real-ip`模块。那么编辑`/etc/nginx/sites-enabled/default`(我是图方便直接原地开刀了): 方法很简单frp 侧仍旧启用 Proxy Protocol在 nginx 里剥离真实 ip。参见[官方文档](https://jellyfin.org/docs/general/post-install/networking/reverse-proxy/nginx)。
后来考虑到挂 web 的静态资源安全(防止意外删改),就顺势收紧 Jellyfin 容器的权限和性能分配。其中桥接网络让我想起最初的小巧思:我把 frp 挂在中间机器上,流量物理上不走内网不就好了。最终搭起来看了一眼日志,貌似连`nginx`都不需要了:
```log
[2026-03-09 10:08:57.650 +00:00] [INF] [23] Emby.Server.Implementations.HttpServer.WebSocketManager: WS "172.17.0.1" closed
[2026-03-09 10:08:58.280 +00:00] [INF] [28] Emby.Server.Implementations.HttpServer.WebSocketManager: WS "172.17.0.1" request
[2026-03-09 10:09:00.493 +00:00] [INF] [24] Jellyfin.Api.Controllers.UniversalAudioController: ...
[2026-03-09 10:09:00.495 +00:00] [INF] [24] Jellyfin.Api.Helpers.MediaInfoHelper: ...
[2026-03-09 10:09:00.495 +00:00] [INF] [24] Jellyfin.Api.Helpers.MediaInfoHelper: RemoteClientBitrateLimit: 6000000, RemoteIP: "172.17.0.1", IsInLocalNetwork: False
``` ```
server { 注意到最后一句`IsInLocalNetwork: False`,它似乎并不认为 Docker 容器的桥接网段是内网网段。这样一来连 frp 隧道都不需要动,天然就完成了我的小巧思。
listen 8097 proxy_protocol;
listen [::]:8097 proxy_protocol;
set_real_ip_from 127.0.0.1;
real_ip_header proxy_protocol;
server_name _;
add_header X-Content-Type-Options "nosniff";
location / {
proxy_pass http://127.0.0.1:8096;
proxy_set_header Host $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_set_header X-Forwarded-Protocol $scheme;
proxy_set_header X-Forwarded-Host $http_host;
proxy_buffering off;
}
location /socket {
proxy_pass http://127.0.0.1:8096;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $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_set_header X-Forwarded-Protocol $scheme;
proxy_set_header X-Forwarded-Host $http_host;
}
# Jellyfin 推荐给真实客户端信息“打码”
access_log /var/log/nginx/access.log stripsecrets;
}
# 为了解说方便把 http 块里的全局“打码”配置拉下来叻(本文件本来就嵌套在 http 块)。
# 不清楚先后顺序有没有影响。
log_format stripsecrets '$remote_addr $host - $remote_user [$time_local] '
'"$secretfilter" $status $body_bytes_sent '
'$request_length $request_time $upstream_response_time '
'"$http_referer" "$http_user_agent"';
map $request $secretfilter {
~*^(?<prefix1>.*[\?&]api_key=)([^&]*)(?<suffix1>.*)$ "${prefix1}***$suffix1";
~*^(?<prefix1>.*[\?&]ApiKey=)([^&]*)(?<suffix1>.*)$ "${prefix1}***$suffix1";
default $request;
}
```

View File

@@ -1,4 +1,4 @@
# 碎碎念25 年末版) # 碎碎念#1
最近折腾了不少东西,心情也起起伏伏。《如我所书》取自崩铁的同名词条,个人也倾向于记录那些“能成篇的”专栏;咱这主题又没动态功能,思来想去还是写到这充当《记忆的质料》吧。 最近折腾了不少东西,心情也起起伏伏。《如我所书》取自崩铁的同名词条,个人也倾向于记录那些“能成篇的”专栏;咱这主题又没动态功能,思来想去还是写到这充当《记忆的质料》吧。
## 可爱一点的博客主题 ## 可爱一点的博客主题

View File

@@ -11,14 +11,14 @@
}, },
"devDependencies": { "devDependencies": {
"@vuepress/bundler-vite": "2.0.0-rc.26", "@vuepress/bundler-vite": "2.0.0-rc.26",
"@vuepress/plugin-docsearch": "2.0.0-rc.123", "@vuepress/plugin-docsearch": "2.0.0-rc.124",
"@vuepress/plugin-remove-pwa": "2.0.0-rc.123", "@vuepress/plugin-remove-pwa": "2.0.0-rc.124",
"katex": "^0.16.33", "katex": "^0.16.35",
"mermaid": "^11.12.3", "mermaid": "^11.12.3",
"sass-embedded": "^1.97.3", "sass-embedded": "^1.97.3",
"vue": "^3.5.29", "vue": "^3.5.29",
"vuepress": "2.0.0-rc.26", "vuepress": "2.0.0-rc.26",
"vuepress-theme-hope": "2.0.0-rc.102" "vuepress-theme-hope": "2.0.0-rc.103"
}, },
"packageManager": "pnpm@9.15.3+sha512.1f79bc245a66eb0b07c5d4d83131240774642caaa86ef7d0434ab47c0d16f66b04e21e0c086eb61e62c77efc4d7f7ec071afad3796af64892fae66509173893a" "packageManager": "pnpm@9.15.3+sha512.1f79bc245a66eb0b07c5d4d83131240774642caaa86ef7d0434ab47c0d16f66b04e21e0c086eb61e62c77efc4d7f7ec071afad3796af64892fae66509173893a"
} }

1147
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff