新接入的托管服务默认使用 ~/.farfarfun/<服务名>/,不要把配置或数据默认写入
~/opt/。确需覆盖服务根目录时使用该服务的 *_SERVICE_HOME 环境变量,且路径
必须为绝对路径。
沿用 DaemonSpec 的目录分工:app/ 放可替换的上游程序,data/ 放配置、密钥、
数据库和上传文件,run/ 放 PID,log/ 放日志。安装和升级只替换 app/;
data/ 在升级、回退时保留。配置文件首次安装时生成,已存在时绝不覆盖。
含密钥的数据目录使用 0700,配置文件使用 0600。启动前校验必填配置和实际
监听端口;涉及公网入口的服务还需在文档中写清反向代理及防火墙要求。卸载服务
时沿用现有的确认与路径保护,不绕过 Service 生命周期。
服务列表、交互菜单和状态总览按每个服务声明的最小端口从小到大排列;没有
端口的服务排在最后。新增服务通过 src/service/registry.rs 的 all() 注册,
沿用该处统一排序,不在各个界面另写顺序。