diff --git a/docker/docker-compose.dev.yml b/docker/docker-compose.dev.yml index 2d44a1f070..ab1fa0c5d6 100644 --- a/docker/docker-compose.dev.yml +++ b/docker/docker-compose.dev.yml @@ -1,3 +1,7 @@ +# See: +# - https://immich.app/docs/developer/setup +# - https://immich.app/docs/developer/troubleshooting + version: "3.8" services: @@ -71,10 +75,6 @@ services: command: npm run dev --host env_file: - .env - environment: - # Rename these values for svelte public interface - - PUBLIC_IMMICH_SERVER_URL=${IMMICH_SERVER_URL} - - PUBLIC_IMMICH_API_URL_EXTERNAL=${IMMICH_API_URL_EXTERNAL} ports: - 3000:3000 - 24678:24678 diff --git a/docker/docker-compose.prod.yml b/docker/docker-compose.prod.yml index 0304299857..74e8b1f1e8 100644 --- a/docker/docker-compose.prod.yml +++ b/docker/docker-compose.prod.yml @@ -7,9 +7,9 @@ services: build: context: ../server dockerfile: Dockerfile - command: ["./start-server.sh"] + command: [ "./start-server.sh" ] volumes: - - ${UPLOAD_LOCATION}:/usr/src/app/upload + - ${UPLOAD_LOCATION}/photos:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro env_file: - .env @@ -18,19 +18,6 @@ services: - database - typesense - immich-machine-learning: - container_name: immich_machine_learning - image: immich-machine-learning:latest - build: - context: ../machine-learning - dockerfile: Dockerfile - volumes: - - ${UPLOAD_LOCATION}:/usr/src/app/upload - - model-cache:/cache - env_file: - - .env - restart: always - immich-microservices: container_name: immich_microservices image: immich-microservices:latest @@ -40,9 +27,9 @@ services: build: context: ../server dockerfile: Dockerfile - command: ["./start-microservices.sh"] + command: [ "./start-microservices.sh" ] volumes: - - ${UPLOAD_LOCATION}:/usr/src/app/upload + - ${UPLOAD_LOCATION}/photos:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro env_file: - .env @@ -64,6 +51,18 @@ services: depends_on: - immich-server + immich-machine-learning: + container_name: immich_machine_learning + image: immich-machine-learning:latest + build: + context: ../machine-learning + dockerfile: Dockerfile + volumes: + - model-cache:/cache + env_file: + - .env + restart: always + typesense: container_name: immich_typesense image: typesense/typesense:0.24.1@sha256:9bcff2b829f12074426ca044b56160ca9d777a0c488303469143dd9f8259d4dd @@ -73,7 +72,7 @@ services: # remove this to get debug messages - GLOG_minloglevel=1 volumes: - - tsdata:/data + - ${UPLOAD_LOCATION}/typesense:/data restart: always redis: @@ -91,7 +90,7 @@ services: POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} volumes: - - pgdata:/var/lib/postgresql/data + - ${UPLOAD_LOCATION}/postgres:/var/lib/postgresql/data restart: always immich-proxy: @@ -113,6 +112,4 @@ services: restart: always volumes: - pgdata: model-cache: - tsdata: diff --git a/docs/docs/developer/troubleshooting.md b/docs/docs/developer/troubleshooting.md new file mode 100644 index 0000000000..83e4f370df --- /dev/null +++ b/docs/docs/developer/troubleshooting.md @@ -0,0 +1,19 @@ +# Troubleshooting + +:::tip +A great option to get assistance with troubleshooting is to join our [Discord](https://discord.gg/D8JsnBEuKb) server, where we have a dedicated channel for `#contributing`. +::: + +## Known Issues + +### Running on Windows + +Running Immich on Windows can be frustrating and there are lots of ways it can go wrong. Where possible we recommend using Docker on Linux. However, several people have had success running Immich on Windows using Docker via WSL2. + +### NTFS Mounted Volumes + +The docker-compose.dev.yml and docker-compose.prod.yml use volume mounts for the postgres database. On start-up, postgres will try to `chown` the data directory, but fail. See [this post](https://forums.docker.com/t/data-directory-var-lib-postgresql-data-pgdata-has-wrong-ownership/17963/24) for more information about this issue and possible solutions. + +### `Cannot read properties of null (reading 'split')` + +This error occurs when trying to access the app via port `3000` instead of `2283`. During development `immich-proxy` runs on port 2283, while `immich-web` runs on `3000`.