Immich 是开源的自托管照片和视频管理工具,能够自主完成照片备份,支持共享相册,支持 iPhone 和 Android 手机。
系统需至少配备4GB内存与2个CPU核心,需要安装Docker。
1、下载所需文件
首先创建一个自定义目录(例如./immich-app
),用于存放docker-compose.yml
和.env
文件,执行以下命令进入该目录,下载文件:
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
可以通过浏览器下载这两个文件,将文件移动到创建的目录中,注意将example.env
重命名为.env
。
2、配置.env文件
.env
文件默认内容如下:
# 可在https://immich.app/docs/install/environment-variables查看所有支持的环境变量文档
# 上传文件的存储位置
UPLOAD_LOCATION=./library
# 数据库文件的存储位置,数据库不支持网络共享
DB_DATA_LOCATION=./postgres
# 如需设置时区,取消下一行注释并将Etc/UTC替换为列表中的时区标识符:https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
# TZ=Etc/UTC
# Immich使用的版本,可固定为特定版本如"v1.71.0"
IMMICH_VERSION=release
# postgres的连接密码,应改为随机密码
# 请仅使用"A-Za-z0-9"字符,不含特殊字符或空格
DB_PASSWORD=postgres
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
请在UPLOAD_LOCATION
中填入存储备份资源的首选位置,该位置应为服务器上的新目录,新目录要有足够可用的空间。建议将DB_PASSWORD
改为自定义值,由于Postgres不公开暴露,该密码仅用于本地认证。为避免Docker解析问题,最好仅使用"A-Za-z0-9"字符,可借助pwgen
工具生成。如果需设置时区,取消TZ=
行的注释并进行修改,必要时可配置自定义数据库信息。
3、启动容器
在步骤1创建的目录(此时应包含自定义的docker-compose.yml
和.env
文件)中,执行以下命令将Immich作为后台服务启动:
docker compose up -d
首位注册的用户会成为管理员,负责添加其他用户。访问http://<机器IP地址>:2283
,点击“开始使用”按钮进行管理员注册。首位注册用户被赋予管理员权限,需要填写管理员邮箱、密码、确认密码和姓名完成注册并登录应用,然后就可以从浏览器上传图片了。
移动应用可从以下渠道下载:Google Play商店、Apple App Store、F-Droid、GitHub Releases(apk)。在移动应用中,使用服务器端点URLhttp://<机器IP地址>:2283/api
登录。登录后,就能看到通过Web界面上传的照片。点击屏幕右上角的云图标进入备份界面,可选择要备份到Immich服务器的相册,向下滚动并按下“开始备份”即可启动备份流程,该操作将上传所选相册中的所有资源。备份时间因移动设备上的照片数量而异,大型上传可能需要较长时间。若想快速体验,可先按本指南选择性上传少量照片,在“任务”选项卡中可查看Immich处理照片的进度。
Immich具备内置数据库备份功能,更多信息可参考数据库备份相关内容。数据库仅包含元数据和用户信息,必须手动备份存储在UPLOAD_LOCATION
中的图像和视频。
操作系统:推荐使用Linux或类Unix操作系统(如Ubuntu、Debian等)。非Linux系统的Docker体验通常较差,我们对非Linux系统的设置或故障排除支持能力有限。若仍想尝试,Windows系统可使用Docker Desktop或WSL 2,macOS系统可使用Docker Desktop。Immich在完整虚拟机的虚拟化环境中运行良好,不建议在LXC容器中使用Docker,但高级用户可能有办法实现,若遇到问题,建议切换到支持的虚拟机部署。
内存:最低4GB,推荐6GB。
CPU:最低2核,推荐4核。
存储:推荐使用支持用户/组所有权和权限的Unix兼容文件系统(如EXT4、ZFS、APFS等),生成缩略图和转码视频通常会使照片库大小平均增加10-20%。
良好的性能和与Postgres数据库的稳定连接是Immich流畅运行的关键。Postgres数据库文件通常在1-3GB之间,Postgres数据库(DB_DATA_LOCATION
)理想情况下应使用本地SSD存储,不要使用任何类型的网络共享。若使用Docker资源限制,Postgres数据库至少需要2GB内存。Windows用户可能会遇到与非Unix兼容文件系统相关的问题。
Immich需要安装Docker及Docker Compose插件:
Docker引擎:CLI变体专为Linux服务器设计(Windows系统可通过WSL2使用)。
Docker Desktop:GUI变体不推荐用于Linux系统,但可在Windows或macOS系统上使用。
Immich需要docker compose
命令,类似名称的docker-compose
已弃用,不再受Immich支持。
在Windows系统上,Immich的Postgres数据库(DB_DATA_LOCATION
)必须位于支持用户/组所有权和权限的文件系统(如EXT2/3/4、ZFS、APFS、BTRFS、XFS等)上,在NTFS或ex/FAT/32格式的文件系统上无法运行,在WSL(Windows子系统 for Linux)中使用挂载的主机目录(通常在/mnt
下)时也无法运行。若遇到此问题,可将绑定挂载改为Docker卷,具体操作如下:
在.env
文件中进行以下更改:
- DB_DATA_LOCATION=./postgres
+ DB_DATA_LOCATION=pgdata
在docker-compose.yml
底部添加以下行:
volumes:
model-cache:
pgdata: