Package Details: immich-cli 1.103.1-1

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
Licenses: MIT
Submitter: wabi
Maintainer: wabi (pikl)
Last Packager: pikl
Votes: 7
Popularity: 0.95
First Submitted: 2022-12-30 11:41 (UTC)
Last Updated: 2024-04-29 21:14 (UTC)

Pinned Comments

pikl commented on 2024-04-28 09:46 (UTC) (edited on 2024-04-28 09:46 (UTC) by pikl)

Upgrade to python 3.12 breaks immich-machinelearning. v1.102.3-3 adds version dependency for either python 3.10 or python 3.11. Note that python 3.11 is available on the AUR and can be installed alongside the default 3.12 but build appears broken at the moment. See python311 for a workaround.

Latest Comments

« First ‹ Previous 1 2 3 4 5 6 7 Next › Last »

hrdl commented on 2023-08-25 11:37 (UTC)

@wabi: thanks for packaging immich. chown requires the user to exist, which in general doesn't happen until installation -- hence my suggestion to use tmpfiles.d. I use something like this:

# PKGBUILD
package() {
...
install -Dm644 "${srcdir}/immich.sysusers" "${pkgdir}/usr/lib/sysusers.d/immich.conf"
install -Dm644 "${srcdir}/immich.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.d/immich.conf"
...
install -d "${pkgdir}/var/lib/immich/upload" "${pkgdir}/var/lib/immich/app/server/.reverse-geocoding-dump"
}
# immich.tmpfiles
d /var/lib/immich 0700 immich immich -

wabi commented on 2023-08-25 08:19 (UTC)

@trainzkid: thanks for the suggestions. Incorporated some of them. The redis connection is configurable to either use sockets or a network connection in the immich.conf file. What I can't replicate is the use of poppler-glib. What tries to call these libraries on your system (they are not installed or used on mine).

hrdl commented on 2023-08-24 19:55 (UTC)

@trainzkid: nginx.immich.conf contains a configuration for nginx. For immich.tmpfiles I would use something like d /var/lib/immich 0700 immich immich -, possibly adjusting the mode bits to something less restrictive. I'd be happy to see a more elegant solution though.

trainzkid commented on 2023-08-24 19:37 (UTC) (edited on 2023-08-24 19:37 (UTC) by trainzkid)

@hrdl: is there documentation or a guide for either of those that I could reference? I've set up a reverse proxy before, but I'm not familiar with configuring it to strip a portion of the URL, and I've never explicitly configured tmpfiles.d.

I'm utilizing lighttpd as my web server if it helps!

I'm assuming tmpfiles.d allows a copy of a directory to be stored and accessed in /tmp/* with different permissions than the original.

hrdl commented on 2023-08-24 13:56 (UTC)

@trainzkid: immich is intended to be run behind a reverse proxy that strips the api/ component from the URL. The ownership for /var/lib/immich and its subdirectories can be fixed via tmpfiles.d.

trainzkid commented on 2023-07-25 06:08 (UTC) (edited on 2023-07-25 06:10 (UTC) by trainzkid)

Here's a collection of errors I came across while trying to set immich up, as well as the ways I resolved them. Some of these should probably be added/updated in this aur PKGBUILD. Some of these are just dumb mistakes on my part, but may help others running into them.

 node:fs:1396
   handleErrorFromBinding(ctx);
   ^
 Error: EACCES: permission denied, mkdir 'upload/library'
     at mkdirSync (node:fs:1396:3)
     at FilesystemProvider.mkdirSync (/var/lib/immich/app/server/dist/infra/repositories/filesystem.provider.js:72:32)
     at StorageService.init (/var/lib/immich/app/server/dist/domain/storage/storage.service.js:28:32)
     at AppService.init (/var/lib/immich/app/server/dist/immich/app.service.js:28:29)
     at bootstrap (/var/lib/immich/app/server/dist/immich/main.js:31:45)
     at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
   errno: -13,
   syscall: 'mkdir',
   code: 'EACCES',
   path: 'upload/library'
 }

/var/lib/immich/* needs proper permissions if services are ran as user immich; chmod --recursive immich:immich /var/lib/immich/ to fix.

/var/lib/immich/app/server/node_modules/@nestjs/config/dist/config.module.js:75
                 throw new Error(`Config validation error: ${error.message}`);
                 ^
 Error: Config validation error: "TYPESENSE_API_KEY" is not allowed to be empty
     at ConfigModule.forRoot (/var/lib/immich/app/server/node_modules/@nestjs/config/dist/config.module.js:75:23)
     at Object.<anonymous> (/var/lib/immich/app/server/dist/infra/infra.module.js:49:35)
     at Module._compile (node:internal/modules/cjs/loader:1254:14)
     at Module._extensions..js (node:internal/modules/cjs/loader:1308:10)
     at Module.load (node:internal/modules/cjs/loader:1117:32)
     at Module._load (node:internal/modules/cjs/loader:958:12)
     at Module.require (node:internal/modules/cjs/loader:1141:19)
     at require (node:internal/modules/cjs/helpers:110:18)
     at Object.<anonymous> (/var/lib/immich/app/server/dist/infra/index.js:19:14)
     at Module._compile (node:internal/modules/cjs/loader:1254:14)

Fix by commenting out TYPESENSE_API_KEY= in /etc/immich.conf.

unable to load "/usr/lib/vips-modules-8.14/vips-openslide.so" -- libopenslide.so.0: cannot open shared object file: No such file or directory
unable to load "/usr/lib/vips-modules-8.14/vips-poppler.so" -- libpoppler-glib.so.8: cannot open shared object file: No such file or directory

Fix by installing extra/poppler-glib.

 Error: connect ENOENT /run/redis/redis.sock
     at PipeConnectWrap.afterConnect [as oncomplete] (node:net:1494:16) {
   errno: -2,
   code: 'ENOENT',
   syscall: 'connect',
   address: '/run/redis/redis.sock'
 }

Make sure to configure redis to provide a unix socket

Error: connect EACCES /run/redis/redis.sock
    at PipeConnectWrap.afterConnect [as oncomplete] (node:net:1494:16) {
  errno: -13,
  code: 'EACCES',
  syscall: 'connect',
  address: '/run/redis/redis.sock'
}

Again, make sure to follow the redis guide on the arch wiki about providing a unix socket, specifically the socket's permissions; the immich user also needs to be added to the redis group

immich-microservices.service: Failed to set up mount namespacing: /run/systemd/unit-root/var/lib/immich/app/server/.reverse-geocoding-dump: No such file or directory
immich-microservices.service: Failed at step NAMESPACE spawning node: No such file or directory
immich-microservices.service: Main process exited, code=exited, status=226/NAMESPACE

mkdir /var/lib/immich/app/server/.reverse-geocoding-dump to fix.

I also noticed /var/lib/immich/app/server/upload/ is a symbolic link to /var/lib/immich/upload, which doesn't exist after install, so I mkdir'd it and chown'd it to immich:immich.

After fixing all these and starting all 3 services (immich-{server,web,microservices}), they run without errors and I get a first time login page at port 3000, but filling out all the fields and pressing 'sign up' does nothing. By using the browser's debugging, it looks like pressing 'sign up' sends a post req to port 3001, which is returning a 404 not found. Accessing immich-server and immich-microservices located on ports 3001 and 3002 respectively show json returning a 404 for 'Cannot GET /'. As of right now, this is as far as I've gotten. Any advice or feedback is welcomed! Let me know if these were obvious, or if there's some documentation I might have missed.

dp20eic commented on 2023-07-11 17:18 (UTC)

@wabi: thanks for the hint, I read it, but as I see it right now, I over read it :( I will do the next try, after it is not too hot, I also wait for my new hardware :(

Thanks Bernd

wabi commented on 2023-07-08 09:01 (UTC)

@dp20eic: did you add the immich domain names to the /etc/hosts file as localhosts? They are hard coded in immich thus they are required. See https://github.com/immich-app/immich/discussions/1657

wabi commented on 2023-06-21 19:12 (UTC)

this package no longer contains the service immich-machine-learning, due to growing difficulties with the arch python packages. Luckily immich-machine-learning can be now (as of immich 1.62) accessed via network, allowing it (and typesense) to be installed via docker and utilized via network.

dp20eic commented on 2023-06-07 18:26 (UTC) (edited on 2023-06-08 11:29 (UTC) by dp20eic)

Hi, I tried to get immich running in an LXC container under Proxmox, the installation with all dependencies was no problem so far, on the one hand two directories were missing, which I created later, but the services still don't start.

This is what I see at journal

Jun 07 18:32:45 arch-immich systemd[1]: Started immich server.
Jun 07 18:32:45 arch-immich (node)[115275]: immich-server.service: Failed to set up mount namespacing: /run/systemd/unit-root/var/lib/immich/upload: No such file or directory
Jun 07 18:32:45 arch-immich (node)[115275]: immich-server.service: Failed at step NAMESPACE spawning node: No such file or directory
Jun 07 18:32:45 arch-immich systemd[1]: immich-server.service: Main process exited, code=exited, status=226/NAMESPACE
Jun 07 18:32:45 arch-immich systemd[1]: immich-server.service: Failed with result 'exit-code'.
Jun 07 18:32:45 arch-immich systemd[1]: immich-server.service: Scheduled restart job, restart counter is at 1.
Jun 07 18:32:45 arch-immich systemd[1]: Stopped immich server.

After create missing Directory

Jun 07 18:33:43 arch-immich systemd[1]: immich-server.service: Main process exited, code=killed, status=4/ILL
Jun 07 18:33:43 arch-immich systemd[1]: immich-server.service: Failed with result 'signal'.
Jun 07 18:33:43 arch-immich systemd[1]: immich-server.service: Scheduled restart job, restart counter is at 1.
Jun 07 18:33:43 arch-immich systemd[1]: Stopped immich server.
Jun 07 18:33:43 arch-immich systemd[1]: Started immich server.
Jun 07 18:33:45 arch-immich sudo[115407]:  dp20eic : TTY=pts/1 ; PWD=/home/dp20eic ; USER=root ; COMMAND=/usr/bin/systemctl status immich-server.service
Jun 07 18:33:45 arch-immich systemd[1]: immich-server.service: Main process exited, code=killed, status=4/ILL
Jun 07 18:33:45 arch-immich systemd[1]: immich-server.service: Failed with result 'signal'.
Jun 07 18:33:46 arch-immich systemd[1]: immich-server.service: Scheduled restart job, restart counter is at 2.
Jun 07 18:33:46 arch-immich systemd[1]: Stopped immich server.
Jun 07 18:33:46 arch-immich systemd[1]: Started immich server.
Jun 07 18:33:47 arch-immich sudo[115433]:  dp20eic : TTY=pts/1 ; PWD=/home/dp20eic ; USER=root ; COMMAND=/usr/bin/systemctl status immich-server.service
Jun 07 18:33:48 arch-immich systemd[1]: immich-server.service: Main process exited, code=killed, status=4/ILL
Jun 07 18:33:48 arch-immich systemd[1]: immich-server.service: Failed with result 'signal'

Same with immich-microservice.service

Jun 07 18:37:07 arch-immich (node)[116212]: immich-microservices.service: Failed to set up mount namespacing: /run/systemd/unit-root/var/lib/immich/app/server/.reverse-geocoding-dump: No such file or directory
Jun 07 18:37:07 arch-immich (node)[116212]: immich-microservices.service: Failed at step NAMESPACE spawning node: No such file or directory
Jun 07 18:37:07 arch-immich systemd[1]: immich-microservices.service: Main process exited, code=exited, status=226/NAMESPACE
Jun 07 18:37:07 arch-immich systemd[1]: immich-microservices.service: Failed with result 'exit-code'.
Jun 07 18:37:07 arch-immich systemd[1]: immich-microservices.service: Scheduled restart job, restart counter is at 5.

After create directory

Jun 07 18:38:18 arch-immich systemd[1]: Started immich microservices.
Jun 07 18:38:20 arch-immich systemd[1]: immich-microservices.service: Main process exited, code=killed, status=4/ILL
Jun 07 18:38:20 arch-immich systemd[1]: immich-microservices.service: Failed with result 'signal'.
Jun 07 18:38:21 arch-immich systemd[1]: immich-microservices.service: Scheduled restart job, restart counter is at 1.
Jun 07 18:38:21 arch-immich systemd[1]: Stopped immich microservices.
Jun 07 18:38:21 arch-immich systemd[1]: Started immich microservices.
Jun 07 18:38:23 arch-immich systemd[1]: immich-microservices.service: Main process exited, code=killed, status=4/ILL
Jun 07 18:38:23 arch-immich systemd[1]: immich-microservices.service: Failed with result 'signal'.
Jun 07 18:38:23 arch-immich systemd[1]: immich-microservices.service: Scheduled restart job, restart counter is at 2.
Jun 07 18:38:23 arch-immich systemd[1]: Stopped immich microservices.
Jun 07 18:38:23 arch-immich systemd[1]: Started immich microservices.
Jun 07 18:38:26 arch-immich systemd[1]: immich-microservices.service: Main process exited, code=killed, status=4/ILL
Jun 07 18:38:26 arch-immich systemd[1]: immich-microservices.service: Failed with result 'signal'.
Jun 07 18:38:26 arch-immich systemd[1]: immich-microservices.service: Scheduled restart job, restart counter is at 3.
Jun 07 18:38:26 arch-immich systemd[1]: Stopped immich microservices.

Redis and postgresql are up and running, immich-web.service started but without running server :(

What is the meaning of status=4/ILL?

With kind regards Bernd

P.S.: the same with immich V1.60.0