Files
MoShiro/packaging/quadlet/moshiro-probe.container
T
justme 29d998bc94
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline failed
ci/woodpecker/push/dev-image unknown status
build(quic): bundle Linux runtime libraries [CI]
2026-10-10 04:01:24 +08:00

56 lines
2.8 KiB
INI
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# MoShiro Probe 的 Podman Quadlet 单元(Podman 4.6 及以上)。节点的更新也靠它:systemd 每次启动这个单元时 Pull=always 先从镜像仓库拉最新的镜像,
# 所以节点退出再被拉起就是更新(节点自己不下载、不替换任何东西)。默认自动更新:面板发现新版本后,节点运行满 10 分钟就自己有序退出;
# 想改成在管理端点「更新」才更新,在 env 文件里写 MOSHIRO_UPDATE_POLICY=manual。
#
# 安装(rootless,普通用户,不用 sudo):
# mkdir -p ~/.config/containers/systemd ~/.config/moshiro
# 把面板「添加 Probe」给的 .env 内容存成 ~/.config/moshiro/probe.env,chmod 600
# 把本文件放进 ~/.config/containers/systemd/
# systemctl --user daemon-reload && systemctl --user start moshiro-probe # Quadlet 会自动生成服务,不用 enable;[Install] 让它开机自启
# loginctl enable-linger $USER # 退出登录后继续运行(需要管理员执行一次)
# rootful:本文件放进 /etc/containers/systemd/,.env 内容存成 /etc/moshiro/probe.env,把下面的 EnvironmentFile 改成这个路径、
# WantedBy 改成 multi-user.target,用 systemctl(不加 --user)。
# 开发通道:把 Image 的 moshiro 换成 moshiro-dev。固定版本:把 :latest 换成 :<版本号>(固定之后更新不会换版本)。
# 想要完全自动、不用在管理端点:另外启用 podman-auto-update.timer,并在 [Container] 里加 AutoUpdate=registry(Pull=always 也保留)。
# 说明见 docs/ops/deployment.md。
[Unit]
Description=MoShiro Probe
After=network-online.target
Wants=network-online.target
[Container]
Image=registry.oeo.one/moshiro/moshiro-probe:latest
ContainerName=moshiro-probe
Pull=always
Network=host
RunInit=true
ReadOnly=true
NoNewPrivileges=true
DropCapability=ALL
SecurityLabelDisable=true
Tmpfs=/tmp:rw,noexec,nosuid,size=64m,mode=1777
StopTimeout=20
Volume=moshiro-probe-config:/etc/moshiro
Volume=/etc/os-release:/etc/os-release:ro
# 主机资源占用(只有汇总数字):只读挂载宿主机的 /proc、/sys 和根目录;不想上报就删掉这三行和下面三个 HOST_ 变量
Volume=/proc:/host/proc:ro
Volume=/sys:/host/sys:ro
Volume=/:/host/root:ro
Environment=HOST_PROC=/host/proc
Environment=HOST_SYS=/host/sys
Environment=HOST_ROOT=/host/root
Environment=MOSHIRO_NETWORK_SCOPE=host
Environment=LD_LIBRARY_PATH=/usr/local/bin
# 告诉节点:退出之后外面会重新拉取,所以「更新」就是退出(没有这一行,节点不报告更新状态)
Environment=MOSHIRO_UPDATE=restart
EnvironmentFile=%h/.config/moshiro/probe.env
[Service]
Restart=always
RestartSec=5
# 第一次拉取镜像可能要一会儿
TimeoutStartSec=600
[Install]
WantedBy=default.target