欢迎来到 Sleepy Project 的 Node.js 后端实现仓库!
一个用于查看个人在线状态(以及正在使用软件)的 Node.js 应用,让他人能知道你不在而不是故意吊他/她
功能 / 快速开始 / Docker部署 / API文档 / 项目结构 / 开发指南
- 自行设置在线状态(活着/似了等)
- 实时更新设备使用状态(包括是否正在使用/打开的应用名)
- 开放的 API 接口,方便集成和扩展
- 支持 API 认证保护
- 支持 Docker 部署
pnpm install复制 .env.example 文件并创建 .env 文件:
cp .env.example .env然后根据需要修改 .env 文件中的配置项:
# 环境模式 (development/production)
NODE_ENV=development
# 服务器端口
PORT=8080
# API 认证密钥
SLEEPY_SECRET=your-secret-key
# 数据目录路径
DATA_DIR=_data
# 开发模式
pnpm dev
# 生产模式
pnpm start服务器启动后,访问 http://localhost:8080/api/status 检查服务是否正常运行。
项目已包含完整的 Docker 配置文件,可以通过以下命令快速部署:
git clone
docker-compose up -d如果拉去Node的元数据时报错可以执行以下命令
export DOCKER_BUILDKIT=0
export COMPOSE_DOCKER_CLI_BUILD=0这将构建镜像并启动容器,服务将在 http://localhost:8080 上可用。
如果需要自定义 Docker 配置,可以修改以下文件:
Dockerfile: 定义了如何构建 Docker 镜像docker-compose.yml: 定义了如何运行容器.dockerignore: 定义了哪些文件不应复制到 Docker 镜像中
API 支持多种认证方式:
- 查询参数:
?secret=your-secret-key - 请求头:
Sleepy-Secret: your-secret-key - Bearer Token:
Authorization: Bearer your-secret-key - 请求体:
{"secret": "your-secret-key"}
sleepy-backend/
├── _data/ # 数据存储目录
│ ├── data.json # 主数据文件
│ ├── devices.json # 设备数据
│ └── status.json # 状态数据
├── routes/ # 路由定义
│ ├── device.js # 设备相关路由
│ ├── query.js # 查询相关路由
│ ├── set.js # 设置相关路由
│ └── status.js # 状态相关路由
├── utils/ # 工具函数
│ ├── APIUnsuccessful.js # 错误处理
│ ├── auth.js # 认证中间件
│ ├── logger.js # 日志工具
│ ├── metaInfo.js # 元信息处理
│ └── uuidKits.js # UUID工具
├── .dockerignore # Docker忽略文件
├── .env.example # 环境变量示例
├── .gitignore # Git忽略文件
├── Dockerfile # Docker构建文件
├── docker-compose.yml # Docker Compose配置
├── index.js # 应用入口
├── openapi.json # API文档
├── package.json # 项目依赖
└── pnpm-lock.yaml # 依赖锁定文件
本项目是 Sleepy 项目的 Node.js 后端实现,灵感来源于 Bilibili UP @WinMEMZ 的原始项目 和 Sleepy-project/sleepy。
感谢所有为 Sleepy 项目做出贡献的开发者们!