🚀 使用 Docker Compose 部署 Immich 自托管相册
🚀 使用 Docker Compose 部署 Immich 自托管相册
Immich 是一个开源的自托管照片和视频备份解决方案,可直接从手机备份媒体文件。它提供了与 Google Photos 相似的界面和功能,支持多用户、相册分享、人脸识别、地理位置标记和智能搜索等特性。
进入自用通道 [[🚀 使用 Docker Compose 部署 Immich]]
📖 项目简介
Immich 专为希望完全掌控个人数据的用户设计,您可以将它部署在个人服务器或 NAS 上。其核心优势包括:
- 数据自主与隐私安全:所有照片和视频都存储在您自己的设备上,无需担心第三方云服务的政策变更或隐私问题。
- 功能丰富:
- AI驱动:支持人脸识别、物体分类和智能搜索。
- 多用户支持:可以为家人或朋友创建独立账户,并共享相册。
- 跨平台应用:提供 Web 界面以及 iOS 和 Android 手机客户端。
- 外部库支持:可以导入和管理服务器上已有的照片目录。
- 活跃的开源社区:项目在 GitHub 上非常活跃,持续迭代更新。
⚙️ 部署前准备
-
环境要求
- 已安装 Docker 和 Docker Compose。请确保 Docker 守护进程正在运行。
- 操作系统:支持 Linux、Windows (WSL2) 或 macOS。
- 硬件建议:
- 内存:建议至少 4GB。如果照片数量庞大或启用所有 AI 功能,推荐 8GB 或更多。
- 存储:准备足够的硬盘空间来存储照片和视频,并确保
UPLOAD_LOCATION和DB_DATA_LOCATION指向的路径有足够容量。 - CPU:较新的多核处理器能提供更好性能。
-
创建工作目录 在服务器上创建一个独立的目录来存放所有部署文件,便于管理。
bash mkdir -p ~/immich-app cd ~/immich-app
🔧 配置 Docker Compose
Immich 的部署主要涉及两个配置文件:docker-compose.yml 和 .env。
- 下载配置文件 从官方 GitHub Release 页面下载最新的配置文件。
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
如果无法使用 wget,也可在浏览器中打开链接下载,并将 example.env 重命名为 .env。
-
配置环境变量 (
.env文件) 编辑.env文件,以下是一些关键配置项(根据你的配置,部分可能已设置):环境变量 说明 示例值/建议 UPLOAD_LOCATION上传的照片和视频的存储路径。务必设置为有足够空间的路径。 /mnt/10t/file/Immich/Photos/libraryDB_DATA_LOCATIONPostgreSQL 数据库文件的存储路径。不支持网络共享。 /mnt/10t/file/Immich/Photos/postgresTZ设置时区,确保照片时间戳正确。 Asia/ShanghaiIMMICH_VERSION指定要使用的 Immich 版本。 releaseDB_PASSWORD数据库密码,务必修改为强密码,仅使用 A-Za-z0-9字符。BaLt42Ncd7s3XX6你提供的配置中已正确设置了这些关键变量。
-
检查 Docker Compose 文件 (
docker-compose.yml) 该文件定义了 Immich 的多个服务,包括immich-server(主程序)、immich-machine-learning(AI功能)、redis(缓存)和database(PostgreSQL数据库)。- 确保
volumes挂载路径正确。 - 你已配置
ports: - '2283:2283',这意味着可通过服务器的 2283 端口访问 Web 界面。
- 确保
🚀 启动与验证
-
启动服务 在包含
docker-compose.yml和.env文件的目录下,执行以下命令以后台模式启动所有服务:bash docker compose up -d首次运行会从 Docker Hub 拉取镜像,需要一些时间。 -
验证部署
- 检查容器状态:
bash docker compose ps确认所有容器状态均为Up(healthy)。 - 查看日志:
bash docker compose logs -f immich-server - 访问 Web 界面:
打开浏览器,访问
http://你的服务器IP:2283。
- 检查容器状态:
🛠️ 基础配置与使用
-
初始设置
- 注册管理员账户:首次访问 Web 界面,点击 "Getting Started" 并按照提示注册。第一个注册的用户会自动成为管理员。
- 创建其他用户(可选):管理员可以在 "Administration" 面板中为家人或朋友创建用户账户。
-
配置存储模板(推荐) 存储模板决定了上传文件在服务器上的存储目录结构。
- 进入 "Administration -> Settings -> Storage Template"。
- 你可以使用默认模板,或根据日期、相册名称等变量自定义。
- 一个常见的自定义模板示例,将文件按相册(如果有)以及年份和月份分组存储:
{{#if album}}{{album}}/{{y}}/{{MM}}/{{filename}}{{else}}Other/{{y}}/{{MM}}/{{filename}}{{/if}}注意:如果需要根据条件(如是否存在相册)构建不同路径,请确保将整个路径结构包裹在条件语句{{#if}}...{{/if}}内,否则条件块之后的内容会被无条件添加到所有路径中。
-
使用手机 App 备份
- 从官方应用商店下载 Immich 手机 App。
- 打开 App,输入服务器地址:
http://你的服务器IP:2283。 - 使用注册的账户登录。
- 在 App 的备份设置中,选择要备份的相册并开启自动备份。
-
批量导入现有照片 对于服务器上已有的照片目录,可以使用 Immich CLI 工具进行批量导入。
- 基本命令示例:
bash # 首先进行身份验证 immich login-key http://你的服务器IP:2283/api 你的API密钥 # 递归上传整个目录,并根据文件夹名称自动创建相册 immich upload --recursive --album /path/to/your/photos - API 密钥可以在 Web 界面的用户设置中获取。
- 基本命令示例:
🔄 维护与管理
-
服务停止与启动
bash # 停止服务 docker compose down # 启动服务 docker compose up -d -
数据备份 至关重要:定期备份你配置的
UPLOAD_LOCATION(照片视频文件)和DB_DATA_LOCATION(数据库)目录。团队建议遵循 3-2-1 备份策略(至少三个数据副本,两种不同介质,一个异地副本)来保护珍贵记忆。 -
更新 Immich 当有新版本发布时:
bash # 拉取最新镜像 docker compose pull # 重新启动服务 docker compose up -d更新前,建议查阅官方发布说明,并确保你的数据已备份。
❓ 常见问题排查
-
容器启动失败
- 检查
.env文件:确保所有路径设置正确,且DB_PASSWORD不包含特殊字符。 - 查看日志:使用
docker compose logs [服务名]查看具体错误信息。
- 检查
-
无法访问 Web 界面
- 检查防火墙/安全组:确保服务器的 2283 端口已开放。
- 确认容器状态:运行
docker compose ps检查所有容器是否正常运行。
-
AI 识别(人脸、物体)不工作或速度慢
- 硬件加速:考虑为
immich-machine-learning服务配置 GPU 硬件加速(如 CUDA、OpenVINO)以提升性能。具体请参考官方硬件加速文档。 - 资源检查:AI 功能可能占用大量内存和 CPU,确保服务器资源充足。
- 硬件加速:考虑为
-
上传照片失败
- 检查存储路径权限:确保
UPLOAD_LOCATION对应的目录对 Docker 容器有读写权限。
- 检查存储路径权限:确保
通过以上步骤,你应该能够成功部署并开始使用你的私有云相册。如果在使用过程中遇到问题,Immich 活跃的官方文档和社区论坛是寻求帮助的好去处。