Immich is a high performance self-hosted photo and video management
solution. It is designed as a privacy-friendly replacement for cloud
photo services and offers automatic mobile backup (iOS/Android apps),
a fast web interface, albums, sharing, timeline and map views,
duplicate detection, smart search and facial recognition.
This port contains the Immich server including the bundled web
frontend. It requires a PostgreSQL database with the pgvector and
vchord extensions and a Redis-compatible cache such as valkey.
Smart search, duplicate detection and facial recognition
additionally require the machine-learning service from
www/immich-ml.
www/immich: Stop logging to syslog
The lines already go to /var/log/immich, which newsyslog rotates, and
syslog repeated them under the tag "daemon". The process now carries
its own name in ps.
Differential Revision: https://reviews.freebsd.org/D60277
Sponsored by: Netzkommune GmbH
www/immich: Unbreak the build with BUILD_AS_NON_ROOT
npm then has no writable HOME and cannot create its cache.
PR: 299082
Reported by: bruno@ruomad.net
Sponsored by: Netzkommune GmbH
www/immich: Unbreak packaging with other build settings
Drop the node-gyp byte caches, named after the Python version, and
rename the plugin-sdk store directory, named after the build path.
PR: 298930
Reported by: jonc@chen.org.nz
Sponsored by: Netzkommune GmbH
www/immich: Unbreak packaging
The web build names its assets after a content hash, which differs per
build environment. Generate that part of the list at install time.
PR: 298930
Reported by: jonc@chen.org.nz
Sponsored by: Netzkommune GmbH
www/immich: Fix immich-admin for any login shell
su -m runs the command in the caller's login shell, so the wrapper
broke wherever root does not use a POSIX shell. chroot(8) drops the
privileges without a shell in between and passes the arguments to
execve(2) unchanged.
Reported by: mfechner
Sponsored by: Netzkommune GmbH
www/immich: Add a working immich-admin
Immich ships bin/immich-admin as a stub that calls start.sh from PATH
and needs bash, which only holds inside its container image. The new
wrapper reads immich.env and starts the admin entry point directly; the
stub forwards to it.
Reported by: mfechner
Sponsored by: Netzkommune GmbH
www/immich: Set the machine learning URL
Immich defaults to the Docker hostname immich-machine-learning, which
never resolves outside a container, so the service ran unnoticed while
the server reported it unhealthy. The rc script now sets
IMMICH_MACHINE_LEARNING_URL, adjustable with immich_server_ml_url.
Sponsored by: Netzkommune GmbH
www/immich: Switch to jellyfin-ffmpeg
Immich builds its HDR filter chain around tonemapx, which only the
Jellyfin patch set provides. The rc script points FFMPEG_PATH and
FFPROBE_PATH at it.
PR: 298378
Requested by: several people
Sponsored by: Netzkommune GmbH
www/immich: Disable HDR tone mapping by default
Immich builds its filter chain around tonemapx, which ffmpeg does not
have, so an HDR video got no thumbnail at all.
Sponsored by: Netzkommune GmbH
www/immich: Cleanup port
USE_GNOME needs gnome in USES to take effect, so glib20 was never declared.
Stop packaging source maps, type declarations, tests and coverage reports.
Sponsored by: Netzkommune GmbH
www/immich: Fix packaging and harden the service
The plist is now generated in full instead of relying on the temporary
one, which caught an undeclared link of sharp against glib and gettext.
Both are declared now.
The rc script gained an environment file, a child pid file so that stopping
the service leaves no orphans, a umask of 027 for the files it creates and
a configurable bind address. It also waits for postgresql and valkey.
pkg-message moved to files/pkg-message.in so that the paths it prints are
substituted, and the log files are rotated by newsyslog.
Sponsored by: Netzkommune GmbH
www/immich: Update to 3.2.0
Adds a new server search API that allows searching within albums and
combining filters with AND and OR, and gives the web search interface
a simpler layout.
Changes: https://github.com/immich-app/immich/releases/tag/v3.2.0
Security: fcc6baaa-adbc-11f1-a655-3497f65b111b
Sponsored by: Netzkommune GmbH
www/immich: Fix the built-in database backup
immich looks for pg_dump in a path that does not exist, and the port did not
depend on a PostgreSQL client at all. The nightly backup job therefore failed
with ENOENT on every installation while the web interface reported the feature
as enabled. The version range follows the check in the service itself,
PostgreSQL 14 to 18.
Sponsored by: Netzkommune GmbH
www/immich: Add New Port
High performance self-hosted photo and video management solution.
This port contains the Immich server including the bundled web
frontend, built natively with node22/pnpm against the system
libvips. Requires PostgreSQL with the pgvector and vchord
extensions and a Redis-compatible cache such as valkey. Smart
search, duplicate detection and facial recognition additionally
require the machine-learning service from www/immich-ml.
WWW: https://immich.app/
Sponsored by: Netzkommune GmbH