在日常使用手机时,照片和视频通常会不断增加。
如果完全依赖第三方云相册,可能会遇到存储空间不足、会员费用、上传速度以及隐私管理等问题。
Immich 是一款自托管照片与视频管理平台,可以部署到自己的 Linux 云服务器中,通过网页和手机 App 管理照片,并支持手机相册自动备份。
对于家庭用户、摄影爱好者、多人共享相册以及希望自行保存照片数据的用户来说,Immich 是一个功能比较完整的方案。
1. 项目介绍
Immich 可以理解为一套运行在自己服务器上的照片与视频备份平台。
部署完成以后,可以通过网页和手机 App 使用,主要功能包括:
- 手机照片和视频自动备份
- 时间线浏览
- 相册管理
- 多用户账户
- 共享相册
- 公开链接分享
- 人脸识别与人物整理
- 照片搜索
- 重复照片辅助整理
- 视频转码与缩略图生成
Immich 支持多个用户,每个用户拥有自己的照片库。管理员可以创建家庭成员或其他用户,并根据实际需要设置存储配额。
与普通文件管理器不同,Immich 会保存照片元数据、相册关系、人物识别信息以及用户配置,因此不能只把它理解成一个简单的文件夹浏览器。

2. 相关地址
Immich GitHub: https://github.com/immich-app/immich
Immich 官方文档: https://docs.immich.app
Immich 官方网站: https://immich.app
手机端下载入口: https://get.immich.app
3. 搭建环境
Immich 对服务器资源的要求高于普通 Docker 小工具。
本次建议使用以下配置:
- CPU:最低 2 核,建议 4 核及以上
- 内存:最低 6GB,建议 8GB及以上
- 磁盘:根据照片与视频数量准备
- 系统:Debian 12 或 Ubuntu
- Docker:需要安装 Docker Engine
- Compose:需要使用 Docker Compose V2
- 默认端口:
2283 - 数据库磁盘:建议使用本地 SSD
Immich 会生成缩略图、人物识别数据以及转码后的视频文件,因此实际磁盘占用通常会高于原始照片和视频的总大小。
本次教程推荐使用莱卡云 Linux 云服务器进行搭建。
如果只进行个人测试,可以先准备较小的媒体库;如果计划长期备份手机中的全部照片与视频,应提前规划足够的磁盘空间。
查看官网购买链接: https://www.lcayun.com
9折优惠码:bloglcayun

4. 搭建视频
本教程视频建议使用莱卡云 Linux 云服务器进行实机演示。
视频内容包括:
- 服务器环境确认
- Docker 环境检查
- Immich 正式部署
- 管理员账户初始化
- 网页上传照片
- 手机 App 连接
- 手机相册自动备份
- 多用户创建
- 域名和 HTTPS
- 更新与数据备份
视频教程制作中,完成后在这里补充哔哩哔哩视频链接。
5. 正式搭建
5.1 安装 Docker 和 Docker Compose
Immich 官方部署需要使用 Docker Compose V2,也就是:
docker compose
而不是旧版:
docker-compose
如果服务器尚未安装 Docker,可以参考本站之前整理的教程:
安装教程: 服务器上安装docker和docker-compose教程
安装完成后检查 Docker:
docker --version
检查 Docker Compose:
docker compose version
两个命令都能正常显示版本信息以后再继续。

5.2 创建 Immich 项目目录
创建项目目录:
mkdir -p /opt/immich
cd /opt/immich
后续 Immich 的 Compose 文件、环境变量、照片视频和数据库数据都可以统一从这个目录开始管理。
查看当前目录:
pwd
正常应该显示:
/opt/immich
5.3 下载官方 Docker Compose 文件
下载 Immich 当前正式版本的 Compose 文件:
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
检查文件:
ls -lah
正常情况下可以看到:
docker-compose.yml
.env
建议使用官方正式版本提供的配置文件,不要随意复制较早教程中的旧版 Compose 内容。

6. 修改 Immich 环境变量
编辑:
nano .env
官方环境变量中比较重要的内容包括:
UPLOAD_LOCATION=./library
DB_DATA_LOCATION=./postgres
# TZ=Etc/UTC
DB_PASSWORD=postgres
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
可以根据本文目录改成:
UPLOAD_LOCATION=/opt/immich/library
DB_DATA_LOCATION=/opt/immich/postgres
TZ=Asia/Shanghai
DB_PASSWORD=ChangeThisPassword2026
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
其中:
UPLOAD_LOCATION
用于保存上传的照片、视频、缩略图、转码文件和数据库备份等内容。
DB_DATA_LOCATION
用于保存 PostgreSQL 数据库文件。
TZ
设置时区,本教程使用:
Asia/Shanghai
DB_PASSWORD
为 PostgreSQL 数据库连接密码。
示例中的:
ChangeThisPassword2026
仅用于演示,正式搭建时必须替换成自己的随机密码。
为了避免 Docker 解析问题,数据库密码建议只使用英文字母和数字,不要使用空格或特殊字符。
不要随意修改 .env 中不理解的其他变量。

7. 创建数据目录
根据前面设置的路径创建目录:
mkdir -p /opt/immich/library
mkdir -p /opt/immich/postgres
查看:
ls -ld /opt/immich/library /opt/immich/postgres
Immich 的数据库数据建议放在本地 SSD 上。
不要把 PostgreSQL 数据目录放在 SMB、NFS、对象存储挂载或其他网络共享中。
照片和视频目录可以根据实际存储规划放到容量更大的数据盘,但数据库仍然建议放在低延迟的本地磁盘。
8. 验证 Compose 配置
正式启动之前执行:
docker compose config
如果没有明显报错,说明 Compose 文件和环境变量能够正常解析。
如果提示:
permission denied

需要检查 .env 和项目目录权限。
如果提示命令不支持或者出现 Compose 格式异常,则需要确认当前使用的是:
docker compose
而不是旧版:
docker-compose
9. 启动 Immich
在 /opt/immich 目录执行:
docker compose up -d
第一次启动需要下载 Immich、PostgreSQL、Redis 和机器学习等相关镜像,等待时间取决于服务器网络速度。
查看容器:
docker compose ps
也可以执行:
docker ps
正常情况下应该能够看到 Immich 相关容器处于运行状态。

10. 查看 Immich 日志
如果容器没有正常启动,可以查看全部日志:
docker compose logs --tail 100
持续查看:
docker compose logs -f
退出实时日志:
Ctrl + C
只查看 Immich Server:
docker compose logs --tail 100 immich-server
只查看数据库:
docker compose logs --tail 100 database
具体服务名称以当前官方 Compose 文件为准。
11. 访问 Immich 管理页面
浏览器访问:
http://服务器IP:2283
例如:
http://192.0.2.10:2283
如果页面能够正常打开,就可以开始管理员账户初始化。
如果外部无法访问,可以先在服务器内部测试:
curl -I http://127.0.0.1:2283
检查端口:
ss -lntp | grep 2283
如果本机正常而公网打不开,应继续检查云服务器安全组和 Linux 防火墙。
12. 创建第一个管理员账户
Immich 第一个注册的用户会成为管理员。
进入页面以后,点击初始化或开始使用按钮,根据提示填写:
- 管理员名称
- 邮箱
- 密码
完成后登录后台。
建议使用独立的高强度密码,不要和服务器 SSH 密码或数据库密码完全相同。
管理员账户可以继续创建其他用户、配置服务器功能、查看任务队列和管理存储配额。

13. 使用网页上传照片
登录以后,可以先通过网页上传少量测试照片。
建议最开始只上传几张测试图片和一个短视频,用于确认:
- 上传功能正常
- 时间线显示正常
- 缩略图能够生成
- 视频可以正常播放
- 服务器存储目录有数据写入
查看媒体目录:
du -sh /opt/immich/library
刚上传完成以后,缩略图、人脸识别和视频转码等后台任务可能还需要一段时间处理。
可以在管理页面的任务队列中查看处理进度。

14. 安装 Immich 手机 App
Immich 提供 Android 和 iOS 手机 App。
安装完成后,打开 App,在服务器地址中填写:
http://服务器IP:2283
例如:
http://192.0.2.10:2283
然后输入刚刚创建的 Immich 用户邮箱和密码。
如果后续配置了域名和 HTTPS,则可以改成:
https://photos.example.com
不建议长期通过没有 HTTPS 的公网地址传输私人照片。

15. 开启手机照片自动备份
进入 Immich App 后,点击备份或云朵图标。
选择需要备份的手机相册,例如:
- 相机
- 截图
- 微信保存图片
- 视频
- 下载目录
确认后启用备份。
Immich 会检查文件内容,已经存在于服务器的相同文件通常会被跳过,避免重复上传。
默认情况下,手机备份通常更倾向于在 Wi-Fi 环境进行,可以根据实际流量套餐修改相关设置。
首次备份如果包含大量照片和视频,可能需要较长时间。
建议先选择少量相册测试,确认上传稳定后再开启完整备份。

16. Android 后台备份注意事项
部分 Android 手机会严格限制后台应用运行。
如果发现:
打开 Immich App 时可以上传;
退出 App 后长时间不再备份;
可以检查:
- 电池优化
- 后台运行权限
- 自动启动权限
- 数据流量限制
- Wi-Fi 后台限制
不同手机品牌设置入口不同。
如果系统持续结束 Immich 后台任务,自动备份频率会受到影响。
17. iPhone 后台备份注意事项
iOS 用户需要确认已经开启:
后台 App 刷新
iOS 会由系统统一调度后台任务,应用本身不能保证在某个固定时间持续运行。
因此首次大量备份时,建议:
- 保持 Immich App 打开
- 连接稳定 Wi-Fi
- 保持手机充电
- 避免系统进入低电量模式
如果照片存储在 iCloud 中,Immich 在备份时还可能需要先从 iCloud 下载原始文件,因此会消耗额外的手机存储和网络流量。
18. 创建多个用户
Immich 支持多个用户,每个用户拥有独立的照片库。
管理员可以进入:
管理 → 用户
创建家庭成员或其他用户。
可以为不同用户设置:
- 用户名
- 邮箱
- 初始密码
- 存储配额
例如可以给普通家庭成员设置:
200 GiB
达到配额后,该用户将无法继续上传新文件。
不同用户的相册和媒体库默认相互独立,只有进行共享后才能互相查看相应内容。

19. 共享相册与多人协作
Immich 支持在同一个实例中的用户之间共享相册。
创建相册后,可以把其他用户设置为:
- 查看者
- 编辑者
编辑者可以向共享相册中添加自己的照片和视频。
Immich 也支持生成公开分享链接,可以根据需要设置:
- 链接有效期
- 密码
- 是否允许下载
- 是否允许上传
公开分享链接本身具有访问权限,因此不要随意发布包含私人照片的链接。
20. 合作伙伴共享
Immich 还支持 Partner Sharing,也就是将自己的照片库共享给另一个用户。
这更适合:
- 夫妻
- 家庭成员
- 长期共同管理照片的用户
合作伙伴共享通常会包含大量照片元数据,其中可能包括 GPS 位置信息。
因此只应该向完全信任的用户开启。
21. Immich 存储空间怎么规划?
照片备份项目最重要的资源通常不是 CPU,而是存储空间。
例如手机中原始照片与视频总量为:
500GB
服务器不应该只准备刚好 500GB 空间。
还需要考虑:
- 缩略图
- 视频转码文件
- 人脸识别数据
- 数据库
- 数据库备份
- 后续新增照片
- 文件系统预留空间
建议至少预留额外空间,并定期检查:
df -h
查看 Immich 数据目录:
du -sh /opt/immich/library
查看数据库:
du -sh /opt/immich/postgres
不要等磁盘达到 100% 后再处理。
22. 照片目录可以放到数据盘吗?
可以。
例如额外数据盘挂载到:
/data
可以创建:
mkdir -p /data/immich/library
然后修改 .env:
UPLOAD_LOCATION=/data/immich/library
但 PostgreSQL 数据库建议继续放在本地 SSD,例如:
DB_DATA_LOCATION=/opt/immich/postgres
修改路径之前应确认:
- 数据盘已经正确挂载
- 重启后能够自动挂载
- 目录权限正确
- 空间充足
如果数据盘重启后没有挂载,Immich 可能会在空目录中创建新的文件结构,导致数据路径混乱。
23. 不要手工修改 Immich 管理的照片文件
不要进入 UPLOAD_LOCATION 后手工:
- 重命名照片
- 移动照片
- 删除照片
- 修改 Immich 生成的目录结构
Immich 通过数据库记录文件路径和媒体元数据。
如果绕过网页或 App 直接修改文件,数据库中的记录可能和实际文件不一致,最终出现照片丢失、缩略图异常或文件无法访问。
这些目录可以被备份,但不应该被当成普通文件管理目录随意修改。
24. 配置域名与 HTTPS
临时测试可以直接使用:
http://服务器IP:2283
长期使用建议配置独立域名,例如:
photos.example.com
然后通过 Nginx 反向代理到:
127.0.0.1:2283
Nginx 示例:
server {
listen 80;
server_name photos.example.com;
client_max_body_size 50000M;
proxy_request_buffering off;
client_body_buffer_size 1024k;
proxy_read_timeout 600s;
proxy_send_timeout 600s;
send_timeout 600s;
location / {
proxy_pass http://127.0.0.1:2283;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
保存以后检查:
nginx -t
重新加载:
systemctl reload nginx
然后配置 HTTPS 证书。
Immich 应部署在独立域名或子域名根路径,不建议放到:
example.com/immich
这种子目录中。
25. 安全建议
Immich 中可能保存大量私人照片和视频,因此安全配置非常重要。
建议至少做到:
- 使用强管理员密码
- 使用 HTTPS
- 不公开数据库密码
- 不公开
.env - 不公开手机照片存储目录
- 定期更新 Immich
- 定期备份数据库和媒体文件
- 限制不必要的服务器端口
- 不给不可信用户创建账户
- 为普通用户设置合理配额
如果只需要家庭内部使用,也可以结合 VPN 或其他安全访问方式,而不是直接把管理后台完全暴露到公网。
26. 更新 Immich
进入项目目录:
cd /opt/immich
更新前建议先查看当前容器:
docker compose ps
拉取新镜像:
docker compose pull
重新创建:
docker compose up -d
查看:
docker compose ps
查看日志:
docker compose logs --tail 100
Immich 更新频率可能比较高,重大版本升级前建议先阅读当前版本升级说明,并做好数据库和媒体文件备份。
27. Immich 需要备份哪些数据?
Immich 完整备份至少包含三部分:
Compose 和配置
/opt/immich/docker-compose.yml
/opt/immich/.env
数据库
DB_DATA_LOCATION
或者 Immich 自动生成的数据库备份。
照片和视频
UPLOAD_LOCATION
需要特别注意:
数据库备份中不包含照片和视频原文件。
仅备份数据库,无法恢复完整相册。
仅备份照片文件而没有数据库,同样可能丢失用户、相册、分享、人物和元数据关系。
28. 使用 Immich 内置数据库备份
Immich 可以在管理后台创建数据库备份。
进入:
管理 → 任务队列
创建数据库 Dump。
备份文件通常会保存到:
UPLOAD_LOCATION/backups
内置数据库备份主要保存数据库内容和元数据。
它不会自动替你备份全部照片与视频,因此还需要单独备份整个媒体目录。
29. 备份照片和视频目录
可以先停止 Immich Server,减少备份过程中数据继续变化。
例如:
cd /opt/immich
docker compose stop immich-server
然后打包媒体目录:
tar -czf /root/immich-library-$(date +%F).tar.gz /opt/immich/library
备份项目配置:
tar -czf /root/immich-config-$(date +%F).tar.gz /opt/immich/docker-compose.yml /opt/immich/.env
完成以后重新启动:
docker compose start immich-server
如果媒体库非常大,不建议每次都使用完整 tar.gz。
可以使用 rsync、增量备份或专门的备份工具保存到其他服务器或对象存储。
30. 备份文件不要只放在原服务器
如果备份文件仍然只保存在:
/root/
或者:
/opt/immich/
那么服务器磁盘损坏时,原始数据和备份可能一起丢失。
建议至少另外保存到:
- 另一台服务器
- 独立存储
- 对象存储
- 本地硬盘
- NAS
比较稳妥的做法是保留多份副本,并且至少有一份不在当前服务器中。
31. 2283 端口打不开怎么办?
先查看容器:
docker compose ps
查看日志:
docker compose logs --tail 100
检查端口:
ss -lntp | grep 2283
本机测试:
curl -I http://127.0.0.1:2283
如果本机正常,公网无法访问,继续检查:
- 云服务器安全组
- UFW
- firewalld
- iptables
- nftables
长期使用建议通过 Nginx 和 HTTPS 访问,而不是直接长期公开 2283。
32. 数据库容器一直重启怎么办?
查看:
docker compose ps
再查看数据库日志:
docker compose logs --tail 100 database
常见方向包括:
DB_DATA_LOCATION权限不正确- 数据库目录位于不支持权限的文件系统
- 数据库目录在网络共享上
.env密码格式异常- 磁盘空间不足
- 内存不足
- 旧数据库数据与当前版本不兼容
不要看到数据库重启就直接删除数据库目录。
删除数据库目录会丢失 Immich 元数据。
33. 上传照片失败怎么办?
首先检查:
df -h
确认媒体目录所在磁盘还有空间。
查看 Immich 日志:
docker compose logs --tail 100 immich-server
如果配置了 Nginx,还要检查:
client_max_body_size
是否足够。
上传大型视频时,还要确认:
- Nginx 超时时间
- 服务器带宽
- 手机网络
- App 后台权限
- 磁盘写入速度
如果小图片可以上传,大视频经常失败,通常应重点检查代理上传限制和超时配置。
34. 机器学习容器占用资源较高怎么办?
Immich 的人脸识别、智能搜索和重复照片识别等功能会使用机器学习服务。
首次上传大量照片时,需要处理:
- 缩略图
- 元数据
- 人脸识别
- 智能搜索
- 重复照片检测
因此 CPU、内存和磁盘占用可能暂时升高。
可以执行:
docker stats
查看不同容器资源使用情况。
如果服务器资源较小,可以减少同时导入的照片数量,或者在后台任务完成后再继续大量上传。
不要在后台任务仍然处理大量照片时直接判断服务器性能异常。
35. Immich 适合什么人?
Immich 比较适合:
- 想自动备份手机照片的个人用户
- 家庭多人相册
- 摄影爱好者
- 希望自行管理照片数据的用户
- 不想完全依赖第三方云相册的用户
- 有服务器和存储维护经验的用户
Immich 不等于备份本身。
即使手机照片已经上传到 Immich,仍然建议继续保留其他备份副本。
一台云服务器不应该成为照片和视频的唯一保存位置。
36. 总结
Immich 是一款功能完整的自托管照片与视频备份平台。
本文的核心部署流程是:
mkdir -p /opt/immich
cd /opt/immich
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 中的:
UPLOAD_LOCATION
DB_DATA_LOCATION
TZ
DB_PASSWORD
然后启动:
docker compose up -d
浏览器访问:
http://服务器IP:2283
第一个注册用户会成为管理员。
完成管理员初始化后,可以安装 Immich 手机 App,选择手机相册并开启自动备份。
正式长期使用时,建议重点做好:
- 存储空间规划
- HTTPS
- 多用户配额
- 数据库备份
- 照片视频备份
- 异地备份
- 定期更新
只有同时保存数据库和媒体目录,才是一份相对完整的 Immich 备份。








