[BUG] Android app will not connect to an Immich instance behind a reverse proxy with a self signed cert #407

Closed
opened 2026-02-04 20:19:18 +03:00 by OVERLORD · 3 comments
Owner

Originally created by @JaxTheWolf on GitHub (Nov 8, 2022).

Describe the bug
When logging in, the app refuses to connect to my instance which runs on my local network behind Caddy with a self signed cert.

Task List

Please complete the task list below. We need this information to help us reproduce the bug or point out problems in your setup. You are not providing enough info may delay our effort to help you.

  • [*] I have read thoroughly the README setup and installation instructions.
  • [*] I have included my docker-compose file.
  • [*] I have included my redacted .env file.
  • [*] I have included information on my machine, and environment.

To Reproduce
Steps to reproduce the behavior:

  1. Open the app
  2. Fill in your details
  3. Tap Login
  4. See error

Expected behavior
There should be an optional switch, letting the user pick whether verifying SSL certs should be enforced.

Screenshots
Screenshot_20221107-220159_Immich

Screenshot_20221107-220248_Firefox

System

  • Phone OS [iOS, Android]: Android 12.1
  • Server Version: 1.34.0
  • Mobile App Version: 1.34.0

Additional context
Add any other context about the problem here.

docker-compose.yml:

version: "3.8"

services:
  immich-server:
    image: altran1502/immich-server:release
    entrypoint: ["/bin/sh", "./start-server.sh"]
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
    env_file:
      - .env
    environment:
      - NODE_ENV=production
    depends_on:
      - redis
      - database
    restart: unless-stopped

  immich-microservices:
    image: altran1502/immich-server:release
    entrypoint: ["/bin/sh", "./start-microservices.sh"]
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
    env_file:
      - .env
    environment:
      - NODE_ENV=production
    depends_on:
      - redis
      - database
    restart: unless-stopped

  immich-machine-learning:
    image: altran1502/immich-machine-learning:release
    entrypoint: ["/bin/sh", "./entrypoint.sh"]
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
    env_file:
      - .env
    environment:
      - NODE_ENV=production
    depends_on:
      - database
    restart: unless-stopped

  immich-web:
    image: altran1502/immich-web:release
    entrypoint: ["/bin/sh", "./entrypoint.sh"]
    env_file:
      - .env
    expose:
      - 3000
    environment:
      - VITE_SERVER_ENDPOINT=${VITE_SERVER_ENDPOINT}
    restart: unless-stopped

  redis:
    container_name: immich_redis
    image: redis:6.2
    restart: unless-stopped

  database:
    container_name: immich_postgres
    image: postgres:14
    env_file:
      - .env
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      PG_DATA: /var/lib/postgresql/data
    volumes:
      - ./data/pgdata:/var/lib/postgresql/data
    restart: unless-stopped

#   immich-proxy:
#     container_name: immich_proxy
#     image: altran1502/immich-proxy:release
#     expose:
#       - 8080
#     logging:
#       driver: none
#     depends_on:
#       - immich-server
#     restart: always

networks:
  default:
    name: caddy

.env:

# Domain

VITE_SERVER_ENDPOINT=immich.<external domain>

###################################################################################
# Database
###################################################################################

DB_HOSTNAME=immich_postgres
DB_USERNAME=postgres
DB_PASSWORD=postgres
DB_DATABASE_NAME=immich

# Optional Database settings:
# DB_PORT=5432

###################################################################################
# Redis
###################################################################################

REDIS_HOSTNAME=immich_redis

# Optional Redis settings:
# REDIS_PORT=6379
# REDIS_DBINDEX=0
# REDIS_PASSWORD=
# REDIS_SOCKET=

###################################################################################
# Upload File Config
###################################################################################

UPLOAD_LOCATION=./data/backup
###################################################################################
# Log message level - [simple|verbose]
###################################################################################

LOG_LEVEL=simple

###################################################################################
# JWT SECRET
###################################################################################

# This JWT_SECRET is used to sign the authentication keys for user login
# You should set it to a long randomly generated value
# You can use this command to generate one: openssl rand -base64 128
JWT_SECRET=<secret>

###################################################################################
# Reverse Geocoding
####################################################################################

# DISABLE_REVERSE_GEOCODING=false

# Reverse geocoding is done locally which has a small impact on memory usage
# This memory usage can be altered by changing the REVERSE_GEOCODING_PRECISION variable
# This ranges from 0-3 with 3 being the most precise
# 3 - Cities > 500 population: ~200MB RAM
# 2 - Cities > 1000 population: ~150MB RAM
# 1 - Cities > 5000 population: ~80MB RAM
# 0 - Cities > 15000 population: ~40MB RAM

REVERSE_GEOCODING_PRECISION=3

####################################################################################
# WEB - Optional
####################################################################################

# Custom message on the login page, should be written in HTML form.
# For example PUBLIC_LOGIN_PAGE_MESSAGE="This is a demo instance of Immich.<br><br>Email: <i>demo@demo.de</i><br>Password: <i>demo</i>"

PUBLIC_LOGIN_PAGE_MESSAGE=```
Originally created by @JaxTheWolf on GitHub (Nov 8, 2022). <!-- Note: Please search to see if an issue already exists for the bug you encountered. --> **Describe the bug** When logging in, the app refuses to connect to my instance which runs on my local network behind Caddy with a self signed cert. **Task List** *Please complete the task list below. We need this information to help us reproduce the bug or point out problems in your setup. You are not providing enough info may delay our effort to help you.* - [*] I have read thoroughly the README setup and installation instructions. - [*] I have included my `docker-compose` file. - [*] I have included my redacted `.env` file. - [*] I have included information on my machine, and environment. **To Reproduce** Steps to reproduce the behavior: 1. Open the app 2. Fill in your details 3. Tap Login 4. See error **Expected behavior** There should be an optional switch, letting the user pick whether verifying SSL certs should be enforced. **Screenshots** ![Screenshot_20221107-220159_Immich](https://user-images.githubusercontent.com/29774488/200415277-a832d35d-c926-45e4-b724-e4218f71cf83.png) ![Screenshot_20221107-220248_Firefox](https://user-images.githubusercontent.com/29774488/200415308-ce776ee5-ebe8-44d5-b309-2598ffa476f7.png) **System** - Phone OS [iOS, Android]: `Android 12.1` - Server Version: `1.34.0` - Mobile App Version: `1.34.0` **Additional context** Add any other context about the problem here. docker-compose.yml: ```yml version: "3.8" services: immich-server: image: altran1502/immich-server:release entrypoint: ["/bin/sh", "./start-server.sh"] volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload env_file: - .env environment: - NODE_ENV=production depends_on: - redis - database restart: unless-stopped immich-microservices: image: altran1502/immich-server:release entrypoint: ["/bin/sh", "./start-microservices.sh"] volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload env_file: - .env environment: - NODE_ENV=production depends_on: - redis - database restart: unless-stopped immich-machine-learning: image: altran1502/immich-machine-learning:release entrypoint: ["/bin/sh", "./entrypoint.sh"] volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload env_file: - .env environment: - NODE_ENV=production depends_on: - database restart: unless-stopped immich-web: image: altran1502/immich-web:release entrypoint: ["/bin/sh", "./entrypoint.sh"] env_file: - .env expose: - 3000 environment: - VITE_SERVER_ENDPOINT=${VITE_SERVER_ENDPOINT} restart: unless-stopped redis: container_name: immich_redis image: redis:6.2 restart: unless-stopped database: container_name: immich_postgres image: postgres:14 env_file: - .env environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} PG_DATA: /var/lib/postgresql/data volumes: - ./data/pgdata:/var/lib/postgresql/data restart: unless-stopped # immich-proxy: # container_name: immich_proxy # image: altran1502/immich-proxy:release # expose: # - 8080 # logging: # driver: none # depends_on: # - immich-server # restart: always networks: default: name: caddy ``` .env: ```env # Domain VITE_SERVER_ENDPOINT=immich.<external domain> ################################################################################### # Database ################################################################################### DB_HOSTNAME=immich_postgres DB_USERNAME=postgres DB_PASSWORD=postgres DB_DATABASE_NAME=immich # Optional Database settings: # DB_PORT=5432 ################################################################################### # Redis ################################################################################### REDIS_HOSTNAME=immich_redis # Optional Redis settings: # REDIS_PORT=6379 # REDIS_DBINDEX=0 # REDIS_PASSWORD= # REDIS_SOCKET= ################################################################################### # Upload File Config ################################################################################### UPLOAD_LOCATION=./data/backup ################################################################################### # Log message level - [simple|verbose] ################################################################################### LOG_LEVEL=simple ################################################################################### # JWT SECRET ################################################################################### # This JWT_SECRET is used to sign the authentication keys for user login # You should set it to a long randomly generated value # You can use this command to generate one: openssl rand -base64 128 JWT_SECRET=<secret> ################################################################################### # Reverse Geocoding #################################################################################### # DISABLE_REVERSE_GEOCODING=false # Reverse geocoding is done locally which has a small impact on memory usage # This memory usage can be altered by changing the REVERSE_GEOCODING_PRECISION variable # This ranges from 0-3 with 3 being the most precise # 3 - Cities > 500 population: ~200MB RAM # 2 - Cities > 1000 population: ~150MB RAM # 1 - Cities > 5000 population: ~80MB RAM # 0 - Cities > 15000 population: ~40MB RAM REVERSE_GEOCODING_PRECISION=3 #################################################################################### # WEB - Optional #################################################################################### # Custom message on the login page, should be written in HTML form. # For example PUBLIC_LOGIN_PAGE_MESSAGE="This is a demo instance of Immich.<br><br>Email: <i>demo@demo.de</i><br>Password: <i>demo</i>" PUBLIC_LOGIN_PAGE_MESSAGE=```
Author
Owner

@alextran1502 commented on GitHub (Nov 8, 2022):

Hello we have a duplicated issue for this concern #765

@alextran1502 commented on GitHub (Nov 8, 2022): Hello we have a duplicated issue for this concern #765
Author
Owner

@JaxTheWolf commented on GitHub (Nov 8, 2022):

I have read that issue, but forgot about it; should I close this one and comment on there?

@JaxTheWolf commented on GitHub (Nov 8, 2022): I have read that issue, but forgot about it; should I close this one and comment on there?
Author
Owner

@alextran1502 commented on GitHub (Nov 8, 2022):

@JaxTheWolf Yes , I can close this one

@alextran1502 commented on GitHub (Nov 8, 2022): @JaxTheWolf Yes , I can close this one
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#407