immich-app / immich

High performance self-hosted photo and video management solution.
https://immich.app
GNU Affero General Public License v3.0
51.31k stars 2.71k forks source link

Can't Login From Mobile #12098

Closed MoustafaAMahmoud closed 2 months ago

MoustafaAMahmoud commented 2 months ago

The bug

I installed Immich Chart version 0.7.1, which includes app version v1.106.1, in my K8S home lab. I set up the ingress, but I cannot access the application through the URL (e.g., immich.homelab.com) from within my home network.

Additionally, when I tried to install the mobile app (version v1.112.1), I was unable to log in. I attempted to enter the URL in various formats, such as immich.homelab.com and immich.homelab.com/api, but neither worked.

#0      UserPreferencesResponseDto.fromJson (package:openapi/model/user_preferences_response_dto.dart:78)
#1      ApiClient.fromJson (package:openapi/api_client.dart:579)
#2      ApiClient.deserialize (package:openapi/api_client.dart:158)
<asynchronous suspension>
#3      UsersApi.getMyPreferences (package:openapi/api/users_api.dart:177)
<asynchronous suspension>
#4      Future.wait.<anonymous closure> (dart:async/future.dart:524)
<asynchronous suspension>
#5      AuthenticationNotifier.setSuccessLoginInfo (package:immich_mobile/providers/authentication.provider.dart:172)
<asynchronous suspension>
#6      LoginForm.build.login (package:immich_mobile/widgets/forms/login/login_form.dart:188)
<asynchronous suspension>

photo_5942733153129055051_y photo_5942733153129055050_y photo_5942733153129055049_y

The OS that Immich Server is running on

Immich Chart 0.7.1

Version of Immich Server

v1.106.1

Version of Immich Mobile App

v1.112.1

Platform with the issue

Your docker-compose.yml content

ArgoCD APP

project: default
source:
  repoURL: 'https://immich-app.github.io/immich-charts'
  targetRevision: 0.7.1
  helm:
    parameters:
      - name: immich.metrics.enabled
        value: 'false'
      - name: immich.persistence.library.existingClaim
        value: photo-library-pvc
      - name: postgresql.enabled
        value: 'true'
      - name: redis.enabled
        value: 'true'
    values: |-
      server:
        ingress:
          main:
            enabled: true
            className: nginx  # Ensure this matches your Ingress controller            
            annotations:
              cert-manager.io/cluster-issuer: letsencrypt-production
              nginx.ingress.kubernetes.io/proxy-body-size: "0"
              nginx.ingress.kubernetes.io/proxy-connect-timeout: "3600"
              nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
              nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
            hosts:
              - host: <redacted-domain>  # Replace with your actual domain
                paths:
                  - path: "/"
                    pathType: ImplementationSpecific
            tls:
              - hosts:
                  - <redacted-domain>  # Match this with the domain in the hosts section
                secretName: letsencrypt-production 
  chart: immich
destination:
  server: 'https://kubernetes.default.svc'
  namespace: media
syncPolicy:
  syncOptions:
    - CreateNamespace=true

Your .env content

ArgoCD APP

project: default
source:
  repoURL: 'https://immich-app.github.io/immich-charts'
  targetRevision: 0.7.1
  helm:
    parameters:
      - name: immich.metrics.enabled
        value: 'false'
      - name: immich.persistence.library.existingClaim
        value: photo-library-pvc
      - name: postgresql.enabled
        value: 'true'
      - name: redis.enabled
        value: 'true'
    values: |-
      server:
        ingress:
          main:
            enabled: true
            className: nginx  # Ensure this matches your Ingress controller            
            annotations:
              cert-manager.io/cluster-issuer: letsencrypt-production
              nginx.ingress.kubernetes.io/proxy-body-size: "0"
              nginx.ingress.kubernetes.io/proxy-connect-timeout: "3600"
              nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
              nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
            hosts:
              - host: <redacted-domain>  # Replace with your actual domain
                paths:
                  - path: "/"
                    pathType: ImplementationSpecific
            tls:
              - hosts:
                  - <redacted-domain>  # Match this with the domain in the hosts section
                secretName: letsencrypt-production 
  chart: immich
destination:
  server: 'https://kubernetes.default.svc'
  namespace: media
syncPolicy:
  syncOptions:
    - CreateNamespace=true

Reproduction steps

  1. Open the app try to login will have the same issues with the provided versions

Relevant log output

#0      UserPreferencesResponseDto.fromJson (package:openapi/model/user_preferences_response_dto.dart:78)
#1      ApiClient.fromJson (package:openapi/api_client.dart:579)
#2      ApiClient.deserialize (package:openapi/api_client.dart:158)
<asynchronous suspension>
#3      UsersApi.getMyPreferences (package:openapi/api/users_api.dart:177)
<asynchronous suspension>
#4      Future.wait.<anonymous closure> (dart:async/future.dart:524)
<asynchronous suspension>
#5      AuthenticationNotifier.setSuccessLoginInfo (package:immich_mobile/providers/authentication.provider.dart:172)
<asynchronous suspension>
#6      LoginForm.build.login (package:immich_mobile/widgets/forms/login/login_form.dart:188)
<asynchronous suspension>

Additional information

No response

alextran1502 commented 2 months ago

@bo0tzz do we need to bump the chart somehow/

bo0tzz commented 2 months ago

Nope. See https://github.com/immich-app/immich-charts/issues/68: Users should set the tag they want to use in the values.

MoustafaAMahmoud commented 2 months ago

Thanks! this works