如何在Windows下运行immich并在公网访问

高效利用手上的垃圾硬件

注意!在阅读本文之前请务必先阅读immich的官方文档

安装docker

immich运行在docker上,因此在进行任何操作前必须安装docker

👉[Docker Desktop](Docker Desktop: The #1 Containerization Tool for Developers | Docker) 你可以很轻松的下载到合适版本的docker

部署immich

docker安装完成后就该部署immich了

这里 是immich的官方网站,这里 是他们的github页面

我们需要在他们的github页面上获取以下四个文件

docker-compose.yml (核心服务定义,定义了 Immich 运行所需的所有 Docker 服务(如 serverwebmicroservicesRedisPostgres 等),以及它们之间的网络和卷配置。)

example.env (环境变量,包含部署所需的所有关键设置,例如数据库凭证、时区、密钥 (SECRET) 和上传目录路径等。您需要复制并修改它为.env)

hwaccel.ml.yml (机器学习配置,一个 Docker Compose 扩展文件,用于配置机器学习服务(用于图像识别和搜索),使其能够利用硬件加速(如 GPU)。)

hwaccel.transcoding.yml (硬件转码配置,一个 Docker Compose 扩展文件,专门用于启用视频转码的硬件加速功能(如 Intel Quick Sync、Nvidia)。它会修改核心服务定义以暴露必要的设备。)

全部准备完成后将他们放在同一个目录下

docker compose up -d

即可自动的下载镜像并部署

需要更新的话

docker compose pull

就可以自动拉取新的镜像,并更新了

更新完成后,先前的镜像不会被删除,需要自己去docker desktop删除

中国大陆地区镜像被墙的解决方法

目前最好的方法就是给powershell配置一个http代理

$Env:http_proxy=”http:/ /127.0.0.1:你代理软件的监听端口”;

$Env:https_proxy=”http:/ /127.0.0.1:你代理软件的监听端口”;

这里为了防止被识别成链接打了两个空格,请勿直接复制使用

外部图库的使用方法

想要把自己的图片导入immich?使用外部图库可以轻松的导入大量的照片

打开 docker-compose.yml

找到这个字段,

以 “E:/photo:/mnt/photo:rw” 这行举例子

E:/photo 是你的外部图片所在的路径

/mnt/photo是你将E:/photo 映射到immich时的路径,一般会映射到/mnt/xxx ([Linux 系统目录结构](Linux 系统目录结构 | 菜鸟教程))

:rw 这个路径是可 读(r) 写(w)的

然后打开你immich的webui页面,打开系统管理,找到外部图库,创建图库,选择图库所有者

在这里填入你刚才映射到immich内部的路径

然后等待即可

配置公网访问

我个人比较喜欢使用 [Cloudflare Tunnel](Cloudflare Tunnel · Cloudflare One docs) 来实现公网访问

操作方法如下

我不推荐直接安装他们提供的Windows的安装方法,因为会出现奇奇怪怪的问题

我个人更喜欢在docker下运行

新建一个空文件夹,这里我就叫它cloudflared好了

新建一个 docker-compose.yml 文件

version: “3”

services:

  cftunnel:

    image: cloudflare/cloudflared:latest

    container_name: cftunnel

    restart: unless-stopped

    command: tunnel –no-autoupdate run –token 你的token

然后 powershell运行

docker compose up -d

补充

修改immich任何的配置文件后,都需要重新运行

docker compose up -d 才能生效