🪅Immich自托管部署指南
约 853 字大约 3 分钟
ImmichDockerCloudfare Tunnel
2025-12-18
Immich 是一个高性能的自托管照片和视频管理解决方案,支持人脸识别、智能搜索、自动备份等功能,类似于 Google Photos 的开源替代品。
Docker Desktop 部署
前提条件:
- Docker Desktop 已安装并运行
- Docker Compose 可用(Docker Desktop 自带)
创建工作目录
在 PowerShell 中执行(路径可自定义,如
D:\Photos\immich-app):mkdir C:\immich-app cd C:\immich-app下载配置文件
# docker-compose.yml(从 release 下载) Invoke-WebRequest -Uri "https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml" -OutFile "docker-compose.yml" # .env 文件 Invoke-WebRequest -Uri "https://github.com/immich-app/immich/releases/latest/download/example.env" -OutFile ".env"注意
必须从 release 下载配置文件,仓库 main 分支的文件可能与最新版本不兼容。
配置 .env 文件
# 照片存储位置(可自定义,如 D:/Photos/immich-app/library) UPLOAD_LOCATION=C:/immich-app/library # 数据库存储位置(可自定义,需与上方路径同盘符) DB_DATA_LOCATION=C:/immich-app/postgres # 时区 TZ=Asia/Shanghai # Immich 版本 IMMICH_VERSION=release # 数据库密码(仅使用 A-Za-z0-9) DB_PASSWORD=YourSecurePassword123 # 以下配置通常不需要修改 DB_USERNAME=postgres DB_DATABASE_NAME=immich启动容器
docker compose up -d访问 Immich
浏览器打开 http://localhost:2283,首次访问需创建管理员账户。
服务组成
| 服务 | 说明 | 端口 |
|---|---|---|
| immich-server | 主服务器(API + Web UI) | 2283 |
| immich-machine-learning | 机器学习服务(人脸识别、CLIP 搜索) | - |
| redis | 缓存服务 | - |
| database | PostgreSQL 数据库 | - |
常用命令
# 查看运行状态
docker compose ps
# 查看日志
docker compose logs -f
# 停止服务
docker compose down
# 升级版本
docker compose pull && docker compose up -d移动端 App
- Android: Google Play / F-Droid
- iOS: App Store
服务器地址设置为 http://你的电脑IP:2283(手机和电脑同属一个局域网)
内网穿透,外网访问
通过 Cloudflare Tunnel 实现安全的外网访问,无需暴露本地网络。
前提条件:
- Immich 已在本地运行
- 域名已托管在 Cloudflare
- Cloudflare 账号
域名托管至 Cloudflare
在域名注册商处修改 NS 服务器为 Cloudflare 分配的地址。
注
修改前确认 Cloudflare 中已正确导入所有 DNS 记录。
创建 Tunnel
进入 Cloudflare Zero Trust → Networks → Connectors:
- 点击 Create a tunnel
- 选择 Cloudflared 类型
- 命名 Tunnel(如
immich) - 复制生成的 Token
运行 Cloudflared 容器
docker run -d \ --name cloudflared \ --restart always \ --network immich_default \ cloudflare/cloudflared:latest \ tunnel --no-autoupdate --protocol http2 \ run --token <YOUR_TOKEN>注
--network immich_default确保与 Immich 在同一 Docker 网络;--protocol >http2避免 UDP 被阻断。配置 Tunnel 路由
在 Cloudflare Zero Trust 的 Tunnel 配置中添加 Public Hostname:
字段 值 Hostname immich.your-domain.comService http://immich_server:2283配置 .env 外部 URL(可选)
IMMICH_URL=https://immich.your-domain.com重启 Immich:
docker compose down && docker compose up -d
验证
# 检查 Tunnel 状态
docker logs cloudflared --tail 20
# 应看到 Registered tunnel connection
# 检查 DNS 解析
nslookup immich.your-domain.com
# 应返回 Cloudflare IP(如 104.21.x.x)浏览器访问 https://immich.your-domain.com 验证。
误开启 Application 访问策略的解决方案
