Immich 介绍
一、概述
Immich 是一款自托管的照片和视频管理解决方案。
二、功能特点
(一)备份功能
- 它可以将手机、相机等设备中的照片和视频备份到自己的服务器上,如同搭建私人的 “云存储”,能有效避免第三方云服务可能出现的数据安全和隐私问题。例如,摄影师或重视隐私的用户可借此安全备份作品或家庭照片。
(二)组织和管理
- Immich 提供便捷工具来组织管理媒体文件。可依时间、地点、主题等方式创建相册分类,比如创建 “旅行相册” 存放某次旅行的相关媒体,或按拍摄地点设 “巴黎之旅”“纽约印象” 等相册,便于快速查找所需内容。
(三)共享功能
- 允许用户轻松与家人、朋友共享照片和视频。可通过生成共享链接或邀请特定用户查看,如聚会后能快速共享相关媒体,且能控制共享权限,如仅允许查看或允许下载等。
(四)用户体验友好
- Immich 具有简洁直观的用户界面,网页端和移动应用程序访问均便捷,移动应用考虑手机操作便利性,可随时随地备份、查看和分享。
三、技术架构方面
(一)后端技术
- Immich 主要基于 Node.js 构建,Node.js 是开源、跨平台的 JavaScript 运行环境,能高效处理大量并发请求,适用于处理备份请求、文件管理操作等任务。同时使用数据库存储媒体文件元数据(如拍摄时间、地点、文件名称等信息)和用户信息等,使数据管理和查询更有序。
(二)前端技术
- 前端使用流行的 React 框架,能构建高效、灵活的用户界面,提供流畅交互体验。通过与后端 API 交互,可实时获取和更新媒体文件相关信息,如相册添加或删除照片后界面能及时更新显示。
四、安装和使用
(一)安装要求
- 要使用 Immich,需有自己的服务器或具备足够资源的计算机来运行它,服务器可为物理服务器或租用的虚拟服务器。同时要安装必要软件依赖,如 Docker 等,以便轻松部署和管理 Immich 应用程序。
(二)配置过程
- 安装后,需进行基本配置,包括设置存储路径(媒体文件存储位置)、数据库连接等。之后可在手机或其他设备上安装 Immich 移动应用并连接到自己的服务器,开始备份和管理媒体文件。
(三) docker 部署
# 创建数据卷
docker volume create immich-volume
# 运行
docker run --detach \
--name=immich \
--restart=always \
--env PUID=1000 \
--env PGID=1000 \
--env TZ=Etc/UTC \
--env DB_HOSTNAME=[db_host] \
--env DB_USERNAME=[dn_username] \
--env DB_PASSWORD=[db_passwd] \
--env DB_DATABASE_NAME=[db_name] \
--env REDIS_HOSTNAME=[redis_host] \
--env DB_PORT=5432 \
--env REDIS_PORT=6379 \
--publish 8080:8080 \
--mount type=volume,source=immich-volume,target=/config \
--mount type=volume,source=immich-volume,target=/photos \
--mount type=volume,source=immich-volume,target=/libraries \ ghcr.io/imagegenius/immich:latest