1
0
mirror of https://github.com/immich-app/immich.git synced 2024-12-25 10:43:13 +02:00
Self-hosted photo and video backup solution directly from your mobile phone.
Go to file
maxer137 6835d4519a
feat(server): add postgres major version check (#6213)
* feat(server): Throw error when PostgreSQL version is not within the supported versions
The pgvecto.rs extension, though not distributed, can be built for PostgreSQL 12 and 13.
An installation of PostgreSQL 12 with the pgvecto.rs extensions installed will not be caught by immich.
This causes immich to attempt to run the database migrations without having a proper environment.
With assertPostgresql the server will throw an error if the PostgreSQL version is not within the supported range.

* Replaced assertion with lesser than comparison
As requested by @zackpollard

* Changed the comparison to use the minPostgresVersion variable.
If we define one we might as well use it. makes changing the versioning later easier

* Added two new tests, modified two existing tests

`should return if minimum supported PostgreSQL and vectors version are installed`:
Check if init returns properly and that getPostgresVersion is called twice

`should thrown an error if PostgreSQL version is below minimum supported version`:
Checks if the init function correctly returns an error

`should suggest image with postgres ${major} if database is ${major}`:
Modified to set MockResolvedValue instead of MockResolvedValueOnce. With the new check we get the PostgreSQL version twice. So it needs to be set during the entire test.

`should not suggest image if postgres version is not in 14, 15 or 16`:
Modified the bounds to [14, 18]. Because values below 14 now will not get called.
Also Modified to call `getPostgresVersion.MockResolvedValueOnce` for twice, because it gets called twice.

* Fixed two mistakes in the jest functions from previous commit #2abcb60

`should thrown an error if PostgreSQL version is below minimum supported version`:
The regex function I wrote mistakingly used the negate function which check that the error *did not* contain the phrase "PostgreSQL". Which is the opposite

`should not suggest image if postgres version is not in 14, 15 or 16`:
confused bounds for a normal javascript array. Changed the test to only check for values above 16. As values below 14 will get thrown out by test `should return if minimum supported PostgreSQL and vectors version are installed`

I apologise for the mistakes in my previous commit.

* Format fix

---------

Co-authored-by: max <wak@vanling.net>
2024-01-06 19:24:09 -05:00
.github chore: group 'dependencies' (#6167) 2024-01-04 11:21:24 -05:00
.vscode chore: microservices debugger (#2345) 2023-04-28 13:21:01 -05:00
cli feat(web): onboarding (#6066) 2024-01-04 05:28:32 +00: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 c5a607f (#5979) 2024-01-01 13:18:38 -05:00
docs feat(docs): Template script for 3-2-1 backup of the assets and database (#6026) 2024-01-05 15:02:55 -06:00
fastlane Added required setup for f-droid (#88) 2022-03-29 14:13:47 -05:00
machine-learning fix(deps): update machine-learning (#5180) 2023-12-25 22:37:48 -05:00
misc/release chore: update release note notes 2023-06-29 21:48:57 -05:00
mobile fix(mobile): handle readonly and offline assets (#5565) 2024-01-05 21:02:16 -06:00
server feat(server): add postgres major version check (#6213) 2024-01-06 19:24:09 -05:00
web feat(web): auto switch theme (#6176) 2024-01-07 00:15:25 +00:00
.dockerignore test(cli): e2e testing (#5101) 2023-12-18 20:29:26 -06:00
.editorconfig chore: editorconfig (#1505) 2023-02-01 14:38:47 -06:00
.gitattributes chore: make running local dev instance on Windows work regardless of git config (#5419) 2023-12-01 20:30:34 +00:00
.gitignore fix(mobile): mobile album sort not persisting (#5584) 2023-12-09 20:31:23 -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 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 fix(mobile): Fix pt-PT locale. Add missing pt-PT localizely entry (#5892) 2023-12-20 09:46:20 -06:00
Makefile test(cli): e2e testing (#5101) 2023-12-18 20:29:26 -06:00
README_ca_ES.md Add German README (#5262) 2023-11-22 13:49:01 +01: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 Add German README (#5262) 2023-11-22 13:49:01 +01:00
README_fr_FR.md Add German README (#5262) 2023-11-22 13:49:01 +01:00
README_it_IT.md Update README_it_IT.md (#5541) 2023-12-07 22:20:41 +00:00
README_ja_JP.md docs: fix README_ja_JP.md (#5939) 2023-12-23 09:20:04 -06:00
README_ko_KR.md Add German README (#5262) 2023-11-22 13:49:01 +01:00
README_nl_NL.md Update README_nl_NL.md (#5840) 2023-12-19 10:02:25 -06:00
README_ru_RU.md docs: Russian readme (#6221) 2024-01-06 20:02:50 +00:00
README_tr_TR.md Add German README (#5262) 2023-11-22 13:49:01 +01:00
README_zh_CN.md Add German README (#5262) 2023-11-22 13:49:01 +01:00
README.md docs: Russian readme (#6221) 2024-01-06 20:02:50 +00:00
renovate.json chore: group 'dependencies' (#6167) 2024-01-04 11:21:24 -05: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
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
  • Liberapay
  • buymeacoffee
  • Bitcoin: 1FvEp6P6NM8EZEkpGUFAN2LqJ1gxusNxZX
  • ZCash: u1smm4wvqegcp46zss2jf5xptchgeczp4rx7a0wu3mermf2wxahm26yyz5w9mw3f2p4emwlljxjumg774kgs8rntt9yags0whnzane4n67z4c7gppq4yyvcj404ne3r769prwzd9j8ntvqp44fa6d67sf7rmcfjmds3gmeceff4u8e92rh38nd30cr96xw6vfhk6scu4ws90ldzupr3sz

Contributors