Skip to content

mikezzx2009/NotMac

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NotMac 🖥️

License: MIT Node React

一个运行在浏览器里的类 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 代理)

部署到阿里云轻量应用服务器(Ubuntu 22.04)

  1. 上传项目到服务器(任选一种):

    # 方式 A:本机执行,用 scp 上传(把 IP 换成你的服务器地址)
    scp -r ./NotMac root@你的服务器IP:/opt/notmac
    
    # 方式 B:服务器上从 git 仓库拉取
    git clone <你的仓库地址> /opt/notmac
  2. 在服务器上执行一键部署脚本

    cd /opt/notmac
    sudo bash deploy/setup.sh

    脚本会自动完成:安装 Node.js 20 与 Nginx → 安装依赖并构建前端 → 注册 systemd 服务(开机自启、崩溃自动重启)→ 配置 Nginx 反向代理到 80 端口。

  3. 放行 80 端口:登录阿里云控制台 → 轻量应用服务器 → 防火墙 → 添加规则,放行 TCP 80。

  4. 浏览器访问 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

可选:启用 HTTPS

如有域名,解析到服务器后执行:

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 官方资源。

About

🖥️ NotMac — 运行在浏览器里的类 macOS 桌面系统 | A macOS-like web desktop with multi-user accounts, cloud file system, 14 built-in apps incl. a voxel game & Chinese Chess AI

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages