Closed Ovler-Young closed 8 months ago
不需要每次启动时修改html吧?只有在创建容器,或者更新image之后,运行一次sed即可。readme中提到的持久化是指更新image之后,不用再手动运行那一次。
因为对sed命令进行了修改,重复运行并不会重复插入。 只在创建容器或者更新image之后运行sed的确更优雅,但是似乎没有找到能这么干的设置处。 更改启动参数之后,后续升级更新也不再需要手动修改。
我更新一下readme,另外,sytemd那个方式,用ExecStartPre估计更好点 systemctl edit jellyfin.service 然后添加
[Service]
ExecStartPre=-/usr/bin/sed -i 's#</div></body>#</div><script src="https://jellyfin-danmaku.pages.dev/ede.user.js" defer></script></body>#' /usr/share/jellyfin/web/index.html
考虑到我管理的服务器中转发方案并非 nginx 或 caddy ,也有直接使用 ip 进行访问不使用转发的需求, #8 中的方案无法直接使用,但给予了我灵感,在每次 jellyfin 启动前先进行文件的修改也能完成持久化侧载。调试过程中发现 readme 所给的 sed 命令重复运行会重复插入,故稍作更改,增加了
</div>
的识别片段以避免js的重复插入。将 docker 容器的启动参数在原来
/init
的基础上增加 sed 部分,即可实现每次docker启动时自动修改html文件。以
hotio/jellyfin
的容器内html文件地址为例,将/init
改为如下即可:对于官方的容器如下:
另外,使用 systemd 自动运行 jellyfin 也可类似的进行修改,将 execstart 进行覆盖即可。