当前位置: 首页 > news >正文

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
  1. 前往 Docker 官方下载页面 下载 Docker Desktop for Windows。
  2. 完成下载后,运行安装程序并按提示操作。安装完成后,启动 Docker Desktop。
1.2 升级 WSL 到 WSL 2

为了提高 Docker 在 Windows 上的性能,根据提示将 WSL 升级到 WSL 2。或者按照以下步骤进行操作:

  1. 在 Windows 上启用 WSL:打开 PowerShell 作为管理员,运行以下命令:

    wsl --install
    
  2. 将 WSL 设置为版本 2:

    wsl --set-default-version 2
    
  3. 确保 WSL 2 安装成功:

    wsl --list --verbose
    

    在这里插入图片描述

1.3 设置 E 盘为 File Sharing

Docker 使用 WSL 来运行容器,你需要设置文件共享路径,让 Docker 可以访问 Windows 上的文件。按照以下步骤设置 E 盘共享:

  1. 打开 Docker Desktop,进入 Settings(设置)。
  2. 在 Resources(资源)部分,选择 File Sharing(文件共享)。
  3. 点击“+”按钮,选择 E 盘(或你想要存储图片的文件夹)。
    在这里插入图片描述

2. 拉取 Immich 最新代码并配置 Docker 文件

2.1 拉取 Immich 代码
  1. 打开终端,进入你希望存储项目代码的目录。

  2. 使用 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)来存储照片。你不需要额外的操作,只需确保以下几项配置:

  1. .env 文件中确保 UPLOAD_LOCATION 指向正确的路径(如 E:/ImmichPhotos)。
  2. 每次上传图片时,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 将会自动按照年月日分类存储。
在这里插入图片描述

在这里插入图片描述

http://www.dtcms.com/a/268208.html

相关文章:

  • Mysql 数据库结构优化
  • 工业相机和镜头
  • 前端开发常见问题(从布局到性能优化)
  • axios笔记
  • debian及衍生发行版apt包管理常见操作
  • 从前端转nest.js开发的学习路线
  • 【系统分析师】2023年真题:论文及解题思路
  • Leet code每日一题
  • python库 dateutil 库的各种案例的使用详解
  • ASP.NET代码审计 Web Forms框架 SQL注入漏洞
  • stm32地址偏移:为什么相邻寄存器的地址偏移量0x04表示4个字节?
  • 探寻《答案之书》:在随机中寻找生活的指引
  • Python 中 Pendulum 库的详细使用:更精确的日期时间处理
  • Ubuntu20.04安装mujoco210, mujoco-py时的报错处理
  • 深度特征提取在LIDC-IDRI数据集多分类任务中的优化细节
  • 【数据治理】要点整理-《信息技术服务治理第3部分:绩效评价》GB/T 34960.3-2017
  • MyBatis实战指南(九)MyBatis+JSP+MySQL 前端页面实现数据库的增加与删除显示数据
  • std::vector<bool>有什么特殊的吗
  • 基于拓扑结构检测的LDPC稀疏校验矩阵高阶环检测算法matlab仿真
  • Redis集群和 zookeeper 实现分布式锁的优势和劣势
  • leetcode71.简化路径
  • WPF学习笔记(26)CommunityToolkit.Mvvm与MaterialDesignThemes
  • 如何正确规范的开发术语自己的TYPECHO插件
  • AI做美观PPT:3步流程+工具测评+避坑指南
  • LeetCode 算法题解:链表与二叉树相关问题 打打卡
  • ubuntu 20.04 安装中文输入法 (sougou pin yin)
  • std::forward作用
  • day53
  • 微服务负载均衡全解析:从原理到实践
  • 【Note】《Kafka: The Definitive Guide》第三章: Kafka 生产者深入解析:如何高效写入 Kafka 消息队列