这是我的第一篇博客文章。
欢迎
欢迎来到我的技术博客!
用一台Mac mini + Immich + Cloudflare Tunnel,搭一套全家共享、多账号多设备、永久免费的私人 iCloud:
- 全家多账号自动备份,浏览器随时打开
- 共享相册:孩子照片 / 旅行 / 聚会,全家都能加都能看
- 给爷爷奶奶发链接,扫码即可看孙子照片,无需注册
- 不开端口、不要公网 IP,数据全在自家电脑上
视频主要内
- 服务器选择 + Docker 环境准备
- 在 Cloudflare「联网」菜单创建 Tunnel
- Docker Compose 部署 Immich + 初始化管理员和家庭成员账号
- 配置 Cloudflare Access 邮箱鉴权(防陌生人扫到)
- 移动端 App 安装、远程登录、自动备份
- 共享相册 / Partner Sharing / Public Link 三种共享方式
- 验证清单和常见错误排查
账号和域
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
复制 Tunnel toke
mkdir -p ~/immich
cd ~/immich
pwd # 应输出类似 /home/yourname/immich,确认你已进入这个目录
# === 照片实际存储位置(重要)===
# 这是宿主机磁盘路径,所有照片、缩略图、转码视频都存这里
# 强烈建议指向独立的大容量存储盘,单独一份可以方便用 rsync 备份
UPLOAD_LOCATION=/mnt/photos/immich-library
# === PostgreSQL 数据库存储位置 ===
# 元数据(文件名、EXIF、相册关系、用户、共享)存这里
# 数据库挂了照片还在,但相册结构会丢,**务必单独定期备份这个目录**
DB_DATA_LOCATION=./postgres
TZ=Asia/Shanghai
# === Immich 版本 ===
# v2 = 锁定大版本号,自动获取 v2.x.x 最新补丁,不会跳到 v3 breaking change
# release = 永远最新(含 v3+),不推荐生产环境
# v2.7.5 = 锁定具体版本,最稳定但需手动升级
IMMICH_VERSION=v2
# === 数据库账号密码 ===
# ⚠️ 重要:DB_PASSWORD 只能包含字母和数字(A-Za-z0-9),
# 不能含特殊字符(! @ # $ % & * 等)和空格,
# 否则 PostgreSQL 容器初始化时会失败
DB_PASSWORD=改成一个强密码仅限字母数字
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
# === Cloudflare Tunnel ===
TUNNEL_TOKEN=粘贴你刚才第二步复制的 Cloudflare Tunnel token