Because the official Dockerfile does that; don't ask me why.
I don't see why that'd cause the issue, though. --force means dependencies are always reinstalled no matter what.
Git Clone URL: | https://aur.archlinux.org/immich.git (read-only, click to copy) |
---|---|
Package Base: | immich |
Description: | Self-hosted photos and videos backup tool |
Upstream URL: | https://github.com/immich-app/immich |
Keywords: | backup photos |
Licenses: | AGPL-3.0-only |
Submitter: | wabi |
Maintainer: | aliu |
Last Packager: | aliu |
Votes: | 19 |
Popularity: | 2.03 |
First Submitted: | 2022-12-30 11:41 (UTC) |
Last Updated: | 2025-09-22 23:03 (UTC) |
Because the official Dockerfile does that; don't ask me why.
I don't see why that'd cause the issue, though. --force means dependencies are always reinstalled no matter what.
Why is this using --force
on pnpm install
?
I think this was papering over an issue on my build system which OOM'd during vite build, causing JS files to be cut short in arbitrary places. This would've been easier to track down had the build just failed.
@aliu I don't think it's a big deal to build the whole thing. It doesn't take long anyway.
I know. That can only split the package function and the build steps must be shared; just installing the ML package will require building the server as well, which I don't think is very ideal.
Note that this would be a separate pkgbase since you cannot split the build function.
I meant this:
pkgbase=immich
pkgname=('immich-server' 'immich-machine-learning' 'immich-cli')
Sounds promising (assuming you meant moving the dependencies to machine learning)! I'll look into it. Note that this would be a separate pkgbase since you cannot split the build function.
What do you think about a separate package function for immich-machine-learning
and moving most of the dependencies to immich-server
? This is useful for remote machine learning where you just want the ML service to use the GPU and talk HTTP, without any postgres, redis etc. running locally.
@aliu my guess is that the path used in the docker image is correct for the corresponding postgre image, so I'm patching the code in here before compiling. Here's the content of the patch file, backup.service.ts.patch
:
--- a/server/src/services/backup.service.ts
+++ b/server/src/services/backup.service.ts
@@ -113,7 +113,7 @@
try {
await new Promise<void>((resolve, reject) => {
const pgdump = this.processRepository.spawn(
- `/usr/lib/postgresql/${databaseMajorVersion}/bin/pg_dumpall`,
+ `/usr/bin/pg_dumpall`,
databaseParams,
{
env: {
The changes on the PKGBUILD
are just to include and apply the patch on prepare()
:
source=("${pkgbase}-${pkgver}.tar.gz::https://github.com/immich-app/immich/archive/refs/tags/v${pkgver}.tar.gz"
"nest-cli.json.patch"
"backup.service.ts.patch"
[...]
sha256sums=('689cab83e0b24b01f620f6316ec5c65c566d95357285203319bc881ad2745a59'
'39f874f7a53755a9a2302b70113c517066ded40952d1783df3623722f8721c44'
'00ae69ddab320aaf4e426f8372f22415c6486968f006fd12b9bd8cdeca8a8664'
'SKIP'
[...]
prepare() {
cd "${srcdir}/${pkgbase}-${pkgver}"
patch -p1 -i ../../backup.service.ts.patch
imgdate=$(grep ^'FROM ghcr.io/immich-app/base-server-prod' server/Dockerfile | cut -d: -f2 | cut -d@ -f1)
cd "${srcdir}/base-images"
git checkout "$imgdate"
}
Cheers.
Ah, I thought you were making an upstream MR lol.
Let me see what the patch looks like and I'll add you!
Ok @aliu, I just checked for more references to hardcoded paths on backup.service.ts and couldn't find any, just one in a spec.ts test file which seems to be a test file, so it works just fine without changing it.
I've got my changes ready on a local branch of the aur repository, just tell me if you prefer to add me as a collaborator so I can push them, or send you the patch file.
Cheers.
Pinned Comments
aliu commented on 2025-09-05 21:16 (UTC) (edited on 2025-09-05 21:20 (UTC) by aliu)
@caoticofanegas Thanks!
Re: failing to start because redis.service isn't found, this is a common question now lol. Valkey is supposed to provide the redis.service alias, and after a patch I made to the Arch package it should be provided in the next Valkey release.
aliu commented on 2025-08-21 15:21 (UTC)
immich-web (localhost/immich-server:2283) used to be broken for some users of this package.
As @yparitcher also noticed, this was most likely caused by the following additions to .gitignore from f4e0aad2c495, which have since be reverted:
The reason—for both this change sometimes and unpredictably breaking the build, and builds under a clean chroot still working—is unknown. I meant to investigate this on 2025-08-19 while updating the package but called it a day due to the unpredictability and long time of building. Help with figuring out why this happened would be greatly appreciated.
aliu commented on 2025-06-30 02:49 (UTC) (edited on 2025-07-01 16:35 (UTC) by aliu)
You may notice pacman refuse to upgrade this package, saying warning: cannot resolve "vectorchord", a dependency of "immich-server".
This is due to required manual intervention within the immich server database.
Newer versions of immich server have deprecated pgvecto.rs in favor of vectorchord.
Before updating from
1.133.1
or older, please follow steps 1 and 2 of the manual migration steps (should be the second dropdown) at https://immich.app/docs/administration/postgres-standalone/#migrating-to-vectorchord and uninstall pgvecto.rs.Remember to remove references to "vectors.so" (which is shipped by pgvecto.rs) in shared_preload_libraries before pgvecto.rs in uninstalled. (For vectorchord to work, you'll need to add "vchord.so" to shared_preload_libraries after the upgrade as well.)
After that, you may upgrade this package. Please remember to follow steps 4 and 5 of the manual migration steps after the upgrade is finished to prevent data loss.