- 官网:https://immich.app/
- 在线体验:https://demo.immich.app/,账号:demo@immich.app 密码:demo
- GitHub:https://github.com/immich-app/immich
一、安装
以下均为Windows操作系统上的安装方法,主要还是依赖于docker
,区别是 Docker Desktop on Windows
与 WSL Docker
,最终效果一样,只是一个有图形界面一个没有。
Docker Desktop on Windows
- 下载安装 Docker Desktop on Windows
- 安装 wsl ,参考:在Windows上使用VisualStudio配合WSL进行Linux程序开发 — 朱皮特的烂笔头
- 运行
docker
- 找一个文件夹作为
immich
的工作目录,然后右键打开PowerShell
,参考 Install - Immich ,执行命令:
curl -o- https://raw.githubusercontent.com/immich-app/immich/main/install.sh | bash
版本升级时需要进入到 immich
的目录下,然后执行命令:
docker-compose pull && docker-compose up -d # Or `docker compose up -d`
需要注意的是,执行上面的命令,需要提前运行docker
才行。如果网络不通,可以尝试用加速器。
- 后续再运行
immich
只需要在docker
里通过图形界面操作来运行,比较方便。
WSL Docker
安装 wsl ,参考:在Windows上使用VisualStudio配合WSL进行Linux程序开发 — 朱皮特的烂笔头
在 wsl 中安装
docker
:
# 安装 docker
curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh
# 安装完成后输入命令
sudo groupadd docker
sudo gpasswd –a $USER docker
newgrp docker # 如果不行,可以在前面执行一句:
# 启动 docker
sudo service docker start
# 检查 docker 是否安装成功,返回:Docker is running 说明正常运行
sudo service docker status
- 找一个文件夹作为
immich
的工作目录,然后右键打开PowerShell
,参考 Install - Immich ,执行命令:
sudo su
curl -o- https://raw.githubusercontent.com/immich-app/immich/main/install.sh | bash
运行:
apt install docker-compose
docker-compose up -d # or `docker compose up -d` based on your docker-compose version
版本升级时需要进入到 immich
的目录下,然后执行命令:
docker-compose pull && docker-compose up -d # Or `docker compose up -d`
需要注意的是,执行上面的命令,需要提前运行docker
才行。如果网络不通,可以尝试用加速器。
- 停止
immich
相关服务:
docker stop $(docker ps -q -f name=immich)
二、配置局域网访问
1、配置无线设备与宿主机在同一网段
如果手机与Windows宿主机不在同一个网段,例如手机使用路由器WiFi,但是宿主机使用光猫直连,则可以配置路由器的上网模式为桥接模式(Bridge AP),让光猫来统一给设备分配IP地址,这样所有设备就都在一个网段了,配置完成后记得重启路由器。
2、配置局域网访问Windows 10 WSL 的网络服务
也即实现局域网内的手机、电视、电脑、平板等设备可以访问 immich
网络服务,可以参考:Docker — 朱皮特的烂笔头 「局域网访问Windows 10 WSL 的网络服务」章节进行配置。
配置结束后的地址如下:
地址 | 说明 |
---|---|
http://192.168.1.2:8080/api | 移动端App的服务器配置地址 |
http://192.168.1.2:8080 | 所有局域网设备可访问的地址 |
http://172.23.192.21:2283/ | 仅宿主机可访问的服务地址 |
三、一键启动脚本
有时候局域网IP地址可能会发生变化,每次手动设置也挺麻烦,可以让脚本自动获取并自动配置好。在 immich-app
目录下创建 powershell
脚本 run-immich.ps1
:
<#
一键启动 immich 服务
#>
$wslServerPort = 2283
$localPort = 8080
$hostIP = (ipconfig|select-string "IPv4"|out-string).Split(":")[-1].Trim()
$wslOutput = wsl -e ip addr show eth0
$wslIP = $wslOutput | Select-String -Pattern '\d+(\.\d+){3}' -AllMatches | ForEach-Object { $_.Matches.Value } | Select-Object -First 1
$baseUrl = "http://" + $hostIP + ":8080"
$apiUrl = $baseUrl+ "/api"
Write-Host "宿主IP地址: $hostIP"
Write-Host "WSL IP地址: $wslIP"
Write-Host "局域网地址: $baseUrl"
Write-Host "App服务地址: $apiUrl"
Write-Host "端口映射,将对本机 ${hostIP}:${localPort} 的访问请求转发到 ${wslIP}:${wslServerPort}"
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 protocol=tcp listenport=8080 connectport=2283 connectaddress=$wslIP
Write-Host "查看端口映射情况"
netsh interface portproxy show all
Write-Host "配置防火墙添加允许入站规则"
New-NetFirewallRule -DisplayName "Allow Inbound TCP Port 8080" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 8080
Write-Host "启动 immich 服务"
$wslCommand = "bash -c 'chmod +x run-immich-docker.sh && ./run-immich-docker.sh'"
$process = Start-Process -FilePath wsl -ArgumentList $wslCommand -PassThru
Write-Host "打开局域网地址"
Start-Process $baseUrl
Write-Host "按任意键继续..."
[Console]::ReadKey()
创建run-immich-docker.sh
脚本(注意文件的换行符不能使用Windows的\r\n,要转换为Unix换行符,可以使用notepad++修改:菜单编辑 - 文档格式转换 - 转为Unix(LF)):
#!/bin/bash
# 启动 immich 服务
docker-compose up -d
# 查看 immich 服务相关的端口号
docker ps --filter 'name=immich' --format '\t'
exec bash
以后需要上传图片和视频的时候,打开宿主机,一键运行脚本 run-immich.ps1
即可,成功运行后可以关闭 run-immich.ps1
的窗口,但是进入wsl
环境的窗口不能关闭,需要让服务能够在后台一直运行。
四、更新
需要安装 Docker Desktop on Windows ,进入 WSL
环境后执行:
docker-compose pull && docker-compose up -d
五、问题及解决
- 首次安装运行后,web页面的状态显示为
offline
,截止到2023-5-31,v1.59.0还存在这个问题。解决办法:在immich
的命令下,创建一个名为library
的文件夹即可解决。 2023-5-31补充:作者临时打了个补丁,v1.59.1已经解决了。 - 首次安装运行后,可以上传图片,但是不会显示出来,截止到2023-5-31,v1.59.0还存在这个问题。解决办法:与作者交流或发新版本,作者临时打了个补丁,v1.59.1已经解决了。
文档信息
- 本文作者:zhupite
- 本文链接:https://zhupite.com/soft/immich.html
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)