1
0
mirror of https://github.com/immich-app/immich.git synced 2024-12-24 10:37:28 +02:00
Self-hosted photo and video backup solution directly from your mobile phone.
Go to file
Jonathan Jogenfors 1b54c4f8e7
feat(server): Add support for client-side hashing (#2072)
* Modify controller DTOs

* Can check duplicates on server side

* Remove deviceassetid and deviceid

* Remove device ids from file uploader

* Add db migration for removed device ids

* Don't sanitize checksum

* Convert asset checksum to string

* Make checksum not optional for asset

* Use enums when rejecting duplicates

* Cleanup

* Return of the device id, but optional

* Don't use deviceId for upload folder

* Use checksum in thumb path

* Only use asset id in thumb path

* Openapi generation

* Put deviceAssetId back in asset response dto

* Add missing checksum in test fixture

* Add another missing checksum in test fixture

* Cleanup asset repository

* Add back previous /exists endpoint

* Require checksum to not be null

* Correctly set deviceId in db

* Remove index

* Fix compilation errors

* Make device id nullabel in asset response dto

* Reduce PR scope

* Revert asset service

* Reorder imports

* Reorder imports

* Reduce PR scope

* Reduce PR scope

* Reduce PR scope

* Reduce PR scope

* Reduce PR scope

* Update openapi

* Reduce PR scope

* refactor: asset bulk upload check

* chore: regenreate open-api

* chore: fix tests

* chore: tests

* update migrations and regenerate api

* Feat: use checksum in web file uploader

* Change to wasm-crypto

* Use crypto api for checksumming in web uploader

* Minor cleanup of file upload

* feat(web): pause and resume jobs

* Make device asset id not nullable again

* Cleanup

* Device id not nullable in response dto

* Update API specs

* Bump api specs

* Remove old TODO comment

* Remove NOT NULL constraint on checksum index

* Fix requested pubspec changes

* Remove unneeded import

* Update server/apps/immich/src/api-v1/asset/asset.service.ts

Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>

* Update server/apps/immich/src/api-v1/asset/asset-repository.ts

Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>

* Remove unneeded check

* Update server/apps/immich/src/api-v1/asset/asset-repository.ts

Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>

* Remove hashing in the web uploader

* Cleanup file uploader

* Remove varchar from asset entity fields

* Return 200 from bulk upload check

* Put device asset id back into asset repository

* Merge migrations

* Revert pubspec lock

* Update openapi specs

* Merge upstream changes

* Fix failing asset service tests

* Fix formatting issue

* Cleanup migrations

* Remove newline from pubspec

* Revert newline

* Checkout main version

* Revert again

* Only return AssetCheck

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
2023-05-24 16:08:21 -05:00
.github feat(mobile): lazy loading of assets (#2413) 2023-05-17 12:36:02 -05:00
.vscode chore: microservices debugger (#2345) 2023-04-28 13:21:01 -05:00
design chore: update screenshots for readme and docs (#2425) 2023-05-10 23:33:32 -05:00
docker docker: use default entrypoint and command where applicable (#2529) 2023-05-23 09:02:47 -05:00
docs docs: update contributing pages (#2503) 2023-05-20 20:46:09 -05:00
fastlane Added required setup for f-droid (#88) 2022-03-29 14:13:47 -05:00
machine-learning chore(ml): load models on start up (#2487) 2023-05-19 22:37:01 -05:00
misc/release build: improve pump script (#2351) 2023-04-28 21:10:32 -05:00
mobile feat(server): Add support for client-side hashing (#2072) 2023-05-24 16:08:21 -05:00
nginx fix(nginx): enable gzip and show error logs (#2504) 2023-05-21 08:23:46 -05:00
server feat(server): Add support for client-side hashing (#2072) 2023-05-24 16:08:21 -05:00
web feat(server): Add support for client-side hashing (#2072) 2023-05-24 16:08:21 -05:00
.editorconfig chore: editorconfig (#1505) 2023-02-01 14:38:47 -06:00
.gitattributes feat(server) Tagging system (#1046) 2022-12-05 11:56:44 -06:00
.gitignore fix(CI): fix mobile build artifact with proper signing (#1504) 2023-02-01 21:50:07 -06:00
.gitmodules fix(mobile): add isar source code as a git submodule for F-Droid build (#1985) 2023-03-12 22:50:55 -05:00
CODE_OF_CONDUCT.md Added Code of conduct 2022-08-21 12:43:56 -07:00
install.sh chore: Simplify install script (#2148) 2023-04-02 14:13:24 -05:00
LICENSE Update Readme 2022-02-11 22:35:14 -06:00
localizely.yml Update Norwegian locale to ICU standard (#2195) 2023-04-06 14:00:24 -05:00
Makefile chore(server): Remove dist directory in command script (#2518) 2023-05-22 10:27:08 -05:00
README_zh_CN.md chore(docs): refactor pages (#1144) 2022-12-21 15:01:50 -06:00
README.md docs: add new features (#2441) 2023-05-18 09:48:43 -05:00
SECURITY.md Create SECURITY.md (#712) 2022-09-17 13:07:12 -05:00


License: MIT

Immich - High performance self-hosted photo and video backup solution



中文

Disclaimer

  • ⚠️ The project is under very active development.
  • ⚠️ Expect bugs and breaking changes.
  • ⚠️ Do not use the app as the only way to store your photos and videos!

Content

Documentation

You can find the main documentation, including installation guides, at https://immich.app/.

Demo

You can access the web demo at https://demo.immich.app

For the mobile app, you can use https://demo.immich.app/api for the Server Endpoint URL

The credential
email: demo@immich.app
password: demo
Spec: Free-tier Oracle VM - Amsterdam - 2.4Ghz quad-core ARM64 CPU, 24GB RAM

Features

Features Mobile Web
Upload and view videos and photos Yes Yes
Auto backup when the app is opened Yes N/A
Selective album(s) for backup Yes N/A
Download photos and videos to local device Yes Yes
Multi-user support Yes Yes
Album and Shared albums Yes Yes
Scrubbable/draggable scrollbar Yes Yes
Support RAW (HEIC, HEIF, DNG, Apple ProRaw) Yes Yes
Metadata view (EXIF, map) Yes Yes
Search by metadata, objects, faces, and CLIP Yes Yes
Administrative functions (user management) No Yes
Background backup Yes N/A
Virtual scroll Yes Yes
OAuth support Yes Yes
API Keys N/A Yes
LivePhoto backup and playback iOS Yes
User-defined storage structure Yes Yes
Public Sharing No Yes
Archive and Favorites Yes Yes
Global Map No Yes
Partner Sharing No Yes
Facial recognition and clustering No Yes

Support the project

I've committed to this project, and I will not stop. I will keep updating the docs, adding new features, and fixing bugs. But I can't do it alone. So I need your help to give me additional motivation to keep going.

As our hosts in the selfhosted.show - In the episode 'The-organization-must-not-be-name is a Hostile Actor' said, this is a massive undertaking of what the team and I are doing. And I would love to someday be able to do this full-time, and I am asking for your help to make that happen.

If you feel like this is the right cause and the app is something you are seeing yourself using for a long time, please consider supporting the project with the option below.

Donation