Skip to content

Typgram/Sleepy-Node

Repository files navigation

Sleepy Node.js 后端实现

欢迎来到 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部署

使用Docker Compose

项目已包含完整的 Docker 配置文件,可以通过以下命令快速部署:

git clone
docker-compose up -d

如果拉去Node的元数据时报错可以执行以下命令

export DOCKER_BUILDKIT=0
export COMPOSE_DOCKER_CLI_BUILD=0

这将构建镜像并启动容器,服务将在 http://localhost:8080 上可用。

自定义Docker配置

如果需要自定义 Docker 配置,可以修改以下文件:

  • Dockerfile: 定义了如何构建 Docker 镜像
  • docker-compose.yml: 定义了如何运行容器
  • .dockerignore: 定义了哪些文件不应复制到 Docker 镜像中

认证方式

API 支持多种认证方式:

  1. 查询参数: ?secret=your-secret-key
  2. 请求头: Sleepy-Secret: your-secret-key
  3. Bearer Token: Authorization: Bearer your-secret-key
  4. 请求体: {"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 项目做出贡献的开发者们!

About

Sleepy 的 Node 实现

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors