areuok-app Svelte Themes

Areuok App

areuok - 开源版死了么(Damumu) App。跨平台打卡应用,支持多设备监督。使用 Tauri 2 + SvelteKit + Rust 构建。

Are U OK? (areuok) - 开源版死了么

English | 简体中文

一款简洁清爽的跨平台签到应用,支持连续签到统计、多设备监督、每日一言和邮件通知功能。

🎯 areuok 是「死了么」(现已更名为 DAMUMU)App 的开源替代版本,提供完整的本地离线功能,并可选择接入云端服务实现多设备同步与监督。

功能特性

  • 清爽界面 - 现代化设计,柔和动画,暗色模式支持
  • 🔥 签到统计 - 自动计算连续签到天数
  • 💬 每日一言 - 签到后展示励志语录
  • 📧 邮件通知 - 签到成功后发送邮件到指定邮箱
  • 📱 跨平台支持 - 支持 macOS、Windows、Linux、Android、iOS
  • 🔐 设备绑定 - 设备昵称与 IMEI 绑定,支持设备恢复
  • 🏷️ 昵称管理 - 昵称全局唯一,15天内仅可修改一次
  • 👀 多设备监督 - 设备间可互相监督签到状态(需要云端服务)
  • ☁️ 本地+云端 - 支持纯离线使用,也可接入云端服务同步数据

项目架构

本项目采用 本地客户端 + 可选云端服务 的架构:

┌─────────────────────────────────────────────────────────────┐
│                    areuok 客户端                             │
│         (Tauri 2 + SvelteKit + Rust)                        │
│                                                             │
│  ┌─────────────┐    ┌─────────────┐    ┌─────────────┐     │
│  │   macOS     │    │   Windows   │    │   Linux     │     │
│  └─────────────┘    └─────────────┘    └─────────────┘     │
│  ┌─────────────┐    ┌─────────────┐                        │
│  │   Android   │    │     iOS     │                        │
│  └─────────────┘    └─────────────┘                        │
└───────────────────────────┬─────────────────────────────────┘
                            │ HTTP API (可选)
                            ▼
┌─────────────────────────────────────────────────────────────┐
│                 areuok-server 云端服务                       │
│              (Rust + Axum + PostgreSQL)                     │
│                                                             │
│  • 设备注册与管理          • 签到数据同步                     │
│  • 多设备监督关系          • 连续签到统计                     │
│  • IMEI 设备绑定           • RESTful API                    │
└─────────────────────────────────────────────────────────────┘

使用模式

模式 描述 适用场景
纯离线模式 所有数据存储在本地,无需联网 个人使用,隐私优先
云端同步模式 接入云端服务,多设备数据同步 多设备使用,需要监督功能

相关仓库

仓库 描述
areuok 📱 客户端应用(本仓库)
areuok-server ☁️ 云端服务端

云端服务部署

如需使用多设备监督功能,需要自行部署 areuok-server:

快速部署(Docker)

# 克隆服务端仓库
git clone https://github.com/nicepeng/areuok-server.git
cd areuok-server

# 一键启动(包含 PostgreSQL + 服务端)
./start-docker.sh

# 服务将运行在 http://localhost:3000

服务端 API 概览

端点 方法 描述
/devices/register POST 注册新设备
/devices/{id} GET 获取设备信息
/devices/{id}/signin POST 设备签到
/devices/{id}/status GET 获取签到状态
/supervision/request POST 发起监督请求
/supervision/accept POST 接受监督请求
/supervision/list/{id} GET 获取监督关系列表

详细 API 文档请参阅 areuok-server 文档

客户端配置云端服务

在客户端应用中配置服务端地址:

  1. 打开应用设置
  2. 找到「云端服务」配置项
  3. 填写服务端地址(如:https://your-server.com
  4. 保存并测试连接

配置说明

1. 配置一言API

src-tauri/config.toml 文件中配置一言API:

[hitokoto]
id = "你的ID"
key = "你的KEY"

获取API凭证:访问 https://cn.apihz.cn 注册获取ID和KEY

2. 配置邮件通知

首次启动应用后:

  1. 点击右上角的设置图标 ⚙️
  2. 启用邮件通知开关
  3. 填写SMTP邮件配置:
    • 收件人邮箱 - 接收通知的邮箱地址
    • SMTP服务器 - 邮件服务器地址(如:smtp.gmail.com)
    • SMTP端口 - 邮件服务器端口(如:587)
    • SMTP用户名 - 邮件发送账户
    • SMTP密码 - 邮件发送密码(通常需要应用专用密码)
    • 发件人邮箱 - 显示在邮件中的发件人地址
  4. 点击"保存配置"

SMTP配置参考

Gmail:

  • 服务器:smtp.gmail.com
  • 端口:587
  • 需要使用应用专用密码

QQ邮箱:

  • 服务器:smtp.qq.com
  • 端口:587
  • 需要开启SMTP服务并获取授权码

163邮箱:

  • 服务器:smtp.163.com
  • 端口:25或465

开发

环境要求

  • Node.js 18+
  • Rust 1.70+
  • npm 或 pnpm

安装依赖

npm install

开发模式

npm run tauri dev

构建

npm run build

技术栈

  • 前端: Svelte 5 + SvelteKit + TypeScript
  • 后端: Tauri 2 + Rust
  • 存储: 文件系统(~/.config/areuok/)
  • 邮件: lettre 0.11
  • HTTP: reqwest 0.12

数据存储

应用数据存储在系统配置目录:

  • macOS: ~/Library/Application Support/areuok/
  • Linux: ~/.config/areuok/
  • Windows: %APPDATA%\areuok\

存储数据结构

{
  "device": {
    "device_id": "uuid",
    "device_name": "设备名称",
    "imei": "设备IMEI(可选)",
    "mode": "signin|supervisor",
    "created_at": "创建时间"
  },
  "supervision_requests": [...],
  "supervision_relationships": [...]
}

本地存储

浏览器 localStorage 存储:

  • areuok_device_id - 设备ID
  • areuok_device_name - 设备昵称
  • areuok_device_mode - 设备模式
  • areuok_device_imei - 设备IMEI
  • areuok_last_name_update - 昵称最后修改时间(用于15天限制)
  • locale - 界面语言设置

运行项目

# 开发模式
npm run tauri dev

# 构建生产版本
npm run build

IDE推荐

VS Code + Svelte + Tauri + rust-analyzer

文档

许可证

本项目采用 GNU General Public License v2.0 (GPLv2) 开源协议。

致谢

灵感来源

本项目是「死了么」(现已更名为 DAMUMU)App 的开源替代版本。在中文社区,「死了么」这个名称更为人所知。感谢原作者的创意灵感!

技术栈致谢

本项目的实现离不开以下优秀的开源项目:

核心框架

  • Tauri - 使用 Web 技术构建更小、更快、更安全的桌面和移动应用
  • Svelte & SvelteKit - 编译时前端框架
  • Rust - 安全、并发、高性能的系统编程语言

Rust 生态

  • lettre - Rust 邮件发送库
  • reqwest - Rust HTTP 客户端
  • serde - Rust 序列化/反序列化框架
  • chrono - Rust 日期时间库

前端工具

外部服务

感谢所有开源贡献者的辛勤付出!

贡献

欢迎提交 Issue 和 Pull Request!请先阅读 贡献指南

Top categories

Loading Svelte Themes