36.6K star!Immich - 一款开源高性能的自托管照片和视频备份方案
大家好,今天给大家分享的是一个高性能的自托管照片和视频备份方案。
Immich 是一个图片管理和分享平台,它允许用户高效地组织、存储和访问他们的照片和视频集合。这个项目特别设计来优化个人和家庭的多媒体内容管理体验,提供了诸如自动备份、智能分类、高级搜索和安全分享等功能。
项目介绍
面向个人用户、摄影爱好者以及需要有效管理大量媒体文件的家庭,Immich 提供了一个集中的平台,使得珍贵的记忆得以妥善保存和欣赏。
功能特性
功能特性 | 移动端 | 网页端 |
---|---|---|
上传并查看照片和视频 | 是 | 是 |
软件运行时自动备份 | 是 | N/A |
忽略重复的项目 | 是 | 是 |
选择需要备份的相册 | 是 | N/A |
下载照片和视频到本地 | 是 | 是 |
多用户支持 | 是 | 是 |
相册与共享相册 | 是 | 是 |
可拖动的快速滚动条 | 是 | 是 |
支持RAW格式 | 是 | 是 |
元数据视图(EXIF、地图) | 是 | 是 |
通过元数据、对象、人脸和标签进行搜索 | 是 | 是 |
管理功能(用户管理) | 否 | 是 |
后台备份 | 是 | N/A |
虚拟滚动 | 是 | 是 |
OAuth 支持 | 是 | 是 |
API Keys | N/A | 是 |
实况照片备份和查看 | 是 | 是 |
支持360度全景图显示 | 否 | 是 |
用户自定义存储结构 | 是 | 是 |
公共分享 | 否 | 是 |
归档与收藏功能 | 是 | 是 |
足迹地图 | 是 | 是 |
好友分享 | 是 | 是 |
人脸识别与分组 | 是 | 是 |
回忆(那年今日) | 是 | 是 |
离线支持 | 是 | 否 |
只读相册 | 是 | 是 |
照片堆叠 | 是 | 是 |
Star增长曲线
技术架构
Immich 采用传统的客户端-服务器设计,使用专用数据库来保存数据。前端客户端使用 REST API 通过 HTTP 与后端服务进行通信。下面是该项目架构图。
Immich 有三个主要客户端:
- 移动应用程序——Android、iOS:采用Flutter编写,它使用Isar Database作为本地数据库,并使用Riverpod进行状态管理。
- Web 应用程序 - 响应式网站:使用SvelteKit和Tailwindcss的TypeScript项目。
- CLI - 用于批量上传的命令行实用程序:是一个npm包,可让用户通过命令行控制其 Immich 实例。它使用 API 执行各种任务,尤其是上传资源。
Immich 后端分为几个服务,作为单独的 docker 容器运行。
- immich-server- 处理并响应 REST API 请求
- immich-microservices- 执行后台作业(缩略图生成、元数据提取、转码等)
- immich-machine-learning- 执行机器学习模型
- postgres- 持久数据存储
- redis- 队列管理immich-microservices
详细介绍,请查看官方介绍文档[1]。
安装使用
服务部署
Docker Compose 是运行 Immich 的推荐方法。以下是使用 Docker Compose 部署 Immich 的步骤。Immich 需要 Docker Compose 版本 2.x。
从您选择的项目目录中,通过shell执行以下命令:
curl -o- https://raw.githubusercontent.com/immich-app/immich/main/install.sh | bash
该脚本将执行以下操作:
1.从Github的主分支下载docker-compose.yml和.env文件。2.启动容器。
Web应用程序访问地址http://<machine-ip-address>:2283
,移动应用程序的服务器 URL 地址http://<machine-ip-address>:2283/api
安装后续步骤,请参阅安装后步骤[2]
移动应用
您可从以下地点下载移动应用程序:
- Google Play 商店[3]
- 苹果应用商店[4]
- F-Droid[5]
- GitHub 发布 (apk)[6]
使用服务器端点 URL 登录移动应用程序http://<machine-ip-address>:2283/api
单击屏幕右上角的云图标导航到备份屏幕。
您可以从备份屏幕选择要备份到 Immich 服务器的相册。
向下滚动到底部并按“开始备份”以开始备份过程。
项目地址
https://github.com/immich-app/immich
References
[1]
官方介绍文档: https://immich.app/docs/developer/architecture
[2]
安装后步骤: https://immich.app/docs/install/post-install
[3]
Google Play 商店: https://play.google.com/store/apps/details?id=app.alextran.immich
[4]
苹果应用商店: https://apps.apple.com/us/app/immich/id1613945652
[5]
F-Droid: https://f-droid.org/packages/app.alextran.immich
[6]
GitHub 发布 (apk): https://github.com/immich-app/immich/releases