* Add scrollbar to people sidebar section
* CR feedback
* Use grid layout to lay 3 images per row
* Center face image over face details text
* Remove margin: auto from circleimagewrapper and align everything with a flexbox on each list element
* Flip menu start of every new row
* Bump PostgreSQL image to version 17; add the auto-migrate preparation service
* Address bot's comments
* Fix many warnings in the Readme; added better explanations
* Address bot's comments
* And a few more comments addressed
* 1 more small wording fix
* Better clarify the HW acceleration options
* add link to the pgsql upgrade guide
---------
Co-authored-by: Konstantin Koval
Fix#1273.
- Cleanup `libatlas-base-dev`
`ATLAS` is an optimized BLAS implementation. Today, the project looks dead. The last stable release (3.10.3)
happened in 2016. The last development release (3.11.41, not packaged) was in 2018. The git repository has seen no commit since 2019. Debian decided to [remove all `libatlas` packages](https://lists.debian.org/debian-science/2023/07/msg00010.html), including `libatlas-base-dev` from `trixie`.
`libatlas-base-dev` provides a unique `cblas` package with `pkg-config`. Debian provides [`blas`](https://lists.debian.org/debian-science/2023/07/msg00012.html) to cover all the feature in `cblas`. `go-face` already depends on [`blas`](0c14797b4d/face.go (L4)), and it's safe to remove `cblas`.
Maybe we should fork `go-face` and put those changes in the foked repo.
- Renaming `exiftool`
In `trixie`, `exiftool` package is renamed as `libimage-exiftool-perl`.
* Migrate GolangCI config to the latest version; fix nll-pointer exception in the external EXIF parser and order of GPS coords in the internal one; updated links in Readme and added missing LibHeif exports
* Improve GPS error handling
---------
Co-authored-by: Konstantin Koval
* Bump golang from 1.24-bookworm to 1.25-bookworm
Bumps golang from 1.24-bookworm to 1.25-bookworm.
---
updated-dependencies:
- dependency-name: golang
dependency-version: 1.25-bookworm
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the GO version in the go.mod
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Konstantin Koval <kkb@ukr.net>
* Small Dockerfile improvements + a cleaner image rotation condition
* quoting
* Revert the change in the `magickwand.go`
---------
Co-authored-by: Konstantin Koval
* Auto-orient image during processing
* Detect if thumb was rotated 90 degrees and switch dimentions
* Consistently auto-rotate images
* fix incorrect path for the original photo dimensions reading
* Swap the dimensions if needed and call the `wand.ThumbnailImage()` unconditionally
* revert unnecessary line split
---------
Co-authored-by: Konstantin Koval
* Fix GitHub commit passing, UI build and cache for different purposes
* a logging for transparency and easy debug
* Fix var expanding with quotes and add intermediate verification commands
* split verification commands
* fix joining commands
* Ecplicitly pull latest deps image
* properly set arg default values and try to fix preparation step
* another try to build the image with the correct deps tag
* Revert the dynamic deps tag discovery, as it doesn't work and the actual `latest` image is pulled implicitly anyway
* Final optimizations
* "NoCommit" placeholder, indent fix, var rename
---------
Co-authored-by: Konstantin Koval
* Fix the local build of the dependencies image, including the debug image instructions
* Make the deps image easily runnable
* improve readme
* Better caching strategy
* make dependency from IM to libs build stages
* fix missing folder error
* Hopefully, final solution
---------
Co-authored-by: Konstantin Koval
* Initial implementation
* Multiple fixes and improvemens
* Better `curl` retries timing
* Remove unused `TARGETOS` and `TARGETVARIANT` vars; add the version fetch fallback code to the build scripts
* Move the fallback code before the var usage
* Use double braces to make the code compatible with the `set -u`
---------
Co-authored-by: Konstantin Koval
* Refactored code; temp disable workflows on push
* remove printf leftovers
* A better sanitizing code
* extend auth routes tests
* more tests, fix 2 bugs in token processing
* more refactoring and fixes
* optimize video mediaURLs DB query and make testCachePath in utils thread-safe
* fix always passing test
* and more refactoring; 1 more test, but cleanup still has to be fixed
* more debug code in the test
* fix the test
* Final commit
* Adding a defer function just in case of panic
* Address some of review comments
* Protect the shared var by mutex; implement correct context-aware scanning
* Better error; better initial func wrap/capture; better log messages in `photos.go`;
* Addressing a few more review comments
* Order the query results; a better error type catch; setting the MP4 content type header explicitly
* try to fix the cancelation detection condition
* Extract a function and call it by name
---------
Co-authored-by: Konstantin Koval
* Initial fix of a race condition
* better logging
* some refactoring and graceful shutdown
* fix more potential race condition places; a better app shutdown
* add test and fix some issues
* some housekeeping
* more descriptive asserts
* Address review suggestions
* Better server shutdown logic + better message about the .env file not found
* Create context inside the shutdown goroutine; removed unnecessary shutdown from the main function
* Move HTTP server to the main process and remove unnecessary code
* log shutdown error if any
* Get back to the local `scanner` variable
* Protecting scanner with mutex
* Adding the mutex to the shutdown function
* Addressing the race condition at the init stage
---------
Co-authored-by: Konstantin Koval
* Add MagickWand perf test.
* Use MagickWand.
* Calculate the right thumbnail dimension.
* Remove magick bin file.
* Add building dependencies.
* Build images.
* Add --no-install-recommends
* Remove unused field.
* Fix typo
* Use uint in the worker.
* Add guard
* Always update apt.
* Fix EncodeJpeg() with the quality
* Rename the local error with a better name.
* Add worker.Terminate()
* Fix typo
* Rebase with master and rollback the build workflow.
#1211
* Add benchmark magickwand.
* Enable shared magick.
* Remove MagickWand test because it can't be compiled with current dependency image.
* Enable formats explicitly.