假期照片太多,自己搭个相册库
87天长假过完,手机相册第一次弹出"存储空间不足"的值友,估计不止一位。恰好在过去几天还有两条消息凑到了一起:一是 Google 近日向媒体澄清了存储规则——2026 年 3 月 9 日之后注册的新账号,免费空间默认从 15GB 降到 5GB,验证手机号才能解锁多 10GB(来源:Engadget,10 月 6 日);二是存储涨价还没完,TrendForce 预测四季度 NAND 还要涨 15%~20%,云相册会员和扩容硬盘都得重新算账。与其继续把几千张家庭照片放在别人服务器上按月交钱,不如趁着节后第一个周末,把照片库搬回自己家。今天这篇就给一套照着做就能跑,老生常谈的自建方案:Immich,开源免费,界面和自动备份体验最接近 Google Photos,当前最新版 v3.2.4(9 月 28 日发布,来源:GitHub Release)。
!自建相册库 Immich图片来源:Self-Host Immich — SelfHostLife,版权归原作者所有
Immich 是什么,凭什么替代云相册
Immich 是一个开源(AGPL)的自托管照片视频管理项目,背后是 FUTO 团队在支持。它最大的优势是手机 App 的自动备份真的好用:后台备份、按相册选择性同步、仅 Wi-Fi 上传这些 Google Photos 的核心习惯都能保留。此外它还有人脸识别、按内容搜图(比如搜"海边 狗")、"当年今日"回忆、地图视图和家人共享相册——这些 AI 功能跑在你自己的机器上,不经过任何第三方(来源:Immich 官方文档)。
!Immich 官方界面图片来源:Immich 官网,版权归原作者所有
它由 4 个 Docker 容器组成:主服务(immich-server)、机器学习(immich-machine-learning)、数据库(Postgres + VectorChord)和缓存(Valkey/Redis)。听起来吓人,但官方提供了打包好的编排文件,你不需要逐个配置。
三条命令把库跑起来
以下步骤全部来自官方 Docker Compose 部署文档,前提是机器上装好 Docker 和 Compose 插件(注意是 docker compose,老的 docker-compose 命令已不支持):
mkdir ./immich-app && cd ./immich-app wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
然后编辑 .env,重点改 4 行(官方默认值见 example.env):
UPLOAD_LOCATION=./library:照片原片的存放目录,指向你最大的那块盘;
DB_DATA_LOCATION=./postgres:数据库目录,官方明确要求放本地盘,不能放任何网络共享盘;
TZ=Asia/Shanghai:取消注释并改成中国时区,不然"当年今日"会错位;
DB_PASSWORD=postgres:改成随机字母数字密码(只用 A-Za-z0-9,别带特殊符号),IMMICH_VERSION=v3 保持默认即可锁定大版本。
最后一条命令启动:
docker compose up -d
浏览器打开 http://你的机器IP:2283,注册的第一个账号就是管理员。手机端在 App Store / Google Play / F-Droid 装 Immich App,填同一个地址登录,点开右上角云朵图标开启备份,建议勾选"仅 Wi-Fi 上传"。
机器和硬盘的账,先算再买
官方对硬件的要求比很多教程写的要高,直接抄官方口径(来源:Requirements 文档):内存最低 6GB、推荐 8GB(4GB 小主机可以关闭机器学习功能继续用,只是没了人脸和智能搜索);CPU 最低 2 核推荐 4 核;支持 amd64 和 arm64(树莓派、N1 盒子、群辉/绿联这类 NAS 都能跑)。有个容易踩的坑:v3 起机器学习容器在 x86 上要求 x86-64-v2 微架构,大约 2012 年之后的 CPU 才支持,更老的机器最高只能装到 v2.7.5。另外缩略图加视频转码会让占用空间比照片本体多出 10%~20%,规划容量时留出余量。
硬盘方面正赶上存储涨价年,按什么值得买社区 10 月初的行情稿(口径为社区爆料与成交晒单,参考价,随时间波动):京东自营西数 WD40EFZZ 4TB CMR NAS 盘报 1469 元(爆料页),同容量外置移动机械盘 10 月 6 日有 590.9 元的秒杀场次(爆料页);社区内行常用的"每 TB 合理价"参考线在 100~125 元,对照之下现在 16T 企业盘京东自营个别型号报到 6800 元、约 425 元/T,二手拆机盘也要约 174 元/T(来源:什么值得买社区行情稿)。两条实在建议:预算紧就先用现有旧盘起步,别在涨价顶点为新库买大盘;买盘前查清楚 CMR/SMR,做相册库优先 CMR 垂直盘。
NAS 与机械硬盘老照片搬家和备份,这两步别省
硬盘里本来就有一堆按年份分文件夹的老照片?不用导入复制,用外部库功能直接索引(来源:官方 External Library 指南):在 docker-compose.yml 的 immich-server 下加一行挂载,如 - /mnt/photos2:/mnt/photos2:ro(末尾 :ro 表示只读,Immich 只看不删),重启后在网页端"管理 → 外部库"新建库、填入容器内路径、点"扫描新文件"即可,原有目录结构原封不动。从 Google Photos 迁移的话,先用 Google Takeout 导出,再用社区工具 immich-go(约 7000 星)导入,它能更好地保留相册结构和拍摄时间。
备份方面,Immich 从 v2.5.0 起自带数据库自动备份:默认每天凌晨 2 点生成数据库转储、保留最近 14 份,存放在 UPLOAD_LOCATION/backups,也可在"管理 → 任务队列"手动触发(来源:官方备份文档)。但注意:数据库备份不含照片本体,恢复时必须连同 UPLOAD_LOCATION 里的 upload/、library/、profile/ 一起拿,官方推荐 3-2-1 备份法——三份副本、两种介质、一份异地。升级也很简单:docker compose pull && docker compose up -d,随手 docker image prune 清理旧镜像;官方建议先升手机 App 再升服务器,IMMICH_VERSION=v3 会自动锁定大版本,避免跨大版本翻车。
值友提醒:这五个坑别踩
数据库目录千万别放机械仓库盘或网络共享。官方原话是数据库文件"应放本地 SSD,绝不能用任何形式的网络共享",Postgres 库文件本身有 1~3GB,放慢盘整站都会卡。
Ubuntu 22.04 等老系统报 unknown shorthand flag 或 compose 校验错误,是 Docker 版本太旧,按 Docker 官方源重装即可;还有 healthcheck.start_interval 报错的话,把 compose 文件 database 段里那一行注释掉(来源:部署文档)。
别把 2283 端口直接映射到公网裸奔。家庭内网用没问题;确实需要外网访问,请走反向代理加 HTTPS 并开强密码,同时改掉数据库默认密码、定期 docker compose pull 更新镜像。
Windows 用户别硬装。官方明确表示非 Linux 系统的 Docker 体验很差、出问题基本不管,Windows 请走 WSL2 或 Docker Desktop;群晖等套件党注意 LXC 容器方式不被官方支持,虚拟机方式最稳。
老版本(v1.x/2.x)用户别直接跳新版。v1.133 之后数据库已迁移到 VectorChord 镜像,跨大版本升级前先备份数据库、读一遍 Release Notes,官方明确不支持降级。
从"照片在别人服务器上按月续费"到"照片在自己硬盘里随便看",中间只隔着一个下午。你已经把全家照片交给云盘几年了?评论区聊聊你的相册是存在哪的。
