1
0
Fork 0
mirror of https://github.com/immich-app/immich.git synced 2024-12-29 15:11:58 +00:00
High performance self-hosted photo and video management solution.
Find a file
Jonathan Jogenfors 068e703e88
feat(server): Automatic watching of library folders (#6192)
* feat: initial watch support

* allow offline files

* chore: ignore query errors when resetting e2e db

* revert db query

* add savepoint

* guard the user query

* chore: openapi and db migration

* wip

* support multiple libraries

* fix tests

* wip

* can now cleanup chokidar watchers

* fix unit tests

* add library watch queue

* add missing init from merge

* wip

* can now filter file extensions

* remove watch api from non job client

* Fix e2e test

* watch library with updated import path and exclusion pattern

* add library watch frontend ui

* case sensitive watching extensions

* can auto watch libraries

* move watcher e2e tests to separate file

* don't watch libraries from a queue

* use event emitters

* shorten e2e test timeout

* refactor chokidar code to filesystem provider

* expose chokidar parameters to config file

* fix storage mock

* set default config for library watching

* add fs provider mocks

* cleanup

* add more unit tests for watcher

* chore: fix format + sql

* add more tests

* move unwatch feature back to library service

* add file event unit tests

* chore: formatting

* add documentation

* fix e2e tests

* chore: fix e2e tests

* fix library updating

* test cleanup

* fix typo

* cleanup

* fixing as per pr comments

* reduce library watch config file

* update storage config and mocks

* move negative event tests to unit tests

* fix library watcher e2e

* make watch configuration global

* remove the feature flag

* refactor watcher teardown

* fix microservices init

* centralize asset scan job queue

* improve docs

* add more tests

* chore: open api

* initialize app service

* fix docs

* fix library watch feature flag

* Update docs/docs/features/libraries.md

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>

* fix: import right app service

* don't be truthy

* fix test speling

* stricter library update tests

* move fs watcher mock to external file

* subscribe to config changes

* docker does not need polling

* make library watch() private

* feat: add configuration ui

---------

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-01-31 08:15:54 +00:00
.github chore: migrate CLI to ESM and vitest (#6777) 2024-01-30 18:23:33 -05:00
.vscode chore: microservices debugger (#2345) 2023-04-28 13:21:01 -05:00
cli chore: migrate CLI to ESM and vitest (#6777) 2024-01-30 18:23:33 -05:00
design chore: update screenshots for readme and docs (#2425) 2023-05-10 23:33:32 -05:00
docker chore(deps): update redis:6.2-alpine docker digest to afb290a (#6708) 2024-01-30 07:57:47 -05:00
docs feat(server): Automatic watching of library folders (#6192) 2024-01-31 08:15:54 +00:00
fastlane Added required setup for f-droid (#88) 2022-03-29 14:13:47 -05:00
machine-learning fix(deps): update machine-learning (#6745) 2024-01-29 20:43:14 -05:00
misc/release fix: open api pump (#6502) 2024-01-19 11:09:18 -06:00
mobile feat(server): Automatic watching of library folders (#6192) 2024-01-31 08:15:54 +00:00
open-api feat(server): Automatic watching of library folders (#6192) 2024-01-31 08:15:54 +00:00
server feat(server): Automatic watching of library folders (#6192) 2024-01-31 08:15:54 +00:00
web feat(server): Automatic watching of library folders (#6192) 2024-01-31 08:15:54 +00:00
.dockerignore refactor: open api (#6334) 2024-01-12 07:36:27 -05:00
.editorconfig chore: editorconfig (#1505) 2023-02-01 14:38:47 -06:00
.gitattributes refactor: open api (#6334) 2024-01-12 07:36:27 -05:00
.gitignore chore: post release tasks 2024-01-18 21:15:58 -06:00
.gitmodules test(server): full backend end-to-end testing with microservices (#4225) 2023-10-06 23:32:28 +02:00
CODE_OF_CONDUCT.md Added Code of conduct 2022-08-21 12:43:56 -07:00
install.sh Fixed errors regarding the installation script (#6644) 2024-01-27 19:50:12 -05:00
LICENSE Update Readme 2022-02-11 22:35:14 -06:00
localizely.yml fix(mobile): Fix pt-PT locale. Add missing pt-PT localizely entry (#5892) 2023-12-20 09:46:20 -06:00
Makefile refactor(server): e2e (#6632) 2024-01-24 17:24:53 -05:00
README.md docs: use organization support link in README (#6722) 2024-01-29 09:10:33 -06:00
README_ca_ES.md docs: use organization support link in README (#6722) 2024-01-29 09:10:33 -06:00
README_de_DE.md docs(readme): correct wording and grammar in README_de_DE.md (#5447) 2023-12-02 13:44:28 +01:00
README_es_ES.md docs: use organization support link in README (#6722) 2024-01-29 09:10:33 -06:00
README_fr_FR.md docs: use organization support link in README (#6722) 2024-01-29 09:10:33 -06:00
README_it_IT.md docs: use organization support link in README (#6722) 2024-01-29 09:10:33 -06:00
README_ja_JP.md docs: use organization support link in README (#6722) 2024-01-29 09:10:33 -06:00
README_ko_KR.md docs: use organization support link in README (#6722) 2024-01-29 09:10:33 -06:00
README_nl_NL.md docs: use organization support link in README (#6722) 2024-01-29 09:10:33 -06:00
README_ru_RU.md docs: use organization support link in README (#6722) 2024-01-29 09:10:33 -06:00
README_tr_TR.md docs: use organization support link in README (#6722) 2024-01-29 09:10:33 -06:00
README_zh_CN.md docs: use organization support link in README (#6722) 2024-01-29 09:10:33 -06:00
renovate.json deps: update renovate groups and schedule (#6579) 2024-01-22 16:09:48 +00:00
SECURITY.md Create SECURITY.md (#712) 2022-09-17 13:07:12 -05:00


License: MIT Discord

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



Català Español Français Italiano 日本語 한국어 Deutsch Nederlands Türkçe 中文 Русский

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.
  • ⚠️ Always follow 3-2-1 backup plan for your precious 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
Prevent duplication of assets Yes Yes
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 formats 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/MotionPhoto backup and playback Yes Yes
Support 360 degree image display No Yes
User-defined storage structure Yes Yes
Public Sharing No Yes
Archive and Favorites Yes Yes
Global Map Yes Yes
Partner Sharing Yes Yes
Facial recognition and clustering Yes Yes
Memories (x years ago) Yes Yes
Offline support Yes No
Read-only gallery Yes Yes
Stacked Photos Yes 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

  • Monthly donation via GitHub Sponsors
  • One-time donation via GitHub Sponsors
  • Liberapay
  • buymeacoffee
  • Bitcoin: 1FvEp6P6NM8EZEkpGUFAN2LqJ1gxusNxZX
  • ZCash: u1smm4wvqegcp46zss2jf5xptchgeczp4rx7a0wu3mermf2wxahm26yyz5w9mw3f2p4emwlljxjumg774kgs8rntt9yags0whnzane4n67z4c7gppq4yyvcj404ne3r769prwzd9j8ntvqp44fa6d67sf7rmcfjmds3gmeceff4u8e92rh38nd30cr96xw6vfhk6scu4ws90ldzupr3sz

Contributors