Fresh Install - Password Authentication Failed for User "Postgres"

hi, i'm doing a fresh install on my raspberry pi 5 on the latest version - v1.142.1 i changed the postgres db password on the .env file (as recommended) before running docker compose up, and got this error:
immich_postgres | 2025-09-19 19:25:18.805 UTC [56] FATAL: password authentication failed for user "postgres"
immich_postgres | 2025-09-19 19:25:18.805 UTC [56] DETAIL: Connection matched pg_hba.conf line 100: "host all all all scram-sha-256"
immich_server | PostgresError: password authentication failed for user "postgres"
immich_server | at ErrorResponse (/usr/src/app/server/node_modules/.pnpm/postgres@3.4.7/node_modules/postgres/cjs/src/connection.js:794:26)
immich_postgres | 2025-09-19 19:25:18.805 UTC [56] FATAL: password authentication failed for user "postgres"
immich_postgres | 2025-09-19 19:25:18.805 UTC [56] DETAIL: Connection matched pg_hba.conf line 100: "host all all all scram-sha-256"
immich_server | PostgresError: password authentication failed for user "postgres"
immich_server | at ErrorResponse (/usr/src/app/server/node_modules/.pnpm/postgres@3.4.7/node_modules/postgres/cjs/src/connection.js:794:26)
5 Replies
Immich
Immich2w ago
:wave: Hey @his_eggcellency, Thanks for reaching out to us. Please carefully read this message and follow the recommended actions. This will help us be more effective in our support effort and leave more time for building Immich :immich:. References - Container Logs: docker compose logs docs - Container Status: docker ps -a docs - Reverse Proxy: https://immich.app/docs/administration/reverse-proxy - Code Formatting https://support.discord.com/hc/en-us/articles/210298617-Markdown-Text-101-Chat-Formatting-Bold-Italic-Underline#h_01GY0DAKGXDEHE263BCAYEGFJA Checklist I have... 1. :ballot_box_with_check: verified I'm on the latest release(note that mobile app releases may take some time). 2. :ballot_box_with_check: read applicable release notes. 3. :ballot_box_with_check: reviewed the FAQs for known issues. 4. :ballot_box_with_check: reviewed Github for known issues. 5. :blue_square: tried accessing Immich via local ip (without a custom reverse proxy). 6. :ballot_box_with_check: uploaded the relevant information (see below). 7. :blue_square: tried an incognito window, disabled extensions, cleared mobile app cache, logged out and back in, different browsers, etc. as applicable (an item can be marked as "complete" by reacting with the appropriate number) Information In order to be able to effectively help you, we need you to provide clear information to show what the problem is. The exact details needed vary per case, but here is a list of things to consider: - Your docker-compose.yml and .env files. - Logs from all the containers and their status (see above). - All the troubleshooting steps you've tried so far. - Any recent changes you've made to Immich or your system. - Details about your system (both software/OS and hardware). - Details about your storage (filesystems, type of disks, output of commands like fdisk -l and df -h). - The version of the Immich server, mobile app, and other relevant pieces. - Any other information that you think might be relevant. Please paste files and logs with proper code formatting, and especially avoid blurry screenshots. Without the right information we can't work out what the problem is. Help us help you ;) If this ticket can be closed you can use the /close command, and re-open it later if needed.
his_eggcellency
his_eggcellencyOP2w ago
docker compose file
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
# extends:
# file: hwaccel.transcoding.yml
# service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
networks:
- traefik-hub
volumes:
# Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
- ${IMMICH_UPLOAD_LOCATION}:/data
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
labels:
- traefik.enable=true
- "traefik.http.routers.immich.rule=Host(`example.tld`)"
depends_on:
- redis
- database
restart: unless-stopped
healthcheck:
disable: false

redis:
container_name: immich_redis
image: docker.io/valkey/valkey:8-bookworm@sha256:fea8b3e67b15729d4bb70589eb03367bab9ad1ee89c876f54327fc7c6e618571
networks:
- traefik-hub
healthcheck:
test: redis-cli ping || exit 1
restart: unless-stopped

database:
container_name: immich_postgres
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:8d292bdb796aa58bbbaa47fe971c8516f6f57d6a47e7172e62754feb6ed4e7b0
networks:
- traefik-hub
env_file:
- .env
environment:
POSTGRES_PASSWORD: ${IMMICH_DB_PASSWORD}
POSTGRES_USER: ${IMMICH_DB_USERNAME}
POSTGRES_DB: ${IMMICH_DB_DATABASE_NAME}
POSTGRES_INITDB_ARGS: '--data-checksums'
# Uncomment the DB_STORAGE_TYPE: 'HDD' var if your database isn't stored on SSDs
# DB_STORAGE_TYPE: 'HDD'
volumes:
# Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
- ${IMMICH_DB_DATA_LOCATION}:/var/lib/postgresql/data
shm_size: 128mb
restart: always
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
# extends:
# file: hwaccel.transcoding.yml
# service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
networks:
- traefik-hub
volumes:
# Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
- ${IMMICH_UPLOAD_LOCATION}:/data
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
labels:
- traefik.enable=true
- "traefik.http.routers.immich.rule=Host(`example.tld`)"
depends_on:
- redis
- database
restart: unless-stopped
healthcheck:
disable: false

redis:
container_name: immich_redis
image: docker.io/valkey/valkey:8-bookworm@sha256:fea8b3e67b15729d4bb70589eb03367bab9ad1ee89c876f54327fc7c6e618571
networks:
- traefik-hub
healthcheck:
test: redis-cli ping || exit 1
restart: unless-stopped

database:
container_name: immich_postgres
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:8d292bdb796aa58bbbaa47fe971c8516f6f57d6a47e7172e62754feb6ed4e7b0
networks:
- traefik-hub
env_file:
- .env
environment:
POSTGRES_PASSWORD: ${IMMICH_DB_PASSWORD}
POSTGRES_USER: ${IMMICH_DB_USERNAME}
POSTGRES_DB: ${IMMICH_DB_DATABASE_NAME}
POSTGRES_INITDB_ARGS: '--data-checksums'
# Uncomment the DB_STORAGE_TYPE: 'HDD' var if your database isn't stored on SSDs
# DB_STORAGE_TYPE: 'HDD'
volumes:
# Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
- ${IMMICH_DB_DATA_LOCATION}:/var/lib/postgresql/data
shm_size: 128mb
restart: always
env file
# The location where your uploaded files are stored
IMMICH_UPLOAD_LOCATION="${HOME}/docker/appdata/immich/library"

# The location where your database files are stored. Network shares are not supported for the database
IMMICH_DB_DATA_LOCATION="${HOME}/docker/appdata/immich/postgres"

# To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
# TZ=Etc/UTC

# The Immich version to use. You can pin this to a specific version like "v1.71.0"
IMMICH_VERSION="v1.142.1"

# Connection secret for postgres. You should change it to a random password
# Please use only the characters `A-Za-z0-9`, without special characters or spaces
IMMICH_DB_PASSWORD="jgH3m81D3kbs91"

# The values below this line do not need to be changed
###################################################################################
IMMICH_DB_USERNAME=postgres
IMMICH_DB_DATABASE_NAME=immich
# The location where your uploaded files are stored
IMMICH_UPLOAD_LOCATION="${HOME}/docker/appdata/immich/library"

# The location where your database files are stored. Network shares are not supported for the database
IMMICH_DB_DATA_LOCATION="${HOME}/docker/appdata/immich/postgres"

# To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
# TZ=Etc/UTC

# The Immich version to use. You can pin this to a specific version like "v1.71.0"
IMMICH_VERSION="v1.142.1"

# Connection secret for postgres. You should change it to a random password
# Please use only the characters `A-Za-z0-9`, without special characters or spaces
IMMICH_DB_PASSWORD="jgH3m81D3kbs91"

# The values below this line do not need to be changed
###################################################################################
IMMICH_DB_USERNAME=postgres
IMMICH_DB_DATABASE_NAME=immich
okay so i just did a fresh install all over again, and left the default postgres db password as is on the .env file running docker compose up with this default setup worked so now my question is, how do i change the default db password?
Zeus
Zeus2w ago
You change it within the env file before you startup Without renaming the env vars incorrectly as you did
his_eggcellency
his_eggcellencyOP2w ago
if it's an environment variable, all that matters is that the name matches both in the .env file and docker compose file, no? the actual name of the environment variable shouldn't matter i thought
Zeus
Zeus2w ago
No, the immich server container uses those variables

Did you find this page helpful?