赞
踩
Immich是一个自托管的照片和视频备份解决方案,允许用户在私有服务器上存储、管理和分享他们的媒体文件。这个项目旨在提供一个类似于Google照片或iCloud照片库的体验,但是用户可以完全控制自己的数据。通过自托管,用户不需要依赖第三方云服务提供商来存储私人照片和视频,这增加了隐私保护和数据所有权。
Immich的主要特点包括:
Immich通常通过Docker容器化部署,使得安装和维护变得简单。项目在GitHub上开源,社区驱动,不断更新和改进。
使用Immich,用户需要具备一定的技术背景,特别是关于如何部署和维护自托管服务的知识。但对于希望提高个人数据隐私和安全性的用户来说,Immich提供了一个很好的解决方案。
docker-compose.yml
配置文件解释# 指定Docker Compose文件的版本为3.8 version: "3.8" # 定义项目的名称为immich name: immich # 定义多个服务 services: # 定义一个服务名为immich-server immich-server: # 设置容器的名称为immich_server container_name: immich_server # 从GitHub Container Registry拉取immich-server的镜像,版本由IMMICH_VERSION环境变量指定,默认为release image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} # 容器启动后执行的命令 command: [ "start.sh", "immich" ] # 指定挂载的卷 volumes: # 将宿主机的UPLOAD_LOCATION目录挂载到容器的/usr/src/app/upload - ${UPLOAD_LOCATION}:/usr/src/app/upload # 将宿主机的/etc/localtime挂载到容器中,以只读方式同步时间 - /etc/localtime:/etc/localtime:ro # 指定环境变量文件 env_file: # 使用当前目录下的.env文件 - .env # 指定端口映射 ports: # 将容器的3001端口映射到宿主机的2283端口 - 2283:3001 # 定义服务依赖 depends_on: # immich-server依赖于redis和database服务 - redis - database # 设置容器的重启策略为始终重启 restart: always # 定义另一个服务名为immich-microservices immich-microservices: # 设置容器的名称为immich_microservices container_name: immich_microservices # 使用相同的镜像和版本控制策略 image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} # 启动微服务的命令 command: [ "start.sh", "microservices" ] # 同样指定挂载的卷 volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro # 使用相同的环境变量文件 env_file: - .env # 同样依赖于redis和database服务 depends_on: - redis - database # 也设置为始终重启 restart: always # 以下是定义volumes的部分,用于指定所需的Docker卷 volumes: # 定义一个卷名为pgdata,用于持久化PostgreSQL数据库数据 pgdata: # 定义一个卷名为model-cache,用于缓存机器学习模型数据 model-cache:
这个docker-compose.yml文件为Immich应用定义了一系列服务,包括主应用服务器、微服务、机器学习服务、Redis缓存和PostgreSQL数据库服务。通过这个配置文件,可以一次性启动Immich应用的所有组成部分,实现服务之间的依赖管理和自动重启策略等功能。
.env
文件解释# 你可以在这个URL找到所有支持的环境变量的文档:https://immich.app/docs/install/environment-variables # 上面这一行是注释,说明了如何找到关于所有支持的环境变量的官方文档。 # 你上传的文件将被存储在这个位置 UPLOAD_LOCATION=./library # 设置`UPLOAD_LOCATION`环境变量,定义了上传文件的存储位置。这里设置为当前目录下的`library`文件夹。 # 使用的Immich版本。你可以将其固定在特定版本,比如 "v1.71.0" IMMICH_VERSION=release # 设置`IMMICH_VERSION`环境变量,指定Immich使用的版本。这里设置为`release`,意味着将使用最新的发布版本。 # 用于Postgres的连接密码。你应该将其更改为一个随机密码 DB_PASSWORD=postgres # 设置`DB_PASSWORD`环境变量,定义连接PostgreSQL数据库的密码。默认设置为`postgres`,建议更改为更安全的密码。 # 以下这行不需要更改 ################################################################################### # 上面这行是注释,表示以下的环境变量通常不需要修改。 DB_HOSTNAME=immich_postgres # 设置`DB_HOSTNAME`环境变量,指定PostgreSQL数据库服务的主机名。这里使用的是`docker-compose.yml`文件中定义的服务名称`immich_postgres`。 DB_USERNAME=postgres # 设置`DB_USERNAME`环境变量,定义连接PostgreSQL数据库的用户名。默认设置为`postgres`。 DB_DATABASE_NAME=immich # 设置`DB_DATABASE_NAME`环境变量,指定PostgreSQL数据库的名称。这里设置为`immich`。 REDIS_HOSTNAME=immich_redis # 设置`REDIS_HOSTNAME`环境变量,指定Redis服务的主机名。这里使用的是`docker-compose.yml`文件中定义的服务名称`immich_redis`。
这个.env文件提供了Immich服务和它所依赖的数据库(PostgreSQL)以及Redis服务的基本配置。通过这些环境变量,Immich服务能够正确地连接到数据库和Redis,同时指定了文件上传的位置。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。