030cd8c4c4
* chore(server): Prepare access interfaces for bulk permission checks This change adds the `AccessCore.getAllowedIds` method, to evaluate permissions in bulk, along with some other `getAllowedIds*` private methods. The added methods still calculate permissions by id, and are not optimized to reduce the amount of queries and execution time, which will be implemented in separate pull requests. Services that were evaluating permissions in a loop have been refactored to make use of the bulk approach. * chore(server): Apply review suggestions * chore(server): Make multiple-permission check more readable |
||
---|---|---|
.github | ||
.vscode | ||
cli | ||
design | ||
docker | ||
docs | ||
fastlane | ||
machine-learning | ||
misc/release | ||
mobile | ||
server | ||
web | ||
.dockerignore | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
CODE_OF_CONDUCT.md | ||
install.sh | ||
LICENSE | ||
localizely.yml | ||
Makefile | ||
package-lock.json | ||
README_ca_ES.md | ||
README_de_DE.md | ||
README_es_ES.md | ||
README_fr_FR.md | ||
README_it_IT.md | ||
README_ja_JP.md | ||
README_ko_KR.md | ||
README_nl_NL.md | ||
README_tr_TR.md | ||
README_zh_CN.md | ||
README.md | ||
renovate.json | ||
SECURITY.md |
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
- Official Documentation
- Roadmap
- Demo
- Features
- Introduction
- Installation
- Contribution Guidelines
- Support The Project
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 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 |
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
- Librepay
- buymeacoffee
- Bitcoin: 1FvEp6P6NM8EZEkpGUFAN2LqJ1gxusNxZX
- ZCash: u1smm4wvqegcp46zss2jf5xptchgeczp4rx7a0wu3mermf2wxahm26yyz5w9mw3f2p4emwlljxjumg774kgs8rntt9yags0whnzane4n67z4c7gppq4yyvcj404ne3r769prwzd9j8ntvqp44fa6d67sf7rmcfjmds3gmeceff4u8e92rh38nd30cr96xw6vfhk6scu4ws90ldzupr3sz