-
The bugI tried joining the Discord but they insisted I provide a phone number and I don't want to share my phone number with Discord. This is my first foray with anything related to "Docker" so please keep that in mind when offering any guidance, your patience is appreciated. Thank you in advance for your attention. I followed the recommended "Docker Compose" installation in the documentation and everything seemed to be ok on the surface, but when I attempted to browse http://my.pc.ip:2283/, the connection timed out / reset. Here are the steps I performed:
I noticed eb0c714ca78e-infra was Created but not started:
So I started it with
This is where I observed "immich_redis" and "immich_postgres" remain "Starting" and it appears as though "immich_server" keeps restarting as the uptime is never more than 2-3 seconds. I found this in postgres/log/postgresql-2024-06-27_212859.log:
And that's been my experience with Docker and Immich thus far. I'm not sure where else to look log wise. Is there a way to run Immich without using Docker? This has been quite the headache trying to figure all this out - as an old gray beard I don't particularly see the advantage of "containerizing" everything. Specifically, I don't understand why it's necessary to have 2 instances of postgres running, one outside and one inside a "container" - it seems superfluous. Pardon my ignorance or if I'm misunderstanding how all this works. In my old brain putting the files in /var/www/immich, editing nginx.conf and setting up the postgres connection details in a conf file just seems like it'd be easier. The OS that Immich Server is running onGentoo Linux 2.15 Kernel 6.6.30-gentoo-x86_64 Version of Immich ServerI Don't Know, The Latest Stable? Version of Immich Mobile Appn/a Platform with the issue
Your docker-compose.yml content#
# WARNING: Make sure to use the docker-compose.yml of the current release:
#
# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
#
# The compose file on main may not be compatible with the latest release.
#
name: immich
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
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
ports:
- 2283:3001
depends_on:
- redis
- database
restart: always
immich-machine-learning:
container_name: immich_machine_learning
# For hardware acceleration, add one of -[armnn, cuda, openvino] to the image tag.
# Example tag: ${IMMICH_VERSION:-release}-cuda
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
# extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration
# file: hwaccel.ml.yml
# service: cpu # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable
volumes:
- model-cache:/cache
env_file:
- .env
restart: always
redis:
container_name: immich_redis
image: docker.io/redis:6.2-alpine@sha256:d6c2911ac51b289db208767581a5d154544f2b2fe4914ea5056443f62dc6e900
healthcheck:
test: redis-cli ping || exit 1
restart: always
database:
container_name: immich_postgres
image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
POSTGRES_INITDB_ARGS: '--data-checksums'
volumes:
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
healthcheck:
test: pg_isready --dbname='${DB_DATABASE_NAME}' || exit 1; Chksum="$$(psql --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1
interval: 5m
start_interval: 30s
start_period: 5m
command: ["postgres", "-c" ,"shared_preload_libraries=vectors.so", "-c", 'search_path="$$user", public, vectors', "-c", "logging_collector=on", "-c", "max_wal_size=2GB", "-c", "shared_buffers=512MB", "-c", "wal_compression=on"]
restart: always
volumes:
model-cache: Your .env content# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables
# The location where your uploaded files are stored
UPLOAD_LOCATION=/mnt/zpool/images/immich
# The location where your database files are stored
DB_DATA_LOCATION=./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
TZ=America/New_York
# The Immich version to use. You can pin this to a specific version like "v1.71.0"
IMMICH_VERSION=release
# Connection secret for postgres. You should change it to a random password
DB_PASSWORD=postgres
# The values below this line do not need to be changed
###################################################################################
DB_USERNAME=postgres
DB_DATABASE_NAME=immich Reproduction steps1. docker compose up -d
2. try to access my.pc.ip:2283 on my PC
3. connection failed Relevant log outputNo response Additional informationNo response |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 10 replies
-
You don’t need to install Postgres outside Docker. Did you do that yourself? Can you run the command |
Beta Was this translation helpful? Give feedback.
-
You don't need to use the builtin postgres - you can use the one you already have. It requires more work but you seem comfortable with that. https://immich.app/docs/administration/postgres-standalone/ The error Podman might work? There are various guides floating around but it might work drop in: https://github.com/tbelway/immich-podman-quadlets/blob/main/docs/install/podman-quadlet.md |
Beta Was this translation helpful? Give feedback.
-
As to why we can't just drop it into /var/www, such installers do exist, they tend to be finnicky because Immich depends on a lot of large image processing and ML libraries. It's possible but usually results in more work. More details, start here #1657 |
Beta Was this translation helpful? Give feedback.
-
I am having the same issue, but my output is log output is different:
I used to have immich working well in my home server. Now, I cannot access it. I reinstalled but get this. Any help is appreciated. |
Beta Was this translation helpful? Give feedback.
You don't need to use the builtin postgres - you can use the one you already have. It requires more work but you seem comfortable with that. https://immich.app/docs/administration/postgres-standalone/
The error
permission denied, mkdir 'upload/library
is pretty clear - the permissions on /mnt/zpool/images/immich are not allowing Immich to create a folder. Try setting 777 perms to start and see if that works. If not, you might need to explicitly grant mkdir permissions through Podman - Docker allows this by default, I thought Podman does as well but not 100% surePodman might work? There are various guides floating around but it might work drop in: https://github.com/tbelway/immich-podman-…