Windows部署本地照片管理Immich
本文介绍在Windows系统中通过Docker部署Immich,Immich是一个非常方便的照片和视频管理工具,包含iOS和安卓手机端,可以实现局域网内高效的照片存储、上传和管理。下面将涵盖从安装Docker、配置环境变量、拉取Immich代码、修改配置文件到启动和停止命令等一系列步骤。
iOS端app:appstore
安卓端app及最新服务端::https://github.com/immich-app/immich/releases
1. 安装 Docker 并升级 WSL
首先,你需要确保你的系统上已安装 Docker 和 WSL(Windows Subsystem for Linux)。如果没有安装,可以按照以下步骤进行:
1.1 安装 Docker Desktop
- 前往 Docker 官方下载页面 下载 Docker Desktop for Windows。
- 完成下载后,运行安装程序并按提示操作。安装完成后,启动 Docker Desktop。
1.2 升级 WSL 到 WSL 2
为了提高 Docker 在 Windows 上的性能,根据提示将 WSL 升级到 WSL 2。或者按照以下步骤进行操作:
-
在 Windows 上启用 WSL:打开 PowerShell 作为管理员,运行以下命令:
wsl --install
-
将 WSL 设置为版本 2:
wsl --set-default-version 2
-
确保 WSL 2 安装成功:
wsl --list --verbose
1.3 设置 E 盘为 File Sharing
Docker 使用 WSL 来运行容器,你需要设置文件共享路径,让 Docker 可以访问 Windows 上的文件。按照以下步骤设置 E 盘共享:
- 打开 Docker Desktop,进入 Settings(设置)。
- 在 Resources(资源)部分,选择 File Sharing(文件共享)。
- 点击“+”按钮,选择 E 盘(或你想要存储图片的文件夹)。
2. 拉取 Immich 最新代码并配置 Docker 文件
2.1 拉取 Immich 代码
-
打开终端,进入你希望存储项目代码的目录。
-
使用 Git 克隆 Immich 仓库:
git clone https://github.com/immich-app/immich.git cd immich
2.2 复制并修改 docker-compose.yml
配置文件
进入 Docker 文件夹,找到 docker-compose.yml
文件,并将其复制到项目的根目录。
按照原始文件内容即可,其中的配置直接调用.env的变量,具体设置在下一步中。
2.3 复制并修改 .env
文件
将 docker
文件夹下的 example.env
文件复制到项目根目录并重命名为 .env
。
修改 .env
文件中的以下内容:
# 图片存储位置
UPLOAD_LOCATION=E:/ImmichPhotos# 数据库存储位置
DB_DATA_LOCATION=E:/ImmichData# 设置时区(可选)
TZ=Asia/Shanghai# 使用的 Immich 版本 改为固定版本比较稳定 生产环境 → 固定版本(如 v1.71.0)避免意外升级 测试环境 → 使用 release 或 latest(但可能有风险)
IMMICH_VERSION=release# 数据库连接密码
DB_PASSWORD=yourpassword
3. 启动 Immich
3.1 启动 Docker 容器
完成配置后,你可以使用以下命令启动 Immich 服务:
docker-compose up -d
该命令会在后台启动 Immich 所需的所有 Docker 容器。
3.2 停止 Docker 容器
如果你需要停止 Immich 服务,可以使用以下命令:
docker-compose down
4. 设置存储模板(自动按照年月日分文件夹存储)
Immich 默认会根据上传时间创建文件夹结构,按照年月日(如:2023/07/05)来存储照片。你不需要额外的操作,只需确保以下几项配置:
- 在
.env
文件中确保UPLOAD_LOCATION
指向正确的路径(如E:/ImmichPhotos
)。 - 每次上传图片时,Immich 会自动在该路径下创建文件夹,结构类似于
E:/ImmichPhotos/2025/07/05
。
5. 完整配置文件示例
最后,以下是应该得到的完整配置文件:
docker-compose.yml
示例:
name: immichservices:immich-server:container_name: immich_serverimage: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}volumes:- ${UPLOAD_LOCATION}:/usr/src/app/upload- /etc/localtime:/etc/localtime:roenv_file:- .envports:- '2283:2283'depends_on:- redis- databaserestart: alwayshealthcheck:disable: falseimmich-machine-learning:container_name: immich_machine_learningimage: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}volumes:- model-cache:/cacheenv_file:- .envrestart: alwayshealthcheck:disable: falseredis:container_name: immich_redisimage: docker.io/valkey/valkey:8-bookworm@sha256:fec42f399876eb6faf9e008570597741c87ff7662a54185593e74b09ce83d177healthcheck:test: redis-cli ping || exit 1restart: alwaysdatabase:container_name: immich_postgresimage: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:5f6a838e4e44c8e0e019d0ebfe3ee8952b69afc2809b2c25f7b0119641978e91environment:POSTGRES_PASSWORD: ${DB_PASSWORD}POSTGRES_USER: ${DB_USERNAME}POSTGRES_DB: ${DB_DATABASE_NAME}POSTGRES_INITDB_ARGS: '--data-checksums'volumes:- ${DB_DATA_LOCATION}:/var/lib/postgresql/datashm_size: 128mbrestart: alwaysvolumes:model-cache:
.env
示例:
# 图片存储位置
UPLOAD_LOCATION=E:/ImmichPhotos# 数据库存储位置
DB_DATA_LOCATION=E:/ImmichData# 设置时区(可选)
TZ=Asia/Shanghai# 使用的 Immich 版本
IMMICH_VERSION=release# 数据库连接密码
DB_PASSWORD=yourpassword
6. 总结
按照本教程的步骤,你可以成功在 Windows 上部署 Immich,方便地管理照片和视频。此后,可以根据需要把相册定期上传,Immich 将会自动按照年月日分类存储。