配置指南
TIP
这些文档使用了 AI 帮助撰写,并经过人工审核和修改。请注意甄别内容真实性。
Sleepy Project 支持多种配置方式,加载优先级从高到低依次为:
- 环境变量 (以
SLEEPY_开头) data/config.yamldata/config.tomldata/config.json
推荐使用 YAML 格式进行配置。
配置文件结构
配置文件主要包含四个部分:main (系统), page (页面), status (状态逻辑), metrics (统计)。
1. 系统配置 (main)
yaml
main:
# 服务监听地址 (0.0.0.0 代表监听所有网卡)
host: "0.0.0.0"
# 服务端口
port: 9010
# 是否开启调试模式 (生产环境建议关闭)
debug: false
# 鉴权密钥 (相当于密码,API 调用和后台登录都需要)
secret: "your-super-secret-password"
# 数据库连接字符串 (默认 SQLite)
# MySQL 示例: "mysql://user:pass@localhost:3306/dbname"
database: "sqlite:///../data/data.db"
# 时区设置
timezone: "Asia/Shanghai"
# 静态文件缓存时间(秒)
cache_age: 1200
# 日志文件路径 (留空则不保存文件日志)
log_file: "data/running.log"2. 页面配置 (page)
yaml
page:
# 显示在页面上的名字 ([User]'s Status)
name: "User"
# 浏览器标题栏
title: "User Alive?"
# 页面描述 (Meta Description)
desc: "User's Online Status Page"
# 背景图片 URL
background: "https://imgapi.siiway.top/image"
# 页面 favicon
favicon: "/favicon.ico"
# 页面主题 (对应 theme/ 文件夹下的目录名)
theme: "default"
# 页面底部的额外文本 (支持 HTML)
more_text: ""
# "了解更多" 链接文字
learn_more_text: "GitHub Repo"
# "了解更多" 链接地址
learn_more_link: "https://github.com/sleepy-project/sleepy"3. 状态逻辑配置 (status)
yaml
status:
# 设备名称/状态过长时截断的长度 (0 为禁用)
device_slice: 50
# 网页轮询间隔 (毫秒)
refresh_interval: 5000
# 当设备 using=false 时显示的默认状态文本
not_using: "未在使用"
# 是否对设备列表进行排序 (A-Z)
sorted: false
# 是否将正在使用的设备排在前面
using_first: true
# 自定义主状态列表 (id 会自动根据顺序生成: 0, 1, 2...)
status_list:
- name: "活着"
desc: "目前在线,可以通过任何可用的联系方式联系本人。"
color: "awake" # 对应 CSS 类: awake, sleeping
- name: "似了"
desc: "睡似了或其他原因不在线,紧急情况请使用电话联系。"
color: "sleeping"4. 统计配置 (metrics)
yaml
metrics:
# 是否启用访问统计
enabled: true
# 允许计入统计的路径
allow_list:
- "/"
- "/api/status/query"
- "[static]" # 特殊值,匹配所有静态资源5. 插件配置
yaml
# 启用的插件列表 (按顺序加载)
plugins_enabled:
- "theme_detect"
# 插件的具体配置参数
plugin:
theme_detect:
auto_dark: true环境变量配置
所有配置项均可通过环境变量覆盖,前缀为 SLEEPY_,层级用 _ 分隔。
示例:
main.port->SLEEPY_MAIN_PORT=9020page.name->SLEEPY_PAGE_NAME=MyNamestatus.status_list(数组类型需传入 JSON 字符串) ->SLEEPY_STATUS_STATUS_LIST='[{"name":"Busy",...}]'