ClaudePhoto

家庭相册
家里人自己的 iCloud

iPhone 上传 → 家里服务器本地存储。老婆、娃、旅行、日常,一张都不流出家门。只在局域网,没有反代没有隧道,出门看不到 — 这是设计。

iOS · SwiftUI 仅局域网 AI 中文标签 自部署
ClaudePhoto 首页
ClaudePhoto 登录页
仅内网 🏠
18k+
Photos
1.5 TB
Quota
AI
Auto Tag
LAN
Only
每一屏都为家人做的
Upload

📸 一键上传,传过的自动跳过

从相册多选照片和视频,长按往下拖就是批量滑动多选。SHA-256 去重,同一张照片永远只存一份。

  • 照片 / 视频混合批量上传
  • hash 去重,重复的自动跳过
  • 逐张进度,传完清清楚楚
批量上传界面
Gallery · AI

🤖 AI 中文标签,搜「小孩 / 吃饭」就有

家里服务器本地跑 Ollama 视觉模型识图,每张照片自动打上 2-3 个中文标签。图库按月归档,读 EXIF 拍摄时间排时间轴。

  • 标签云点一下,符合的照片全出来
  • 按内容、地点、年份、相机聚合
  • 推理全在家里跑,不出门
图库按月归档
Old Albums

🗂 老照片硬盘,整盘搬回家

十几年攒下来的移动硬盘老照片,插上服务器直接浏览。文件夹结构原样保留,一个「老相册」标签页全装下。

  • staging 目录直读,不用二次整理
  • 按文件夹浏览,回忆按年翻
  • 想收进正式图库再批量导入
老相册文件夹
Family

👨‍👩‍👧 一人一个库,配额看得见

我和老婆各一个物理隔离的存储目录,互不干扰。设置页一眼看到自家用了多少:348 GB / 1.5 TB,还早。

  • 多用户独立 /data/<user>/ 目录
  • 配额进度条,超限 Telegram 告警
  • 删错了先进回收站,30 天可反悔
设置与配额
不起眼但每天在用
🏠
只在家里能看
应用层 CIDR 白名单 + 不信任 X-Forwarded-For 双重防线。出了家门的 WiFi 直接 403。
♻️
软删除回收站
删照片先进 .trash/,误删可恢复,30 天后清空。
🩺
每日自愈
systemd timer 每天扫一遍缩略图,补 0 字节坏图。配额超限 Telegram 告警。
⭐️
收藏
路径级收藏存在 iPhone 本地,服务端零负担,想看的照片一个入口。
一台家庭服务器就够了
iPhone App
家庭 WiFi
家庭服务器
SSD 2TB
客户端
SwiftUI iOS 17+,JWT 认证,多选上传 + 瀑布流 + 搜索 + 标签云
服务端
Node 20 + Express + better-sqlite3 + sharp + multer
存储根
/data/<username>/ — raw / thumb / preview / index / .trash
去重
SHA-256 前 16 位作为文件名,同图 hash 冲突直接跳过
AI 识图
本地 Ollama llama3.2-vision:11b,~7s/张,不出家门
硬件
AMD APU 128GB 统一内存家庭服务器 + Samsung 990 EVO Plus 2TB
我们不做的事
🚨 不做清单 · 比任何功能都重要
  • 不配公网反向代理 — 外面的人看不到
  • 不挂 Cloudflare Tunnel — 家人照片不经第三方
  • 不接 Tailscale / VPN — 出门看不到是设计不是 bug
  • 不同步到任何云 — iCloud / Google Photos 零对接
  • 不做人脸识别上传云端 — 所有 AI 推理都在家里跑
  • Git 仓库 Private — 代码本身也不公开