1
0
Fork 0
mirror of https://github.com/immich-app/immich.git synced 2025-04-22 07:48:33 +02:00
High performance self-hosted photo and video management solution.
Find a file
Alex Phillips e171fec5aa
feat(server): support for read-only assets and importing existing items in the filesystem ()
* Added read-only flag for assets, endpoint to trigger file import vs upload

* updated fixtures with new property

* if upload is 'read-only', ensure there is no existing asset at the designated originalPath

* added test for file import as well as detecting existing image at read-only destination location

* Added storage service test for a case where it should not move read-only assets

* upload doesn't need the read-only flag available, just importing

* default isReadOnly on import endpoint to true

* formatting fixes

* create-asset dto needs isReadOnly, so set it to false by default on create, updated api generation

* updated code to reflect changes in MR

* fixed read stream promise return type

* new index for originalPath, check for existing path on import, reglardless of user, to prevent duplicates

* refactor: import asset

* chore: open api

* chore: tests

* Added externalPath support for individual users, updated UI to allow this to be set by admin

* added missing var for externalPath in ui

* chore: open api

* fix: compilation issues

* fix: server test

* built api, fixed user-response dto to include externalPath

* reverted accidental commit

* bad commit of duplicate externalPath in user response  dto

* fixed tests to include externalPath on expected result

* fix: unit tests

* centralized supported filetypes, perform file type checking of asset and sidecar during file import process

* centralized supported filetype check method to keep regex DRY

* fixed typo

* combined migrations into one

* update api

* Removed externalPath from shared-link code, added column to admin user page whether external paths / import is enabled or not

* update mimetype

* Fixed detect correct mimetype

* revert asset-upload config

* reverted domain.constant

* refactor

* fix mime-type issue

* fix format

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-06-21 21:33:20 -05:00
.github chore(deps): bump docker/build-push-action from 4.1.0 to 4.1.1 () 2023-06-14 16:26:05 -05:00
.vscode chore: microservices debugger () 2023-04-28 13:21:01 -05:00
design chore: update screenshots for readme and docs () 2023-05-10 23:33:32 -05:00
docker Add dependency on immich-web to immich-proxy () 2023-06-20 08:46:48 -05:00
docs move public msg to general section () 2023-06-19 16:42:59 -05:00
fastlane Added required setup for f-droid () 2022-03-29 14:13:47 -05:00
machine-learning feat(ml) backend takes image over HTTP () 2023-06-17 22:49:19 -05:00
misc/release chore(ml): updated dockerfile, added typing, packaging () 2023-06-05 09:40:48 -05:00
mobile feat(server): support for read-only assets and importing existing items in the filesystem () 2023-06-21 21:33:20 -05:00
nginx pin image digests () 2023-06-16 10:28:41 -05:00
server feat(server): support for read-only assets and importing existing items in the filesystem () 2023-06-21 21:33:20 -05:00
web feat(server): support for read-only assets and importing existing items in the filesystem () 2023-06-21 21:33:20 -05:00
.editorconfig chore: editorconfig () 2023-02-01 14:38:47 -06:00
.gitattributes feat(server) Tagging system () 2022-12-05 11:56:44 -06:00
.gitignore fix(CI): fix mobile build artifact with proper signing () 2023-02-01 21:50:07 -06:00
.gitmodules fix(mobile): add isar source code as a git submodule for F-Droid build () 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 () 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 () 2023-04-06 14:00:24 -05:00
Makefile chore(server): Remove dist directory in command script () 2023-05-22 10:27:08 -05:00
README.md chore(readme): mention offline support feature () 2023-06-21 13:49:35 -05:00
README_zh_CN.md chore(docs): refactor pages () 2022-12-21 15:01:50 -06:00
renovate.json pause renovate 2023-06-16 13:52:29 -05:00
SECURITY.md Create SECURITY.md () 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 Yes Yes
Facial recognition and clustering No Yes
Offline support Yes No

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