Immich PostgreSQL
| Description / name | Input element |
|---|---|
| Container Registry | |
| Container Configuration Root Path | |
| Immich PostgreSQL Host Port | |
| Immich PostgreSQL /var/lib/postgresql/data Path |
PostgreSQL with pgvector and vectorchord extensions required by Immich for vector similarity search. Defaults to PostgreSQL 14 (:latest), PostgreSQL 18 available as :18.
Requires ocijail with annotation support (≥ 0.6.0)
This image needs the jail permission allow.sysvipc, applied via OCI annotations. FreeBSD quarterly ships ocijail 0.4.0, which has no annotation support — the container starts but the permission is silently dropped, so the app can crash or misbehave. Point your pkg repos at the latest branch (ocijail ≥ 0.6.0) and run with the annotation flag shown below. See the ocijail guide.
| Port | 5432 |
| Registry | ghcr.io/daemonless/immich-postgres |
| Daemonless | daemonless/immich-postgres |
| Source | immich-app/immich |
| Website | immich.app |
Version Tags
| Tag | Description | Best For |
|---|---|---|
14 / 14-pkg / latest |
Upstream Binary. Built from official release. | Most users. Matches Linux Docker behavior. |
18 / 18-pkg |
Upstream Binary. Built from official release. | Alternative build. |
Root Privileges Required
Podman on FreeBSD currently requires root. All commands must be run as root (or via doas/sudo).
Before deploying, ensure your host environment is ready. See the Quick Start Guide for host setup instructions.
Deployment
Interactive Configuration
Parameters
Environment Variables
| Variable | Default | Description |
|---|---|---|
POSTGRES_USER |
postgres |
Database superuser (default: postgres) |
POSTGRES_PASSWORD |
postgres |
Database password (default: postgres) |
POSTGRES_DB |
immich |
Database name (default: immich) |
POSTGRES_INITDB_ARGS |
`` | Additional initdb arguments |
Volumes
| Path | Description |
|---|---|
/var/lib/postgresql/data |
Database data directory |
Ports
| Port | Protocol | Description |
|---|---|---|
5432 |
TCP | PostgreSQL Port |
This image is part of the Immich Stack.
PostgreSQL version: :latest and :14 use PostgreSQL 14. :18 uses PostgreSQL 18.
New installations should consider :18. If you are migrating an existing Immich instance,
stay on :14 — PostgreSQL major version upgrades require a full pg_dumpall and restore.
The default :latest tag will follow whatever version Immich recommends upstream.
PostgreSQL requires allow.sysvipc for shared memory. Create immich-postgres.conf alongside appjail-director.yml:
Implementation Details
- Architectures: amd64
- User:
postgres(UID/GID set via PUID/PGID). Defaults to1000:1000. - Base: Built on
ghcr.io/daemonless/base(FreeBSD 15.1). - sysvipc: Requires
--annotation 'org.freebsd.jail.allow.sysvipc=true'(ocijail 0.5.0+)
Need help? Join our Discord community.