Map of Us 是一个本地优先的个人情侣记忆地图应用。它使用 Next.js 16 App Router、React 19、Tailwind 4 和 Electron,可以在浏览器里开发,也可以打包成桌面应用。
当前版本的目标是:数据全部保存在用户自己的电脑上,不依赖 Supabase,不需要联网认证。
- 密码入口页,输入站点密码后进入地图。
- 中国地图、省份详情、城市回忆、照片、多图封面、编辑和删除。
- 设置页可管理管理员模式、纪念日、沿途天气城市、右下角情侣 logo、登录页照片和文案。
- 设置页支持完整备份导出、导入恢复、清空数据。
- Electron 桌面版使用 Next.js standalone 生产服务,不运行
next dev。 - 桌面版数据写入 Electron
userData目录,安装包资源目录保持只读。
首次安装后的初始密码:
进入密码:1234
管理员密码:admin1234
第一次打开请用上面的初始密码登录。进入后请尽快改成自己的:
- 进入 设置 → 密码设置(需先用管理员密码开启管理员模式)。
- 进入密码建议填你们在一起的日期(月日,例如 12 月 23 日就填
1223),它就是打开 app 时输入的数字密码。 - 管理员密码自己设置。
- 修改后立即生效,关机重开也用新密码。
技术说明:桌面版不依赖 .env.local。首次启动时 Electron 会在用户数据目录创建本地认证配置 auth.local.json,保存这两个密码;AUTH_COOKIE_SECRET 会随机生成并存在同一文件里。在设置页改密码会直接写回这个文件。若启动环境显式设置了 SITE_PASSWORD、ADMIN_PASSWORD 或 AUTH_COOKIE_SECRET,则优先使用环境变量。
本应用是个人/开源分发,没有做苹果付费签名和公证,所以从网上下载后第一次打开会被系统拦一下。这是正常现象,按下面操作放行即可,只需要做一次,之后正常双击打开。
-
双击
Map of Us-0.1.0-arm64.dmg,把里面的 Map of Us 拖进「应用程序」。 -
在「应用程序」里 右键点 Map of Us → 打开,弹窗里再点一次 打开。
-
若新版 macOS 没有「打开」选项:打开 系统设置 → 隐私与安全性,往下找到关于 Map of Us 的提示,点 仍要打开。
-
若提示 「已损坏,应移到废纸篓」:打开「终端」运行下面这句去掉隔离标记,然后再打开:
xattr -cr "/Applications/Map of Us.app"
- 运行
Map of Us-0.1.0-x64-Setup.exe安装。 - 若出现蓝色 SmartScreen 提示:点 更多信息 → 仍要运行。
生成 Next.js standalone 生产产物:
npm run desktop:prepare生成未压缩的 macOS app,用于快速验证:
npm run dist:dir生成 macOS 安装包:
npm run dist:mac产物示例:
dist/mac-arm64/Map of Us.app
dist/Map of Us-0.1.0-arm64.dmg
生成 Windows x64 安装包:
npm run dist:win产物示例:
dist/win-unpacked/Map of Us.exe
dist/Map of Us-0.1.0-x64-Setup.exe
在 macOS 上可以生成 Windows 安装包,但不能完整验证 Windows 运行效果;最终发布前建议在 Windows 真机或 CI 上再安装运行一次。
当前打包未配置正式应用图标、Apple 开发者签名和公证。macOS 产物使用 ad-hoc signing,公开分发前需要配置证书、公证和图标。
浏览器开发模式默认写入项目目录:
data/localMemories.private.json
data/cityAssets.private.json
data/loginPhotos.private.json
桌面打包版写入 Electron userData/data。常见位置:
macOS: ~/Library/Application Support/Map of Us/data
Windows: %APPDATA%/Map of Us/data
可用环境变量覆盖桌面数据目录:
MAP_OF_US_DATA_DIR=/path/to/data
打包版会强制启用本地文件存储:
MAP_OF_US_STORAGE_MODE=local
MAP_OF_US_DESKTOP=1
因此即使 NODE_ENV=production,新增、编辑、删除和导入回忆也不会要求 Supabase。
在设置页开启管理员模式后,可以自定义:
- 纪念日名称和开始日期。
- 首页“沿途天气”的城市。
- 右下角情侣 logo。
- 登录页九宫格照片。
- 登录页每张照片的城市名和标签文案。
- 城市地标图。
这些设置会随完整备份一起导出。登录页照片、城市地标和回忆照片以本地数据形式保存。
在设置页使用“导出备份”保存完整备份文件。文件名会包含日期。
换电脑或重装后:
- 安装并打开桌面应用。
- 输入站点密码进入地图。
- 进入设置页,用管理员密码开启管理员模式。
- 导入备份文件。
导入会恢复回忆、城市地标、登录照片、纪念日、天气城市、logo,以及地点收藏、纪念日页面、时光宝盒等辅助数据。
## 目录速览
```text
app/ App Router 页面和 API
components/ 地图、入口页、回忆页和设置页组件
data/ 省份、城市、进度和浏览器侧数据工具
electron/ Electron 主进程入口
lib/ 地理数据、隐私模式和服务端存储工具
scripts/ standalone 准备脚本
public/logo/ logo 占位图
public/photos/ 默认照片素材
public/sprites/ 城市地标、图标和像素素材
dist/ 本地打包产物