前言

准备好你的 Linux 环境(极空间、群晖、威联通、树莓派,或任意一台 Linux 服务器),跟着我一步步操作必定能运行起来。

PS:写于2026年4月3日,immich版本:v2.6.2
后续更新可能新增配置会不适用。

如果在任何步骤卡住,可以直接复制报错问AI。

如果不出意外的话,完成三步快速启动后就可以访问了。

为了照顾新手小白所以尽可能的多写点^^

作者:一个从坑里爬出来的技术爱好者

一、🎯 一键部署方案

两个配置文件获取方案,选择一个即可:

📥 方案一:从官方下载(推荐)

# 创建部署目录
mkdir -p ./immich-app
cd ./immich-app

# 下载最新配置文件
wget https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
wget https://github.com/immich-app/immich/releases/latest/download/example.env
mv example.env .env

⚡ 方案二:使用我的配置(复制粘贴)

  • 可以根据自己个性需求修改配置,如果你是小白只修改.env文件的用户名和密码即可
  • 创建docker-compose.yml文件
# 警告: 安装 Immich 请遵循官方指南:
# 
# 请务必使用当前发行版对应的 docker-compose.yml:
# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
# 
# main 分支上的配置文件可能与最新发行版不兼容

# 项目名称
name: immich

services:
  # Immich 主服务
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    # 硬件转码加速配置(如需开启取消注释)
    # extends:
    #   file: hwaccel.transcoding.yml
    #   service: cpu
    # 可设置为 [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] 开启硬件加速转码
    volumes:
      # 请勿修改此行。如需更改媒体文件存储路径,请编辑 .env 文件中的 UPLOAD_LOCATION
      - ${UPLOAD_LOCATION}:/data
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    ports:
      - '2283:2283'
    depends_on:
      - redis
      - database
    restart: always
    healthcheck:
      disable: false

  # 机器学习服务(人脸识别、图像分类等)
  immich-machine-learning:
    container_name: immich_machine_learning
    # 硬件加速配置,可在镜像标签后添加 -[armnn, cuda, rocm, openvino, rknn]
    # 示例: ${IMMICH_VERSION:-release}-cuda
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
    # 硬件加速配置(如需开启取消注释)- 详见官方文档
    # extends:
    #   file: hwaccel.ml.yml
    #   service: cpu
    # 可设置为 [armnn, cuda, rocm, openvino, openvino-wsl, rknn] 开启硬件加速推理
    volumes:
      - model-cache:/cache
    env_file:
      - .env
    restart: always
    healthcheck:
      disable: false

  # 缓存数据库
  redis:
    container_name: immich_redis
    image: docker.io/valkey/valkey:9@sha256:3eeb09785cd61ec8e3be35f8804c8892080f3ca21934d628abc24ee4ed1698f6
    healthcheck:
      test: redis-cli ping || exit 1
    restart: always

  # 主数据库
  database:
    container_name: immich_postgres
    image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_INITDB_ARGS: '--data-checksums'
      # 如果数据库存储在机械硬盘上,取消下面这行注释
      DB_STORAGE_TYPE: 'HDD'
    volumes:
      # 请勿修改此行。如需更改数据库存储路径,请编辑 .env 文件中的 DB_DATA_LOCATION
      - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
    shm_size: 128mb
    restart: always
    healthcheck:
      disable: false

# 数据卷
volumes:
  model-cache:

二、🚀 三步快速启动

1️⃣ 基础配置

  • 创建.env文件-你需要修改DB_USERNAMEDB_DATABASE_NAME
# Immich 环境变量示例
# 可以在 https://immich.app/docs/install/environment-variables 中查看所有支持的变量

# 上传文件存储路径,建议设置为一个专用目录
UPLOAD_LOCATION=./library

# 数据库文件存储路径,注意网络共享目录不支持用于数据库
DB_DATA_LOCATION=./postgres

# 设置时区,这里示例中将时区设置为上海
TZ=Asia/Shanghai

# 指定要使用的 Immich 版本
IMMICH_VERSION=release

# 数据库基本配置=
DB_USERNAME=你的用户名
# 数据库密码,建议修改为随机密码,且仅包含 A-Za-z0-9 字符
DB_PASSWORD=你的密码
DB_DATABASE_NAME=immich

2️⃣ 启动服务

# 启动所有容器
docker compose up -d

3️⃣ 访问验证

  • 🌐 浏览器访问:你的服务器IP:2283
  • 🔍 检查状态:docker compose ps
  • 📊 查看日志:docker compose logs -f

三、⚡ 核心功能亮点

✅ 自动备份 - 从手机自动同步照片
✅ 智能相册 - AI 自动整理分类
✅ 人脸识别 - 自动识别人物分组
✅ 隐私安全 - 数据完全自主掌控
✅ 跨平台 - 支持 Web/iOS/Android

四、🛠️ 常用管理命令

  • 📁 需要注意:此命令必须在与 docker-compose.yml 文件相同的目录下执行才可生效
  • 否则可能报错:no configuration file provided: not found
# 📈 查看服务状态
docker compose ps

# 📋 查看实时日志
docker compose logs -f

# 🔄 重启服务
docker compose restart

# ⏹️ 停止服务
docker compose down

# 🔼 更新到最新版
docker compose pull
docker compose up -d

五、🛠️ 简化管理命令-设置别名

  • 复制粘贴即可
echo "
# Immich 核心管理别名
alias dps='docker compose ps'            # 📈 查看服务状态
alias dlog='docker compose logs -f'      # 📋 查看实时日志
alias drestart='docker compose restart'  # 🔄 重启服务
alias dstop='docker compose down'         # ⏹️ 停止服务
alias dup='docker compose up -d'         # 🆙 启动服务
alias dpull='docker compose pull'         # 🔼 拉取新镜像
alias dupdate='docker compose pull && docker compose up -d'  # ⚡ 一键更新
" >> ~/.bashrc && source ~/.bashrc

🎮 使用说明

设置后,你的命令就简化为:

dps        # 原命令:docker compose ps
dlog       # 原命令:docker compose logs -f
drestart   # 原命令:docker compose restart
dstop      # 原命令:docker compose down
dup        # 原命令:docker compose up -d
dpull      # 原命令:docker compose pull
dupdate    # 原命令组合:docker compose pull && docker compose up -d

六、💡 验证是否生效

# 验证别名已设置
alias dps
# 应该显示:alias dps='docker compose ps'

七、🎯 Immich 初始化配置指南

1️⃣ 访问注册页面

首先,在浏览器打开你部署的 Immich 地址(例如:你的服务器IP:2283),来到首次使用的注册页面。
在这里插入图片描述

2️⃣ 配置存储模板(关键步骤)

注册登录后,进入设置 → 存储模板,这是最重要的配置项之一。
在这里插入图片描述
在这里插入图片描述

  • 🎯 推荐使用我的配置模板:
{{y}}/{{MM}}/{{dd}}/{{filename}}

📁 格式说明:

  • {{y}} → 年份(如:2026)
  • {{MM}} → 月份(如:05)
  • {{dd}} → 日期(如:20)
  • {{filename}} → 原始文件名

✨ 效果预览:一张在 2026年5月20日上传的 photo.jpg会被自动归类到:

上传文件夹/2026/05/20/photo.jpg

完成初始化设置后点击右上角账号设置,把能用的功能都打开。
在这里插入图片描述

八、🎉 完成部署!

✨ 恭喜!你的私有照片库已部署完成!

📱 现在可以:

  1. 在浏览器中创建管理员账户
  2. 下载手机 App 开启自动备份
  3. 享受完全私有的 Google Photos 体验!

💡 提示:首次使用建议先上传少量照片测试,确认功能正常后再进行批量导入。

九、💡 优化建议

🎯 性能优化:

  • 将 ./postgres数据库文件夹路径优先放在固态硬盘,./library 存放照片文件夹可以放在机械硬盘
  • 根据硬件配置添加 GPU 加速(可选)

🔐 安全设置:

  • 修改默认数据库密码
  • 配置 HTTPS 访问
  • 设置防火墙规则

十、🔧 Immich 常见问题解决代码指南

1. 🚫 端口 2283 被占用

解决方法:修改端口映射

# 编辑 docker-compose.yml 文件
vim docker-compose.yml

找到以下配置行:

# 原始配置
ports:
  - '2283:2283'

修改为:

# 修改后配置(将主机端口改为 2284)
ports:
  - '2284:2283'

保存后重启服务:

docker compose down
docker compose up -d

2. 🔐 权限不足

解决方法:设置存储目录权限

# 为 Immich 的存储目录设置适当权限
sudo chmod 755 ./library
# 如果使用自定义存储路径,请相应修改路径
# 例如:sudo chmod 755 /path/to/your/library
sudo chown -R $(whoami):$(whoami) ./library

3. ❌ 启动失败

解决方法:检查详细错误日志

# 查看所有服务的完整日志
docker compose logs

# 查看特定服务的日志
docker compose logs immich-server
docker compose logs database
docker compose logs redis

# 查看最近 50 行日志
docker compose logs --tail=50

# 实时追踪日志输出
docker compose logs -f

# 查看更早的日志(如果服务已停止)
docker compose logs --no-log-prefix

4. ⏱️ 访问超时

解决方法:检查防火墙设置,总有一个命令适合你

4.1 首先检查你的防火墙状态和工具

在开始之前,先确认你的系统使用了哪种防火墙。

# 查看系统防火墙状态
sudo ufw status
sudo firewall-cmd --state
sudo iptables -L -n
4.2 根据你的系统选择合适的命令

情况 A:如果你使用 UFW(Ubuntu/Debian 常见)

# 开启 2283 端口
sudo ufw allow 2283/tcp
# 查看规则是否已添加
sudo ufw status
# 重新加载防火墙规则
sudo ufw reload

情况 B:如果你使用 Firewalld(CentOS/RHEL/Fedora 常见)

# 永久开启 2283 端口
sudo firewall-cmd --zone=public --add-port=2283/tcp --permanent
# 重新加载防火墙规则
sudo firewall-cmd --reload
# 验证端口已开放
sudo firewall-cmd --zone=public --list-ports

情况 C:如果你使用 iptables(传统系统)

# 允许 2283 端口的 TCP 流量
sudo iptables -A INPUT -p tcp --dport 2283 -j ACCEPT
# 保存规则(根据系统不同)
# Ubuntu/Debian: 
sudo iptables-save > /etc/iptables/rules.v4
# 或
sudo netfilter-persistent save
# RHEL/CentOS 7+: 
sudo service iptables save
4.3 验证端口是否已成功开放
# 使用 netstat 检查端口监听状态
sudo netstat -tulpn | grep 2283
# 使用 ss 命令
sudo ss -tulpn | grep 2283
# 从本机测试端口连通性
telnet localhost 2283
# 或
nc -zv localhost 2283
4.4 如果你的 Immich 使用了非标准端口

如果按照你之前提到的解决方案,已将端口从 2283 修改为 2284:

# 开放 2284 端口(UFW)
sudo ufw allow 2284/tcp
# 开放 2284 端口(Firewalld)
sudo firewall-cmd --zone=public --add-port=2284/tcp --permanent
sudo firewall-cmd --reload

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐