• 36.6K star!Immich - 一款开源高性能的自托管照片和视频备份方案


    大家好,今天给大家分享的是一个高性能的自托管照片和视频备份方案。

    图片

    Immich 是一个图片管理和分享平台,它允许用户高效地组织、存储和访问他们的照片和视频集合。这个项目特别设计来优化个人和家庭的多媒体内容管理体验,提供了诸如自动备份、智能分类、高级搜索和安全分享等功能。

    项目介绍

    面向个人用户、摄影爱好者以及需要有效管理大量媒体文件的家庭,Immich 提供了一个集中的平台,使得珍贵的记忆得以妥善保存和欣赏。

    功能特性
    功能特性移动端网页端
    上传并查看照片和视频
    软件运行时自动备份N/A
    忽略重复的项目
    选择需要备份的相册N/A
    下载照片和视频到本地
    多用户支持
    相册与共享相册
    可拖动的快速滚动条
    支持RAW格式
    元数据视图(EXIF、地图)
    通过元数据、对象、人脸和标签进行搜索
    管理功能(用户管理)
    后台备份N/A
    虚拟滚动
    OAuth 支持
    API KeysN/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://:2283,移动应用程序的服务器 URL 地址http://:2283/api

    安装后续步骤,请参阅安装后步骤[2]

    移动应用

    您可从以下地点下载移动应用程序:

    •Google Play 商店[3]

    •苹果应用商店[4]

    •F-Droid[5]

    •GitHub 发布 (apk)[6]

    使用服务器端点 URL 登录移动应用程序http://: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

  • 相关阅读:
    接口测试常用技能:Jmeter操作数据库
    关于#后端#的问题,请各位专家解答!
    开发语言漫谈-erlang
    SAP UI5 ManagedObject 的 Event 讲解
    龙讯旷腾:如何建立基于第一性原理的正向研发模式,原子级计算伴随的时间和空间尺度增长将带来的变革
    ts学习02-数据类型
    一、C#委托、事件、Action、Func
    找不到d3dx9_37.dll,无法继续执行代码
    Android Kotlin(五)数据流StateFlow和LiveData
    CSDN竞赛11期题解
  • 原文地址:https://blog.csdn.net/my565548320/article/details/139827343