手机照片备份方案Immich(修订版)


前言

墨菲定律又一次得到了验证 😂 ,它告诉我们,越担心什么,就越会发生什么。

老苏原本担心参数、接口可能会有变化,但是实际上变动更大,新版本不再使用 nginx,取而代之的是 immich_proxy,所以下载原文中的 immich.zip 来安装,会导致下面的错误:

抱歉了各位~~~ ,下面来将功补过

安装

docker-compose.yml

老苏对比了一下 docker-compose.yml 主要的变化:

  • 镜像 taglatest 改为了 release
  • 取消了 networks
  • 取消了暴露的多个端口,现在对外只有一个端口,默认是 2283
  • 不再使用 nginx 做代理,而是用了自己的 immich_proxy

👇下面是老苏在最新的官方基础上微调后的 docker-compose.yml

除了端口 2283,其他的你可以不需要改动;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
version: "3.8"

services:
immich-server:
image: altran1502/immich-server:release
entrypoint: ["/bin/sh", "./start-server.sh"]
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
env_file:
- .env
environment:
- NODE_ENV=production
depends_on:
- redis
- database
restart: always

immich-microservices:
image: altran1502/immich-server:release
entrypoint: ["/bin/sh", "./start-microservices.sh"]
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
env_file:
- .env
environment:
- NODE_ENV=production
depends_on:
- redis
- database
restart: always

immich-machine-learning:
image: altran1502/immich-machine-learning:release
entrypoint: ["/bin/sh", "./entrypoint.sh"]
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
env_file:
- .env
environment:
- NODE_ENV=production
depends_on:
- database
restart: always

immich-web:
image: altran1502/immich-web:release
entrypoint: ["/bin/sh", "./entrypoint.sh"]
env_file:
- .env
restart: always

redis:
container_name: immich_redis
image: redis:6.2
restart: always

database:
container_name: immich_postgres
image: postgres:14
env_file:
- .env
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
PG_DATA: /var/lib/postgresql/data
volumes:
- ${DB_LOCATION}:/var/lib/postgresql/data
restart: always

immich-proxy:
container_name: immich_proxy
image: altran1502/immich-proxy:release
ports:
- 2283:80
logging:
driver: none
depends_on:
- immich-server
restart: always

.env

.envVITE_SERVER_ENDPOINT 相比之前的版本,地址后面增加了 /api

如果你是从公网访问,需要改为反代后的域名地址,例如:https://immich.laosu.ml:444/api

如果这个地址设置不正确,有可能出现 Network Error

除了 VITE_SERVER_ENDPOINT 要根据自己的 IP 或者域名设定外,其他的你可以不需要改动;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 数据库
DB_USERNAME=postgres
DB_PASSWORD=postgres
DB_DATABASE_NAME=immich
DB_LOCATION=./data

# Redis
REDIS_HOSTNAME=immich_redis

# 上传文件配置
UPLOAD_LOCATION=./upload

#JWT SECRET
JWT_SECRET=RdjXLHfm3gTcqWq7z6GBwtyipvuHMBMiZ2VygWLVRCBdWdSBgP9jSEk5E9Y8Xhhy

# MAPBOX
## ENABLE_MAPBOX -> 如果为真,则必须提供 MAPBOX_KEY
ENABLE_MAPBOX=false
MAPBOX_KEY=

# 网页地址
VITE_SERVER_ENDPOINT=http://192.168.0.197:2283/api

如果你是新安装的,可以执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 immich 和 子目录
mkdir -p /volume2/docker/immich/{data,upload}

# 进入 immich 目录
cd /volume2/docker/immich

# 将 docker-compose.yml 和 .env 文件放入当前目录

# 一键启动
docker-compose up -d

运行

访问时,打开 http://群晖IP:2283

如果出现👇这种,有可能是你打开太快了,环境还没准备好,稍等几分钟再试试

看到了欢迎界面,接来下就可以正常使用了

目前安装出来的版本是 v1.19.1

小结

官网有一段话,大家需要注意

目前的改动非常频繁,测试下就可以了,千万不要真的用于保存照片。

参考文档

alextran1502/immich: Self-hosted photo and video backup solution directly from your mobile phone.
地址:https://github.com/alextran1502/immich