一个运行在浏览器里的类 macOS 桌面系统。不是 Mac,但很像 Mac。
A macOS-like web desktop that actually works — multi-user accounts, a cloud-backed virtual file system, 14 built-in apps (Finder, Terminal, a voxel sandbox game, Gomoku & Chinese Chess with AI, and more), i18n (中文/English), all persisted server-side in SQLite.
在线体验 / Live Demo: notmac.zares.me
支持多用户注册登录,所有文件、备忘录、照片、日历、系统设置均保存在服务器端(SQLite), 下次在任何设备登录都能恢复原状。
| 系统 | 应用 |
|---|---|
| 开机动画、登录/注册界面、锁定屏幕 | 访达(浏览/新建/重命名/上传/下载文件) |
| 菜单栏(下拉菜单、实时时钟) | 终端(ls/cd/cat/echo/mkdir/rm/mv/open/neofetch…) |
| Dock(悬停放大、运行指示灯) | 备忘录(多条、自动云端保存) |
| 多窗口(拖动/缩放/最小化/最大化) | 文本编辑(⌘S 保存到云端任意路径) |
| 聚焦搜索 ⌘+空格(搜应用和云端文件) | 照片(上传/浏览/删除,存云端) |
| 控制中心(深色模式/亮度/音量) | 日历(添加日程,云端同步) |
| 启动台、右键菜单、通知横幅 | 计算器(支持键盘输入) |
| 浅色/深色主题、8 款壁纸、强调色 | 浏览器、废纸篓(恢复/清空)、系统设置、关于本机 |
| 中文 / English 双语界面(设置中切换) | NotCraft 方块世界(three.js 3D 体素游戏,挖掘/建造存云端) |
| 棋苑:五子棋 + 中国象棋(人机/双人、三档 AI 难度、悔棋、战绩与残局云端同步) |
- 前端:React 18 + Vite + Zustand(纯前端窗口管理器)
- 后端:Node.js + Express + better-sqlite3
- 认证:bcrypt 密码哈希 + JWT(30 天有效期)
- 存储:SQLite 单文件数据库,虚拟文件系统按用户隔离
npm --prefix server install
npm --prefix client install
node server/index.js # 后端 :3000
npm --prefix client run dev # 前端 :5173(已配置 /api 代理)-
上传项目到服务器(任选一种):
# 方式 A:本机执行,用 scp 上传(把 IP 换成你的服务器地址) scp -r ./NotMac root@你的服务器IP:/opt/notmac # 方式 B:服务器上从 git 仓库拉取 git clone <你的仓库地址> /opt/notmac
-
在服务器上执行一键部署脚本:
cd /opt/notmac sudo bash deploy/setup.sh脚本会自动完成:安装 Node.js 20 与 Nginx → 安装依赖并构建前端 → 注册 systemd 服务(开机自启、崩溃自动重启)→ 配置 Nginx 反向代理到 80 端口。
-
放行 80 端口:登录阿里云控制台 → 轻量应用服务器 → 防火墙 → 添加规则,放行 TCP 80。
-
浏览器访问
http://你的服务器IP,注册账户即可使用。
systemctl status notmac # 查看服务状态
journalctl -u notmac -f # 实时日志
systemctl restart notmac # 重启
# 更新代码后重新构建并重启
cd /opt/notmac
npm --prefix client run build && systemctl restart notmac所有用户数据都在 server/data/ 目录(notmac.db 及 WAL 文件),定期备份即可:
tar czf notmac-backup-$(date +%F).tar.gz /opt/notmac/server/data如有域名,解析到服务器后执行:
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d 你的域名NotMac/
├── client/ # React 前端
│ └── src/
│ ├── components/ # 桌面、窗口、Dock、菜单栏、聚焦搜索…
│ └── apps/ # 12 个内置应用
├── server/ # Express 后端(含 SQLite 数据库)
└── deploy/ # 部署脚本、systemd、Nginx 配置
欢迎 Issue 和 PR!无论是新应用(比如给 Dock 再添一个应用)、新壁纸、翻译,还是 bug 修复。
MIT — 随意使用、修改、分发。
NotMac 是个人学习/娱乐项目,与 Apple Inc. 无任何关联。界面为致敬之作,未使用任何 Apple 官方资源。