Immich - High performance self-hosted photo and video backup solution

Overview

License: MIT Star on Github Android Build iOS Build Build Status



Immich

High performance self-hosted photo and video backup solution.

Loading ~4000 images/videos

Screenshots

Mobile

Web

Note

!! NOT READY FOR PRODUCTION! DO NOT USE TO STORE YOUR ASSETS !!

This project is under heavy development, there will be continuous functions, features and api changes.

Features

Mobile Web
Upload and view videos and photos Yes Yes
Auto backup when the app is opened Yes N/A
Selective album(s) for backup Yes N/A
Download photos and videos to local device Yes Yes
Multi-user support Yes Yes
Album Yes Yes
Shared Albums Yes Yes
Quick navigation with draggable scrollbar Yes Yes
Support RAW (HEIC, HEIF, DNG, Apple ProRaw) Yes Yes
Metadata view (EXIF, map) Yes Yes
Search by metadata, objects and image tags Yes No
Administrative functions (user management) N/A Yes

System Requirement

OS: Preferred unix-based operating system (Ubuntu, Debian, MacOS...etc).

RAM: At least 2GB, preferred 4GB.

Core: At least 2 cores, preferred 4 cores.

Technology Stack

There are several services that compose Immich:

  1. NestJs - Backend of the application
  2. SvelteKit - Web frontend of the application
  3. PostgreSQL - Main database of the application
  4. Redis - For sharing websocket instance between docker instances and background tasks message queue.
  5. Nginx - Load balancing and optimized file uploading.
  6. TensorFlow - Object Detection (COCO SSD) and Image Classification (ImageNet).

Installing

One-step installation - for evaluating only

Applicable system: Ubuntu, Debian, MacOS

This installation method is for evaluating Immich before futher customization to meet the users' needs.

In the shell, from the directory of your choice, run the following command:

curl -o- https://raw.githubusercontent.com/immich-app/immich/main/install.sh | bash

This script will download the docker-compose.yml file and the .env file, then populate the necessary information, and finally run the docker-compose up or docker compose up (based on your docker's version) command.

The web application will be available at http://:2283, and the server URL for the mobile app will be http://:2283/api.

The directory which is used to store the backup file is ./immich-app/immich-data.

Customize installation - for production usage

Step 1 - Download necessary files

Create a directory called immich-app and cd into it. Then

Get docker-compose.yml

wget https://raw.githubusercontent.com/immich-app/immich/main/docker/docker-compose.yml

Get .env

wget -O .env https://raw.githubusercontent.com/immich-app/immich/main/docker/.env.example

Step 2 - Populate .env file with customed information

  • Populate customised database information if necessary.
  • Populate UPLOAD_LOCATION as prefered location for storing backup assets.
  • Populate a secret value for JWT_SECRET
  • [Optional] Populate Mapbox value.

Example

###################################################################################
# Database
###################################################################################
DB_USERNAME=postgres
DB_PASSWORD=postgres
DB_DATABASE_NAME=immich

###################################################################################
# Upload File Config
###################################################################################
UPLOAD_LOCATION=<put-the-path-of-the-upload-folder-here>

###################################################################################
# JWT SECRET
###################################################################################
JWT_SECRET=randomstringthatissolongandpowerfulthatnoonecanguess

###################################################################################
# MAPBOX
####################################################################################
# ENABLE_MAPBOX is either true of false -> if true, you have to provide MAPBOX_KEY
ENABLE_MAPBOX=false
MAPBOX_KEY=

Step 3 - Start the containers

Run docker-compose up or docker compose up (based on your docker's version)

Step 4 - Register admin user

Navigate to the web at http://:2283 and follow the prompts to register admin user.

Additional accounts on the server can be created by the admin account.

Step 5 - Access the mobile app

Login the mobile app with the server endpoint URL at http://:2283/api

Mobile app

F-Droid

You can get the app on F-droid by clicking the image below.

Get it on F-Droid

Android

Get the app on Google Play Store here

The App version might be lagging behind the latest release due to the review process.

iOS

Get the app on Apple AppStore here:

The App version might be lagging behind the latest release due to the review process.

Development

The development environment can be started from the root of the project after populating the .env file with the command:

make dev # required Makefile installed on the system.

All servers and web container are hot reload for quick feedback loop.

Note for developers

1 - OpenAPI

OpenAPI is used to generate the client (Typescript, Dart) SDK. openapi-generator-cli can be installed here. When you add a new or modify an existing endpoint, you must run the generate command below to update the client SDK.

npm run api:generate # Run from server directory

You can find the generated client SDK in the web/src/api for Typescript SDK and mobile/openapi for Dart SDK.

Support

If you like the app, find it helpful, and want to support me to offset the cost of publishing to AppStores, you can sponsor the project with one time or monthly donation from Github Sponsor

You can also donate using crypto currency with the following addresses:

1FvEp6P6NM8EZEkpGUFAN2LqJ1gxusNxZX

addr1qyy567vqhqrr3p7vpszr5p264gw89sqcwts2z8wqy4yek87cdmy79zazyjp7tmwhkluhk3krvslkzfvg0h43tytp3f5q49nycc

This is also a meaningful way to give me motivation and encouragement to continue working on the app.

Cheers! 🎉

Known Issue

TensorFlow Build Issue

This is a known issue for incorrect Promox setup

TensorFlow doesn't run with older CPU architecture, it requires a CPU with AVX and AVX2 instruction set. If you encounter the error illegal instruction core dump when running the docker-compose command above, check for your CPU flags with the command and make sure you see AVX and AVX2:

more /proc/cpuinfo | grep flags

If you are running virtualization in Promox, the VM doesn't have the flag enabled.

You need to change the CPU type from kvm64 to host under VMs hardware tab.

Hardware > Processors > Edit > Advanced > Type (dropdown menu) > host

Comments
  • 500 Unexpected token < in JSON at position 0 SyntaxError: Unexpected token < in JSON at position 0

    500 Unexpected token < in JSON at position 0 SyntaxError: Unexpected token < in JSON at position 0

    Running the docker compose thru Portainer, everyting starts up, I can see that ngnix is running at http://xxxx.xxx.xx.xx:2283/

    But get the following issue when trying to access : http://xxxx.xxx.xx.xx:2285/

    500 Unexpected token < in JSON at position 0 SyntaxError: Unexpected token < in JSON at position 0

    in the logs from the web container

    SyntaxError: Unexpected token < in JSON at position 0 at JSON.parse () at Proxy. (file:///usr/src/app/build/server/index.js:1586:29) at processTicksAndRejections (node:internal/process/task_queues:96:5) at async load (file:///usr/src/app/build/server/entries/pages/index.svelte.js:6:25) at async load_node (file:///usr/src/app/build/server/index.js:1605:14) at async respond$1 (file:///usr/src/app/build/server/index.js:1844:20) at async resolve (file:///usr/src/app/build/server/index.js:2182:105) at async Object.handle (file:///usr/src/app/build/server/chunks/hooks-35f923f5.js:7:12) at async respond (file:///usr/src/app/build/server/index.js:2139:22) at async Array.ssr (file:///usr/src/app/build/handler-edaaddc2.js:841:3)

    Additional context

    Is it me that are doing something wrong here or is it broken?

    bug 
    opened by wavesswe 81
  • OAuth2.0/OIDC implementation

    OAuth2.0/OIDC implementation

    Hi all! I was interested in implementing OAuth2.0/OIDC login in Immich as discussed in #33. I gave it a try and after all I adapted the backend to use OAuth2 in combination with the local authentication that was already implemented; here are the details for now.

    Instructions removed, please take a look at this message for updated instructions


    I've marked this as a draft pull request because I need to work on the mobile app and on the web interface before it's fully working. Before working on that tho, I wanted to discuss with you some topics.

    First of all is the expected behaviour when migrating an already existing instance of Immich to use OAuth2. I was thinking that when an user first access to Immich with a valid OAuth2 access token, his local account would be disabled and he has to continue using the OAuth from that point on. What do you think about that?

    Second is if we should keep the possibility of having both local and OAuth authentication working together at all. I kept them as most separate as possible to be fully flexible, but being very easy to fix I dismissed the problem for later.

    Last one is about the admin account. For what I've seen from latest commits an admin account has been created in order to create new users and while using OAuth2 this function is not needed. Is it planned to have more admin functions so that it does make sense to implement a way of distinguishing admin accounts with OAuth (through scopes for example)?

    Let me know what you think about this 😄

    opened by EnricoBilla 50
  • 500 : Converting circular structure to JSON

    500 : Converting circular structure to JSON

    I am trying to run Immich on my Unraid server using the official Portainer-CE app. Once it's set up, I navigate to http://:2283, I see the favicon load and the body of the page shows the following error:

    500
    Converting circular structure to JSON
        --> starting at object with constructor 'Socket'
        |     property '_httpMessage' -> object with constructor 'ClientRequest'
        --- property 'socket' closes the circle
    TypeError: Converting circular structure to JSON
        --> starting at object with constructor 'Socket'
        |     property '_httpMessage' -> object with constructor 'ClientRequest'
        --- property 'socket' closes the circle
    

    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: always
    
      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: always
    
      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: always
    
      immich-web:
        image: altran1502/immich-web:release
        entrypoint: ["/bin/sh", "./entrypoint.sh"]
        env_file:
          - .env
        restart: always
    
      redis:
        container_name: immich_redis
        image: redis:6.2
        restart: always
    
      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:
          - pgdata:/var/lib/postgresql/data
        restart: always
    
      immich-proxy:
        container_name: immich_proxy
        image: altran1502/immich-proxy:release
        ports:
          - 2283:80
        logging:
          driver: none
        depends_on:
          - immich-server
        restart: always
    
    volumes:
      pgdata:
    

    .env

    DB_USERNAME=postgres
    DB_PASSWORD=REDACTED
    DB_DATABASE_NAME=immich
    UPLOAD_LOCATION=/mnt/user/cloud-storage/app-configs/immich
    JWT_SECRET=REDACTED
    ENABLE_MAPBOX=false
    VITE_SERVER_ENDPOINT=http://<my-ip>:2283/api
    

    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.

    • [x] I have read thoroughly the README setup and installation instructions.
    • [x] I have included my docker-compose file.
    • [x] I have included my redacted .env file.
    • [x] I have included information on my machine, and environment.
    bug 
    opened by n8jadams 31
  • [BUG] iPhone Backup don't show images

    [BUG] iPhone Backup don't show images

    Describe the bug I installed immich on my wife's iPhone 13 Pro Max. When I started it I gave it "access to all photos" and logged into the server. Now when I click on backup and want to select the folder, I see a loading animation. This animation is still visible even after 2 hours. My wife has over 25000 photos on her phone.

    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.

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

    To Reproduce Steps to reproduce the behavior:

    1. Start the app
    2. Click on cloud right top corner
    3. Click on Select
    4. See error

    Expected behavior Show all albums to select which should be backup

    System

    • Phone OS [iOS]: 15.6.0
    • Server Version: v1.19.0
    • Mobile App Version: 1.19.0
    bug 
    opened by MalteKiefer 29
  • [BUG] Issue Building container docker-compose

    [BUG] Issue Building container docker-compose

    Describe the bug Issue with compose running on 3.8 under docker-composer.yml but in the file if I change it the docker-compose progresses further but still fails (see the 2nd screenshot)

    Task List

    • [x] I have read thoroughly the README setup and installation instructions.

    To Reproduce Steps to reproduce the behavior:

    1. Copy the contents of docker-compose.yml file from immich (code) and paste into a docker-compose.yml file under /var/lib/docker/
    2. Run the line docker-compose -f /var/lib/docker/docker-compose.yml up

    Expected behavior Expecting it to run the build in the container

    Screenshots 2022-06-25 00_05_08-Window 2022-06-25 00_08_27-Window

    Desktop (please complete the following information):

    • OS: Ubuntu 20.04 LTS

    Additional context Add any other context about the problem here.

    bug 
    opened by athornfam2 27
  • Build does not work

    Build does not work

    .env file:

    # STAGE
    NODE_ENV=development
    
    # Database
    DB_USERNAME=postgres
    DB_PASSWORD=postgres
    DB_DATABASE_NAME=immich
    
    # Upload File Config
    UPLOAD_LOCATION=/mnt/data/Immich
    
    # JWT SECRET
    JWT_SECRET=mNQXf1R6S1m7jwvwW82e
    
    # MAPBOX
    ## ENABLE_MAPBOX is either true of false -> if true, you have to provide MAPBOX_KEY
    ENABLE_MAPBOX=false
    MAPBOX_KEY=
    

    UPLOAD_LOCATION exists:

    root@docker:~/immich/immich-1.4.0-dev# ls -l /mnt/data/Immich/
    total 0
    
    root@docker:~/immich/immich-1.4.0-dev# docker-compose -f ./docker/docker-compose.yml up --build -V
    WARNING: The UPLOAD_LOCATION variable is not set. Defaulting to a blank string.
    WARNING: The DB_PASSWORD variable is not set. Defaulting to a blank string.
    WARNING: The DB_USERNAME variable is not set. Defaulting to a blank string.
    WARNING: The DB_DATABASE_NAME variable is not set. Defaulting to a blank string.
    Building immich_microservices
    ERROR: forbidden path outside the build context: ../microservices/Dockerfile ()
    

    I dont know why the warnings appear, altough a .env file exists and the variables are filled:

    root@docker:~/immich/immich-1.4.0-dev# ls -la docker/.env
    -rw-rw-r-- 1 root root 327 Mar 29 23:44 docker/.env
    
    opened by comfreak89 26
  • Request failed with status code 502

    Request failed with status code 502

    I upgraded to the latest version v1.27.0_37-dev from v1.26.0_36-dev and I received this error when accessing the GUI.

    Any potential troubleshooting steps that I can follow?

    Error code 500
    Request failed with status code 502
    Verbose
    
    Request failed with status code 502,AxiosError,ERR_BAD_RESPONSE,[object Object],[object XMLHttpRequest],[object Object]
    
    bug need triage 
    opened by ajoshuasmith 25
  • [BUG] Can't connect to immich

    [BUG] Can't connect to immich

    Bug Report

    http://ip:2283/api returns error 404

    statusCode: 404
    message "Cannot GET /api"
    error: "Not Found"
    

    http://ip:2283 returns error 500 with the NEW VERSION AVAILABLE screen. further information on the site:

    Local Version empty
    Remote Version v1.19.0_29-dev
    

    and

    500
    
    Converting circular structure to JSON
        --> starting at object with constructor 'ClientRequest'
        |     property 'socket' -> object with constructor 'Socket'
        --- property '_httpMessage' closes the circle
    
    TypeError: Converting circular structure to JSON
        --> starting at object with constructor 'ClientRequest'
        |     property 'socket' -> object with constructor 'Socket'
        --- property '_httpMessage' closes the circle
    
    

    http://ip:2283/api/user/count returns userCount: 0

    http://ip:2283/api/server-info/ping returns res: "pong"

    Related issues

    • #327
      • tag is set to 'release` in my docker-compose file
      • neither adding/removing /api at the end of the url does work
      • port is set to 2283
    • #251 I set the right ip
    • #186 I don't have an /immich/settings folder. Old version?

    Task List

    • [x] I have read thoroughly the README setup and installation instructions.
    • [x] I have included my docker-compose file. (default, currently on github)
    • [x] I have included my redacted .env file. (default, only changed the ip address and folder)
    • [x] I have included information on my machine, and environment.

    To Reproduce ~~Steps to reproduce the behavior:~~ Not sure if it is reproducible. Instead I write down my workflow

    1. navigate into folder
    2. git clone https://github.com/immich-app/immich immich
    3. cd immich
    4. mkdir docker/test
    5. cp docker/.env.example docker/.env
    6. nano docker/.env replace folder path (home/immich/docker/test) and ip address
    7. docker-compose -f ./docker/docker-compose.yml up
    8. open firefox and type in http://ip:2283/api (and others specified above)
    9. open immich on android 12 but it opens directly the login screen but I do not yet have an (admin) account.

    Additional context

    • default docker-compose file
    • default .env file with updated folder path and ip address:
    ##################################################################################
    # 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=/home/immich/docker/test
    
    
    
    
    ###################################################################################
    # JWT SECRET
    ###################################################################################
    
    JWT_SECRET=randomstringthatissolongandpowerfulthatnoonecanguess
    
    
    
    ###################################################################################
    # MAPBOX
    ####################################################################################
    
    # ENABLE_MAPBOX is either true of false -> if true, you have to provide MAPBOX_KEY
    ENABLE_MAPBOX=false
    MAPBOX_KEY=
    
    
    
    
    ###################################################################################
    # WEB - Required
    ###################################################################################
    
    # This is the URL of your vm/server where you host Immich, so that the web frontend
    # know where can it make the request to.
    # For example: If your server IP address is 10.1.11.50, the environment variable will
    # be VITE_SERVER_ENDPOINT=http://10.1.11.50:2283/api
    # !CAUTION! THERE IS NO FORWARD SLASH AT THE END
    
    VITE_SERVER_ENDPOINT=http://10.1.11.50:2283/api
    
    
    ####################################################################################
    # WEB - Optional
    ####################################################################################
    
    # Custom message on the login page, should be written in HTML form.
    # For example VITE_LOGIN_PAGE_MESSAGE="This is a demo instance of Immich.<br><br>Email: <i>[email protected]</i><br>Passwo>
    
    VITE_LOGIN_PAGE_MESSAGE=
    
    

    where 10.1.11.50 is replaced with my local ip

    bug need triage 
    opened by basings 23
  • immich-microservices Container pinning CPU at 100%

    immich-microservices Container pinning CPU at 100%

    Describe the bug After backing up all photos from my phone, the Microservices container runs at 100% CPU. RAM usage is negligible. The photo library is only 34 images, and the CPU is still pinned 14 hours after initial sync.

    Task List Running in a VM on Proxmox, one of many other docker apps running. Photos are synced to a directory on my NAS (seperate device). CPU is a Interl J4205 (4 cores) and 6GB RAM has been allocated.

    To Reproduce Unknown

    Desktop (please complete the following information):

    • OS: Ubuntu 22.04 LTS + Docker
    bug 
    opened by darrylgibbs 23
  • [Feature]: Running Immich behind a Reverse-Proxy configured with a Self-signed-certificate

    [Feature]: Running Immich behind a Reverse-Proxy configured with a Self-signed-certificate

    Feature detail

    I run a standard Nginx-Reverse-Proxy with a self-signed-certificate. So I can access the service with a subdomain like https://immich.example.local If I set VITE_SERVER_ENDPOINT=https://immich.example.local/api the Web-Container complains, that it can't reach the resource because of the self-signed-certificate. If I set VITE_SERVER_ENDPOINT=http://immich-proxy:2283/api I get messages in the developer-console saying: Blocked loading mixed active content “http://immich-proxy:2283/api/asset".

    Would be great if Immich could be run behind a custom reverse-proxy. Running latest docker on Ubuntu 20.04. And thanks for the great work on this one! Seems that Immich could be the missing piece in the selfhosting photo-puzzle.

    Platform

    Web

    feature 
    opened by CKranebitter 21
  • [BUG] Empty mobile page when uploading from web only

    [BUG] Empty mobile page when uploading from web only

    Describe the bug I setup an immich instance and started uploading straight from the web version (about a hundred pics). However, when I open the android app to see my content, the page is empty. I can see the pictures in the Search tab when I look for detected objects. But the main page is just blank.

    I tried setting up another instance, same issue if you start uploading from web only. (I also tried reinstalling the android app)

    Task List

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

    To Reproduce Steps to reproduce the behavior:

    1. Setup immich following the README steps
    2. Start uploading from the web version only
    3. Open the android app to see your uploaded content

    Expected behavior The web uploaded pictures shows up on the Android app.

    Desktop (please complete the following information):

    • OS: Ubuntu 20.04
    • Version: 1.17.0_25-dev

    Smartphone (please complete the following information):

    • Device: Mi 11
    • OS: CherishOS 3.9
    • Version: 1.17.0 build.25
    bug 
    opened by Eidenz 21
  • feat(web,server): api keys

    feat(web,server): api keys

    This PR adds user managed API keys.

    Overview:

    • The key is generated from crypto.randomBytes and a hashed version is stored in the database.
    • The original key is returned to the web and shown to the user (once) upon creation.
    • A new passport strategy looks up and validates a key sent in the x-api-key header.
    • The actual "key" included in each request is of the form Base64(id:key).
    • Validating a key includes: (1) looking it up by id, (2) comparing the key vs hashed value, (3) returning the associated user.

    TODO:

    • [ ] Update the docs
    • [ ] Add unit tests
    • [ ] Add support for tracking last used date (future PR)
    • [ ] Add support for API key in the Immich CLI (future PR)

    Example of creating, updating, and deleting an API key:

    https://user-images.githubusercontent.com/4334196/210162180-8dfaeb8e-b2a3-464d-ab4a-aeef8952e07f.mp4

    opened by jrasm91 1
  • feat(mobile): Added data saving mode

    feat(mobile): Added data saving mode

    As a fellow Google Photos refugee, I would love to use Immich heavily. I mostly use it for memories that I watch from my phone, so I'd prefer to enable a voluntary resizing of my images, similiar to how Google Photos does it. This allows my hard drive to not be filled as quickly.

    Instead of having a binary choice like in Google Photos, I thought it would be more future proof to give the user more fine-grained control and allow even smaller images.

    screenshot screenshot screenshot

    For the resizing I had to use an external library. Due to a conflict with flutter_launcher_icons, we cannot use the newest version.

    I first spent a day trying to make it work as part of an existing state struct, however this either required API changes, many code changes, didn't save the variable or it wasn't accessible to the background service. Hence I chose the most straightforward solution by just putting the data into a Box. If you would like to do this differently, support would be highly appreciated.

    opened by JamesCullum 5
  • [BUG] Immich-cli upload does not support SSO

    [BUG] Immich-cli upload does not support SSO

    Describe the bug Immich-CLI does not provide a mechanism to authenticate via SSO when OIDC/OAUTH is configured.

    Task List

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

    To Reproduce Steps to reproduce the behavior:

    1. Using the docker image for immich-cli, run immich upload -s http://servername:3001 -e [email protected] -pw 'SSO Password' -d /import
    2. Observe "Error logging in - check email and password"

    Expected behavior Additional command line flags should be provided to authenticate via the configured SSO service so that command line upload can work with users that aren't natively managed by Immich.

    System

    • Phone OS [iOS, Android]: Android
    • Server Version: 1.40.0
    • Mobile App Version: 1.40.0 build.63

    Docker-compose

    networks:
      traefik_net:
        external: true
      immich:
        driver: bridge
    
    volumes:
      immich_upload:
        driver: local
        driver_opts:
          type: nfs4
          o: addr=REDACTED,rw,soft,nolock,noatime
          device: ":REDACTED/immich_data"
    
      librephotos:
        driver: local
        driver_opts:
          type: nfs4
          o: addr=REDACTED,rw,soft,nolock,noatime
          device: ":REDACTED/librephotos_data"        
    
    services:
      immich-server:
        container_name: immich-server
        image: altran1502/immich-server:release
        entrypoint: ["/bin/sh", "./start-server.sh"]
        volumes:
          - immich_upload:/usr/src/app/upload
        env_file:
          - .env
        environment:
          - NODE_ENV=production
        depends_on:
          - immich-redis
          - immich-database
        restart: always
        networks:
          - traefik_net
          - immich
        labels:
          traefik.enable: "true"
          traefik.http.services.media-immich-api.loadbalancer.server.port: "3001"
          traefik.http.routers.media-immich-api.rule: "Host(`immich.REDACTED`) && Pathprefix(`/api`)"
          traefik.http.routers.media-immich-api.middlewares: service-immich-api-strip,secure-headers@file
          traefik.http.middlewares.service-immich-api-strip.stripprefix.prefixes: "/api"
          traefik.http.routers.media-immich-api.entrypoints: websecure
          traefik.docker.network: traefik_net
    
      immich-microservices:
        image: altran1502/immich-server:release
        container_name: immich-microservices
        entrypoint: ["/bin/sh", "./start-microservices.sh"]
        volumes:
          - immich_upload:/usr/src/app/upload
        env_file:
          - .env
        environment:
          - NODE_ENV=production
        depends_on:
          - immich-redis
          - immich-database
        restart: always
        networks:
          - immich
    
      immich-machine-learning:
        container_name: immich-machine-learning
        image: altran1502/immich-machine-learning:release
        entrypoint: ["/bin/sh", "./entrypoint.sh"]
        volumes:
          - immich_upload:/usr/src/app/upload
        env_file:
          - .env
        environment:
          - NODE_ENV=production
        depends_on:
          - immich-database
        restart: always
        networks:
          - immich
    
      immich-web:
        container_name: immich-web
        image: altran1502/immich-web:release
        entrypoint: ["/bin/sh", "./entrypoint.sh"]
        env_file:
          - .env
            #    environment:
          # Rename these values for svelte public interface
          #  - PUBLIC_IMMICH_SERVER_URL=${IMMICH_SERVER_URL}
        restart: always
        networks:
          - immich
          - traefik_net
        labels:
          traefik.enable: "true"
          traefik.http.services.media-immich.loadbalancer.server.port: "3000"
          traefik.http.routers.media-immich.rule: "Host(`immich.REDACTED`)"
          traefik.http.routers.media-immich.entrypoints: websecure
          traefik.docker.network: traefik_net
          traefik.http.routers.media-immich.middlewares: secure-headers@file
    
      immich-redis:
        container_name: immich-redis
        image: redis:6.2
        restart: always
        networks:
          - immich
    
      immich-database:
        container_name: immich-database
        image: postgres:14
        env_file:
          - .env
        environment:
          POSTGRES_PASSWORD: ${DB_PASSWORD}
          POSTGRES_USER: ${DB_USERNAME}
          POSTGRES_DB: ${DB_DATABASE_NAME}
        volumes:
          - ./immich/pgdata:/var/lib/postgresql/data
        restart: always
        networks:
          - immich
    
      immich-uploader:
        container_name: immich-uploader
        image: ghcr.io/immich-app/immich-cli:latest
        networks:
          - immich
        restart: unless-stopped
        volumes:
          - librephotos:/import
            #    command: ['/bin/sleep', '9d']
        entrypoint: ['/bin/sleep', '9d']
    

    .ENV

    ###################################################################################
    # Database
    ###################################################################################
    
    DB_HOSTNAME=immich-database
    DB_USERNAME=immich
    DB_PASSWORD=REDACTED
    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 Location
    #
    # This is the location where uploaded files are stored.
    ###################################################################################
    
    #UPLOAD_LOCATION=/bindmount/photos
    
    ###################################################################################
    # 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=REDACTED
    
    ###################################################################################
    # Reverse Geocoding
    #
    # 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
    ####################################################################################
    
    DISABLE_REVERSE_GEOCODING=false
    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>[email protected]</i><br>Password: <i>demo</i>"
    ####################################################################################
    
    PUBLIC_LOGIN_PAGE_MESSAGE="Welcome to the Photo Gallery!"
    
    ####################################################################################
    # Alternative Service Addresses - Optional
    #
    # This is an advanced feature for users who may be running their immich services on different hosts.
    # It will not change which address or port that services bind to within their containers, but it will change where other services look for their peers.
    # Note: immich-microservices is bound to 3002, but no references are made
    ####################################################################################
    
    # IMMICH_WEB_URL=http://immich-web:3000
    # IMMICH_SERVER_URL=http://immich-server:3001
    #IMMICH_SERVER_URL=https://immich.REDACTED
    # IMMICH_MACHINE_LEARNING_URL=http://immich-machine-learning:3003
    
    ####################################################################################
    # OAuth Setting - Optional
    #
    # These setting will enable OAuth login for your instance of Immich
    # Folow the instructions in the page https://immich.app/docs/usage/oauth to set up your OAuth provider
    ####################################################################################
    
    # OAUTH_ENABLED=false
    # OAUTH_ISSUER_URL=
    # OAUTH_CLIENT_ID=
    # OAUTH_CLIENT_SECRET=
    # OAUTH_BUTTON_TEXT=Login with OAuth
    # OAUTH_AUTO_REGISTER=true
    # OAUTH_SCOPE="openid profile email"
    

    Server Info Running in docker compose on Fedora 37 in a VM, x86_64 architecture.

    bug 
    opened by StarkZarn 4
  • [Feature]: Expose username {{user}} for templates

    [Feature]: Expose username {{user}} for templates

    Feature detail

    It would be good to make {{user}} available in the template configuration to enable the separation of photos better when having multiple users.

    This would allow some configurations like:

    {{user}}/{{y}}/{{MM}}/{{filename}}

    While I have not looked at the code, implementing this should be easier than trying more complex solutions. The more complex solution could have a configurable parameter attached to the user profile (defined by the admin, possibly pulled in from an SSO parameter). If this is empty, it could fall back to the username.

    Platform

    Web

    feature feedback-wanted 
    opened by llitz 4
  • [BUG] Unable to upload HEIC photos

    [BUG] Unable to upload HEIC photos

    Describe the bug Unable to upload HEIC photos. When photo is attempted to be uploaded, the bottom right upload GUI does not appear, and immich provides no response in GUI or in logs

    To Reproduce Steps to reproduce the behavior:

    1. Go to immich web UI
    2. Attempt to upload HEIC file
    3. Upload does not occur

    Expected behavior The bottom right upload UI should show up indicating progress, and when finished, immich should prompt user to refresh

    System

    • Server Version: v1.40.1_63-dev

    Additional context Tested on Firefox and Chrome

    bug 
    opened by IrwenXYZ 4
Releases(v1.40.1_63-dev)
  • v1.40.1_63-dev(Dec 29, 2022)

    Hot Fixes

    • fix(server) Cannot change first-time password due to null value in first and last name payload from the mobile app by @alextran1502 in https://github.com/immich-app/immich/pull/1205

    What's Changed

    • feat(server,web): update email address by @jrasm91 in https://github.com/immich-app/immich/pull/1186
    • chore(server): fix unit test by @jrasm91 in https://github.com/immich-app/immich/pull/1194
    • Fixed translations and added missing by @DVerdeV in https://github.com/immich-app/immich/pull/1201
    • chore(docs) Add link to releases by @PopsicleSnow in https://github.com/immich-app/immich/pull/1195

    New Contributors

    • @DVerdeV made their first contribution in https://github.com/immich-app/immich/pull/1201
    • @PopsicleSnow made their first contribution in https://github.com/immich-app/immich/pull/1195

    Full Changelog: https://github.com/immich-app/immich/compare/v1.40.0_63-dev...v1.40.1_63-dev

    Source code(tar.gz)
    Source code(zip)
  • v1.40.0_63-dev(Dec 27, 2022)

    v1.40.0_63-dev

    This release aims to improve the mobile UX and add a new feature to link/unlink OAuth accounts.

    What's Changed

    Server/Web

    • feat(web,server): link/unlink OAuth account by @jrasm91 in https://github.com/immich-app/immich/pull/1154
    • feat(web): user profile by @jrasm91 in https://github.com/immich-app/immich/pull/1148
    • feat(web) using template filename for downloaded file by @alextran1502 in https://github.com/immich-app/immich/pull/1164
    • feat(server): extend JWTexpiration by @jrasm91 in https://github.com/immich-app/immich/pull/1187
    • chore(web): linting by @jrasm91 in https://github.com/immich-app/immich/pull/1152
    • chore(server): increase OAuth timeout by @jrasm91 in https://github.com/immich-app/immich/pull/1155
    • chore(server) Make user business logic reusable by @jbaez in https://github.com/immich-app/immich/pull/1114
    • chore(server): drop salt column by @jrasm91 in https://github.com/immich-app/immich/pull/1185
    • test(server): change password by @jrasm91 in https://github.com/immich-app/immich/pull/1177
    • fix(server): utf8 original filename by @jrasm91 in https://github.com/immich-app/immich/pull/1147
    • chore(server) Increase cache-control time by @alextran1502 in https://github.com/immich-app/immich/pull/1189

    Mobile

    • feat(mobile): autofill login form by @EnricoBilla in https://github.com/immich-app/immich/pull/1128
    • feat(mobile) delete button in detail viewer by @alextran1502 in https://github.com/immich-app/immich/pull/1165
    • fix(mobile) Disable autocorrection on endpoint URL by @alextran1502 in https://github.com/immich-app/immich/pull/1166
    • fix(mobile) notification android 13 by @alextran1502 in https://github.com/immich-app/immich/pull/1175
    • fix(mobile) minor typo by @IdeallyGrey in https://github.com/immich-app/immich/pull/1181

    Documentation

    • Update instructions for Unraid by @MattFaz in https://github.com/immich-app/immich/pull/1131
    • Refer to the docs by @bt90 in https://github.com/immich-app/immich/pull/1136
    • Improve TensorFlow docs by @bt90 in https://github.com/immich-app/immich/pull/1138
    • Refactor pages by @jrasm91 in https://github.com/immich-app/immich/pull/1144
    • Fix build errors by @jrasm91 in https://github.com/immich-app/immich/pull/1156
    • FAQs and more pages by @jrasm91 in https://github.com/immich-app/immich/pull/1160
    • Revamp landing page by @alextran1502 in https://github.com/immich-app/immich/pull/1161

    Other

    • fix(deployment) suppress warning of empty environment variable by @alextran1502 in https://github.com/immich-app/immich/pull/1168

    New Contributors

    • @EnricoBilla made their first contribution in https://github.com/immich-app/immich/pull/1128
    • @bt90 made their first contribution in https://github.com/immich-app/immich/pull/1136
    • @IdeallyGrey made their first contribution in https://github.com/immich-app/immich/pull/1178

    Full Changelog: https://github.com/immich-app/immich/compare/v1.39.0_61-dev...v1.40.0-dev

    Source code(tar.gz)
    Source code(zip)
    v1.40.0_63-dev.apk(54.52 MB)
  • v1.39.0_61-dev(Dec 19, 2022)

    Christmas Special Release 🎁

    Happy holiday! I am excited to bring you this release, it accomplishes one of the most wanted features since the early day of the application

    User-defined storage structure of uploaded files.

    We provide an interface on the web so that the admin can build out the structure of the file's layout. The interactive builder template would help you see what the final structure would look like.

    image

    Along with that feature, we add a migration mechanism, allowing migrate all your files from the legacy structure of Immich to the new template layout and also allowing migration between template changes. So if the template you set now doesn't work in the future, you can always change to the new one.

    The default template layout is YEAR/YEAR-MONTH-DAY/FILENAME.EXT You can add custom text as well as using the variable we provided for the template.

    I hope you enjoy this feature as much as I do, and I hope Immich is one step closer to being a solution to store photos and videos from your mobile device.

    🎉 Cheer! 🎉

    Support

    If you find the project helpful and it helps you in some ways, you can support the project one time or monthly from GitHub Sponsor

    It is a great way to let me know that you want me to continue developing and working on this project for years to come.

    What's Changed

    • fix(mobile) invalid date in EXIF caused the timeline to crash by @alextran1502 in https://github.com/immich-app/immich/pull/1095
    • chore(mobile) Slovak and Czech language added by @PeterBasista in https://github.com/immich-app/immich/pull/1099
    • chore() Fix typo and update notification wording by @HcNguyen111 in https://github.com/immich-app/immich/pull/1100
    • feat(server) user-defined storage structure by @alextran1502 in https://github.com/immich-app/immich/pull/1098
    • chore(web) update SvelteKit to 1.0.0 by @alextran1502 in https://github.com/immich-app/immich/pull/1110
    • chore(mobile) Date format change for SK/CZ translation by @PeterBasista in https://github.com/immich-app/immich/pull/1113
    • feat(web) add user setting page by @alextran1502 in https://github.com/immich-app/immich/pull/1115
    • chore(server) Add job for storage migration by @alextran1502 in https://github.com/immich-app/immich/pull/1117

    New Contributors

    • @PeterBasista made their first contribution in https://github.com/immich-app/immich/pull/1099
    • @HcNguyen111 made their first contribution in https://github.com/immich-app/immich/pull/1100

    Full Changelog: https://github.com/immich-app/immich/compare/v1.38.2_60-dev...v1.39.0_61-dev

    Source code(tar.gz)
    Source code(zip)
    v1.39.0_61-dev.apk(54.47 MB)
  • v1.38.2_60-dev(Dec 11, 2022)

    v1.38.2_60-dev

    Hot Fixes

    • fix(server): Fix error not able to see asset added by shared user in shared album by @matthinc in https://github.com/immich-app/immich/pull/1094

    Full Changelog: https://github.com/immich-app/immich/compare/v1.38.1_60-dev...v1.38.2_60-dev

    Source code(tar.gz)
    Source code(zip)
  • v1.38.1_60-dev(Dec 11, 2022)

    Hot Fixes

    • Fix(server) fix cannot change user password from mobile app due to first, and last name property doesn't get passed from the app by @alextran1502 in https://github.com/immich-app/immich/pull/1085
    • Fix(server) Microservice didn't trigger to remove user by @alextran1502 in https://github.com/immich-app/immich/pull/1090

    Full Changelog: https://github.com/immich-app/immich/compare/v1.38.0_60-dev...v1.38.1_60-dev

    Source code(tar.gz)
    Source code(zip)
    v1.38.1_60-dev.apk(54.42 MB)
  • v1.38.0_60-dev(Dec 10, 2022)

    v1.38.0_60-dev

    ⚠ī¸ Breaking Changes

    • OAuth setting is now moved to the admin interface. The current values in the .env will no longer have effects. You will have to sign in to the admin account and update the information on the web interface to restore the OAuth implementation.
    • We've also made some changes to the setting interface on the server, so the current setting saved in the database will be wiped. Specifically, the old FFmpeg's setting. Please make sure to set it again on the web interface.
    Screenshot 2022-12-09 at 21 40 37

    Highlight

    • Thanks, @zoodyy, for further improving the background backup functionality on the mobile app and also improving the data usage on loading photos and videos.
    • Thanks, @jrasm91, for being a trailblazer in many of the new features/bug fixes and improving the overall quality of the code base.
    • We've laid the foundation for a tagging system in the release. The upcoming release will include the integration of such a system into the app and the overhaul of the search functionality on both the web and mobile.

    Support

    If you find the project helpful and it helps you in some ways, you can support the project one time or monthly from GitHub Sponsor

    It is a great way to let me know that you want me to continue developing and working on this project for years to come.

    What's Changed

    • fix(mobile): Start up from splash screen does not trigger foreground backup by @alextran1502 in https://github.com/immich-app/immich/pull/1042
    • feat(mobile): configure detail viewer asset loading by @zoodyy in https://github.com/immich-app/immich/pull/1044
    • feat(server): link via profile.sub by @jrasm91 in https://github.com/immich-app/immich/pull/1055
    • feat(mobile): enable zoom of preview images & reuse cached thumbnails by @zoodyy in https://github.com/immich-app/immich/pull/1049
    • chore(): add Chinese README file by @chen3stones in https://github.com/immich-app/immich/pull/1058
    • feat(web): Localize dates and numbers by @Mortein in https://github.com/immich-app/immich/pull/1056
    • feat(server): Per user asset access control by @matthinc in https://github.com/immich-app/immich/pull/993
    • fix(web) fix test by @alextran1502 in https://github.com/immich-app/immich/pull/1059
    • feat(server) Tagging system by @alextran1502 in https://github.com/immich-app/immich/pull/1046
    • fix(server) fix correct MIME type for Nikon NEF by @alextran1502 in https://github.com/immich-app/immich/pull/1060
    • fix(server) added TagResponseDto for TagController by @alextran1502 in https://github.com/immich-app/immich/pull/1065
    • chore(web) Update SvelteKit by @alextran1502 in https://github.com/immich-app/immich/pull/1066
    • Add generated openapi docs to website by @bo0tzz in https://github.com/immich-app/immich/pull/1067
    • feat(mobile): configurable background backup delay by @zoodyy in https://github.com/immich-app/immich/pull/1068
    • refactor(server): server version logging by @jrasm91 in https://github.com/immich-app/immich/pull/1073
    • Move Unraid guide into Immich repo by @Mattyfaz in https://github.com/immich-app/immich/pull/1074
    • refactor(server): device info service by @jrasm91 in https://github.com/immich-app/immich/pull/1071
    • feat(server,web): migrate oauth settings from env to system config by @jrasm91 in https://github.com/immich-app/immich/pull/1061
    • fix(server): link 'immich' by @jrasm91 in https://github.com/immich-app/immich/pull/1080
    • fix(server): require local admin account by @jrasm91 in https://github.com/immich-app/immich/pull/1070
    • docs: server commands by @jrasm91 in https://github.com/immich-app/immich/pull/1079
    • chore(docs): spelling by @jrasm91 in https://github.com/immich-app/immich/pull/1081
    • fix(server): unique email database constraint by @jrasm91 in https://github.com/immich-app/immich/pull/1082

    New Contributors

    • @chen3stones made their first contribution in https://github.com/immich-app/immich/pull/1058
    • @Mattyfaz made their first contribution in https://github.com/immich-app/immich/pull/1074

    Full Changelog: https://github.com/immich-app/immich/compare/v1.37.0_58-dev...v1.38.0_60-dev

    Source code(tar.gz)
    Source code(zip)
  • v1.37.0_58-dev(Nov 30, 2022)

    v1.37.0_58-dev

    This release focus on

    • Optimized app data usage
    • Improved usability and user interface

    What's Changed

    • feat(server,web,mobile): Use binary prefixes for data sizes by @Mortein in https://github.com/immich-app/immich/pull/1009
    • fix(mobile): Fix not able to show device asset on Android 13 by @alextran1502 in https://github.com/immich-app/immich/pull/1016
    • Fix(web) navbar color overlap and scroll bar incorrect z index by @denck007 in https://github.com/immich-app/immich/pull/1018
    • feat(mobile): use cached asset info if unchanged instead of downloading all assets by @zoodyy in https://github.com/immich-app/immich/pull/1017
    • fix(server): Prevent delete admin user by @alextran1502 in https://github.com/immich-app/immich/pull/1023
    • feat(mobile) Add in app logging to show app's log information by @alextran1502 in https://github.com/immich-app/immich/pull/1014
    • fix(mobile): fix cache invalidation on logout by @zoodyy in https://github.com/immich-app/immich/pull/1030
    • chore(mobile): improve CSV log export by @zoodyy in https://github.com/immich-app/immich/pull/1032
    • chore(mobile) Improve readability of logs page by @alextran1502 in https://github.com/immich-app/immich/pull/1033
    • feat(server,web,mobile): activate ETags for all API endpoints and asset serving by @zoodyy in https://github.com/immich-app/immich/pull/1031
    • chore(mobile) Improve mobile UI by @alextran1502 in https://github.com/immich-app/immich/pull/1038

    New Contributors

    • @denck007 made their first contribution in https://github.com/immich-app/immich/pull/1018

    Full Changelog: https://github.com/immich-app/immich/compare/v1.36.2_56-dev...v1.37.0_58-dev

    Source code(tar.gz)
    Source code(zip)
  • v1.36.2_56-dev(Nov 22, 2022)

    What's Changed

    • fix(mobile): freeze on splash screen due to accessing bad state by @alextran1502 in https://github.com/immich-app/immich/pull/998
    • chore(mobile): clean up linter problems by @alextran1502 in https://github.com/immich-app/immich/pull/1000
    • fix(server): Deleted shared users cause a problem with album retrieval and creation by @alextran1502 in https://github.com/immich-app/immich/pull/1002

    Full Changelog: https://github.com/immich-app/immich/compare/v1.36.1_55-dev...v1.36.2_56-dev

    Source code(tar.gz)
    Source code(zip)
  • v1.36.1_55-dev(Nov 21, 2022)

    Hotfix

    • fix(server): Admin user not created by @alextran1502 in https://github.com/immich-app/immich/pull/996

    Full Changelog: https://github.com/immich-app/immich/compare/v1.36.0_55-dev...v1.36.1_55-dev

    Source code(tar.gz)
    Source code(zip)
  • v1.36.0_55-dev(Nov 20, 2022)

    v1.36.0_55-dev

    🎉 Highlight 🎉

    ⚠ī¸ LivePhotos iOS Support (breaking change)

    LivePhotos on iOS is now supported in Immich. The motion part will now be uploaded and played on the mobile app and the web.

    ⚠ī¸ BREAKING: You will have to update the app and the server to version 1.36 for the application to work correctly ⚠ī¸ BREAKING: You will have to remove and re-upload photos that you want to persist the LivePhotos functionality to the server. Existing assets that were uploaded don't have the motion part of the LivePhotos

    Web Interaction - Hover

    https://user-images.githubusercontent.com/27055614/202816753-0b0eb201-1747-4fef-8b31-ce380a851bbc.mov

    Web Interaction - Play

    https://user-images.githubusercontent.com/27055614/202816825-63ab1ca1-8b08-4bdc-8dff-2dc802c847e7.mov

    Mobile Interaction

    https://user-images.githubusercontent.com/27055614/202816953-42321a01-8906-481f-ac5e-7e5601ed1774.mov

    Oauth Integration

    I want to borrow this chance to express my gratitude to @EnricoBilla, who has been the trailblazer for this feature since the beginning days of Immich. His PR has sparked ideas, suggestions, and discussion among the team member on how to integrate this feature successfully into the app. Thank you so much for your work and your time.

    OAuth is now integrated into the system. Please follow the guide here to set up your OAuth integration

    After setting up the correct environment variables, as shown here

    image

    The web will have the option to sign in with OAuth, and the mobile app will check if the server has OAuth enabled before displaying the OAuth sign-in button.

    image

    https://user-images.githubusercontent.com/27055614/202923737-6a102b3f-2c97-41d8-9839-14ad38f4bbf0.mp4

    Support

    If you find the project helpful and it helps you in some ways, you can support the project one time or monthly from GitHub Sponsor

    It is a great way to let me know that you want me to continue developing and working on this project for years to come.

    What's Changed

    • feat(deployment) Allow overriding service host and ports with env variable by @ViViDboarder in https://github.com/immich-app/immich/pull/930
    • fix(web): broken unit tests by @jrasm91 in https://github.com/immich-app/immich/pull/947
    • typo(android-feature-note): Reserve geocoding -> Reverse geocoding by @jaller94 in https://github.com/immich-app/immich/pull/946
    • build(server): use github-action cache by @jrasm91 in https://github.com/immich-app/immich/pull/949
    • Small docs site tweaks by @bo0tzz in https://github.com/immich-app/immich/pull/954
    • build(server): refactor multistage builds by @jrasm91 in https://github.com/immich-app/immich/pull/955
    • refactor(mobile): tidy-up dependencies, remove unused, replace rarely used ones by @zoodyy in https://github.com/immich-app/immich/pull/948
    • feat(ci): Push images to GitHub Container Registry by @onedr0p in https://github.com/immich-app/immich/pull/964
    • feat(server,web): OIDC Implementation by @jrasm91 in https://github.com/immich-app/immich/pull/884
    • feat(server,web): system config for admin by @zackpollard and @jrasm91 in https://github.com/immich-app/immich/pull/959
    • feat(server): multi archive downloads by @jrasm91 in https://github.com/immich-app/immich/pull/956
    • Update Korean translation with the latest version. by @hismethod in https://github.com/immich-app/immich/pull/971
    • chore(web,mobile): update github repo url by @jrasm91 in https://github.com/immich-app/immich/pull/974
    • Web: Disallow all robots by @Mortein in https://github.com/immich-app/immich/pull/977
    • chore(server) refactor serveFile and downloadFile endpoint by @alextran1502 in https://github.com/immich-app/immich/pull/978
    • Add navbar button to copy image by @bo0tzz in https://github.com/immich-app/immich/pull/961
    • web(feat): Add support for actions when clicking notifications by @bo0tzz in https://github.com/immich-app/immich/pull/966
    • Update contribution-guidelines.md by @bdr99 in https://github.com/immich-app/immich/pull/985
    • feat: support iOS LivePhoto backup by @alextran1502 in https://github.com/immich-app/immich/pull/950
    • feat(mobile) Add OAuth Login On Mobile by @alextran1502 in https://github.com/immich-app/immich/pull/990
    • fix(server): Server freezes when getting statistic by @alextran1502 in https://github.com/immich-app/immich/pull/994

    New Contributors

    • @ViViDboarder made their first contribution in https://github.com/immich-app/immich/pull/930
    • @jaller94 made their first contribution in https://github.com/immich-app/immich/pull/946
    • @onedr0p made their first contribution in https://github.com/immich-app/immich/pull/964
    • @Mortein made their first contribution in https://github.com/immich-app/immich/pull/977
    • @bdr99 made their first contribution in https://github.com/immich-app/immich/pull/985

    Full Changelog: https://github.com/immich-app/immich/compare/v1.35.0_54-dev...v1.36.0_55-dev

    Source code(tar.gz)
    Source code(zip)
    v1.36.0_55-dev.apk(54.22 MB)
  • v1.35.0_54-dev(Nov 8, 2022)

    v1.35.0_54-dev

    🎉 Highlight 🎉

    Local assets are now shown in the app

    This is a stepping stone in making the app work offline. @zoodyy has taken the lead in the implementation of this feature.

    The app can now show the local assets of the selected album. Three icons are used to indicate the different states of the asset in the app.

    image

    User can now be deleted

    image

    The user can now be deleted from the server by the Admin, thanks to @zkhan93. The action will mark the user to be officially deleted after 7-day along with their photos and videos. During this period, the admin can restore the user.

    Please use this feature responsibly concerning the people who use your instance to store their precious moments.
    

    Documentation site

    Please visit our new documentation site and let us know if you have any feedback. The site is located at https://immich.app

    Thank you

    I want to thank all who have supported the project and have spent time testing and communicating with new users. I cannot do this without your guys help! From the bottom of my heart, you guys are always in my thought.

    Support

    If you find the project helpful and it helps you in some ways, you can support the project one time or monthly from GitHub Sponsor

    It is a great way to let me know that you want me to continue developing and working on this project for years to come.

    What's Changed

    • feat(server, web): Delete and restore user from the admin portal by @zkhan93 in https://github.com/immich-app/immich/pull/935
    • fix(server): increase JSON body payload limit by @jrasm91 in https://github.com/immich-app/immich/pull/941
    • feat(web): favorite an asset by @jrasm91 in https://github.com/immich-app/immich/pull/939
    • feat(mobile): show local assets by @zoodyy in https://github.com/immich-app/immich/pull/905
    • Fix (mobile): Fix crash when opening local assets in albums by @matthinc in https://github.com/immich-app/immich/pull/943

    Full Changelog: https://github.com/immich-app/immich/compare/v1.34.0_53-dev...v1.35.0_54-dev

    Source code(tar.gz)
    Source code(zip)
    v1.35.0_54-dev.apk(54.37 MB)
  • v1.34.0_53-dev(Nov 7, 2022)

    v1.34.0_53-dev

    Support

    If you find the project helpful and help you in some ways, you can support the project one time or monthly from Github Sponsor

    It is a great way to let me know that you want me to continue developing and working on this project for years to come.

    What's Changed

    Web

    • fix(web) getting asset with available thumbnail when getting asset count by time bucket by @alextran1502 in https://github.com/immich-app/immich/pull/900
    • feat(web): add a delete button to asset viewer by @anbraten in https://github.com/immich-app/immich/pull/896
    • feat(server/web): download entire album as zip archive by @zoodyy in https://github.com/immich-app/immich/pull/897
    • feat(web): add mechanism to add current view asset to an album by @jrasm91 in https://github.com/immich-app/immich/pull/923
    • chore(web): Modified styling for add to album panel by @alextran1502 in https://github.com/immich-app/immich/pull/924
    • fix(web): album download progress bar by @jrasm91 in https://github.com/immich-app/immich/pull/925
    • feat(web): add selected asset on the main timeline to album from selection by @jrasm91 in https://github.com/immich-app/immich/pull/926

    Mobile

    • fix(mobile) reduce app startup time by loading Hive boxes in parallel by @zoodyy in https://github.com/immich-app/immich/pull/906
    • fix(mobile): throttle detail progress notifications & wait on foregroundInfo by @zoodyy in https://github.com/immich-app/immich/pull/907
    • fix(mobile): throttle all background backup progress notifications by @zoodyy in https://github.com/immich-app/immich/pull/908
    • feat(mobile): Add selected assets to album by @matthinc in https://github.com/immich-app/immich/pull/901
    • feat(mobile): Enhanced vertical swiping motion in image viewer by @alextran1502 in https://github.com/immich-app/immich/pull/932
    • feat(mobile) Enhance the bottom app bar on the home page by @alextran1502 in https://github.com/immich-app/immich/pull/934

    Server

    • fix(server): download album error handling by @jrasm91 in https://github.com/immich-app/immich/pull/917
    • test(server): add more the tests by @jrasm91 in https://github.com/immich-app/immich/pull/911
    • fix(server): harden auto pick album thumbnails (#918) by @jrasm91 in https://github.com/immich-app/immich/pull/918
    • feat(server): reset admin password using CLI command in the server container by @jrasm91 in https://github.com/immich-app/immich/pull/928

    Others

    • doc/update overview section by @alextran1502 in https://github.com/immich-app/immich/pull/904
    • docs/installation by @alextran1502 in https://github.com/immich-app/immich/pull/912
    • doc: Add content for usage section by @alextran1502 in https://github.com/immich-app/immich/pull/922
    • chore: Update repo readme by @alextran1502 in https://github.com/immich-app/immich/pull/927
    • Grammar and syntax edits for the new docs by @Coyote6705 in https://github.com/immich-app/immich/pull/936

    New Contributors

    • @anbraten made their first contribution in https://github.com/immich-app/immich/pull/896
    • @Coyote6705 made their first contribution in https://github.com/immich-app/immich/pull/936

    Full Changelog: https://github.com/immich-app/immich/compare/v1.33.1_52-dev...v1.34.0_53-dev

    Source code(tar.gz)
    Source code(zip)
    v1.34.0_53-dev.apk(54.29 MB)
  • v1.33.1_52-dev(Oct 29, 2022)

    v1.33.1_52-dev

    This release includes bug fixes for web and server. There is no mobile release for this version.

    Support

    If you find the project helpful and help you in some ways, you can support the project one time or monthly from Github Sponsor

    It is a great way to let me know that you want me to continue developing and working on this project for years to come.

    What's Changed

    • chore(server) revert Dockerfile by @alextran1502 in https://github.com/immich-app/immich/pull/878
    • feat(app) add documentation site template by @alextran1502 in https://github.com/immich-app/immich/pull/879
    • refactor(server): merge auth guards to authentication guard (#877) by @jrasm91 in https://github.com/immich-app/immich/pull/877
    • feat(server) Extend PUT /album/:id/assets endpoint (#857) by @matthinc in https://github.com/immich-app/immich/pull/857
    • fix(web) prevent create multiple user when the instance is lagging by @alextran1502 in https://github.com/immich-app/immich/pull/882
    • feat(web) add handler for ctrl-c copying images from viewer (#881) by @bo0tzz in https://github.com/immich-app/immich/pull/881
    • feat(server) add docker debug config for server by @jrasm91 in https://github.com/immich-app/immich/pull/883
    • fix(web) video keep playing when mouse is not over video by @alextran1502 in https://github.com/immich-app/immich/pull/885
    • feat(web) Make "no albums" card clickable (#888) by @bo0tzz in https://github.com/immich-app/immich/pull/888
    • fix(web) date group hover not trigger correctly by @alextran1502 in https://github.com/immich-app/immich/pull/892

    New Contributors

    • @jrasm91 made their first contribution in https://github.com/immich-app/immich/pull/877

    Full Changelog: https://github.com/immich-app/immich/compare/v1.33.0_52-dev...v1.33.1_53-dev

    Source code(tar.gz)
    Source code(zip)
  • v1.33.0_52-dev(Oct 26, 2022)

    v1.33.0_52-dev

    Dark mode for web

    A lot of us are blinded by the light theme of Immich's web - worry not, the savior is here. Introducing beautiful dark mode for Immich on the web

    image

    Server Statistic

    We are now have the server statistic to show the total number of videos, photos and usage per user thanks to @zkhan93

    image

    Additional, we have resolved and fixed many bugs in this release as well. See the change list below for more detail

    Support

    If you find the project helpful and help you in some ways, you can support the project one time or monthly from Github Sponsor

    It is a great way to let me know that you want me to continue developing and working on this project for years to come.

    What's Changed

    • feat(server)Log username and IP address on failed login attempt by @bo0tzz in https://github.com/immich-app/immich/pull/732
    • fix(mobile) back button navigation Android by @zkhan93 in https://github.com/immich-app/immich/pull/841
    • fix(server): force best effort to decode thumbnail image by @alextran1502 in https://github.com/immich-app/immich/pull/847
    • feat(web) add asset count stats on admin page (#843) by @zkhan93 in https://github.com/immich-app/immich/pull/843
    • fix(server): add permission for server stats api by @alextran1502 in https://github.com/immich-app/immich/pull/854
    • chore(server) add workflow dispatcher to sdk repository by @alextran1502 in https://github.com/immich-app/immich/pull/859
    • fix(mobile) not possible to sign out when option is enable by @alextran1502 in https://github.com/immich-app/immich/pull/860
    • feat(server) use ubuntu base-image by @PixelJonas in https://github.com/immich-app/immich/pull/851
    • feat(mobile) duplicated asset upload handling mechanism by @alextran1502 in https://github.com/immich-app/immich/pull/853
    • feat(docker) revert ubuntu base image by @PixelJonas in https://github.com/immich-app/immich/pull/863
    • feat(web) styling server stats page by @alextran1502 in https://github.com/immich-app/immich/pull/866
    • feat(web) dark mode by @alextran1502 in https://github.com/immich-app/immich/pull/867

    Full Changelog: https://github.com/immich-app/immich/compare/v1.32.1_51-dev...v1.33.0_52-dev

    Source code(tar.gz)
    Source code(zip)
  • v1.32.1_51-dev(Oct 20, 2022)

    What's Changed

    • chore(deps): bump docker/setup-buildx-action from 2.1.0 to 2.2.1 by @dependabot in https://github.com/immich-app/immich/pull/839
    • fix(mobile) back button navigation Android by @zkhan93 in https://github.com/immich-app/immich/pull/837
    • feat(mobile): Cache assets and albums for faster loading speed by @matthinc in https://github.com/immich-app/immich/pull/826

    New Contributors

    • @zkhan93 made their first contribution in https://github.com/immich-app/immich/pull/837

    Full Changelog: https://github.com/immich-app/immich/compare/v1.32.0_50-dev...v1.32.1_51-dev

    Source code(tar.gz)
    Source code(zip)
  • v1.32.0_50-dev(Oct 14, 2022)

    What's Changed

    • chore(repo): Typo/minor cosmetics in README.md by @EvilOlaf in https://github.com/immich-app/immich/pull/801
    • feat(server): Remove default JWT_SECRET value in .env by @bo0tzz in https://github.com/immich-app/immich/pull/810
    • chore(deps): bump docker/setup-buildx-action from 2.0.0 to 2.1.0 by @dependabot in https://github.com/immich-app/immich/pull/815
    • chore(deps): bump docker/build-push-action from 3.1.1 to 3.2.0 by @dependabot in https://github.com/immich-app/immich/pull/816
    • chore(deps): bump docker/setup-qemu-action from 2.0.0 to 2.1.0 by @dependabot in https://github.com/immich-app/immich/pull/820
    • feat(server): Log a warning if JWT_SECRET key does not have enough bits by @bo0tzz in https://github.com/immich-app/immich/pull/821
    • feat(mobile) integrate new grid system to upstream by @matthinc in https://github.com/immich-app/immich/pull/762
    • feat(mobile) Cosmetic update by @alextran1502 in https://github.com/immich-app/immich/pull/824

    Support

    If you find the project helpful and help you in some ways, you can support the project one time or monthly from Github Sponsor

    It is a great way to let me know that you want me to continue developing and working on this project for years to come.

    New Contributors

    • @EvilOlaf made their first contribution in https://github.com/immich-app/immich/pull/801

    Full Changelog: https://github.com/immich-app/immich/compare/v1.31.1_49-dev...v1.32.0_50-dev

    Source code(tar.gz)
    Source code(zip)
  • v1.31.1_49-dev(Oct 9, 2022)

    What's Changed

    • fix(server): Delete encoded video when deleting file by @alextran1502 in https://github.com/immich-app/immich/pull/794
    • chore: add GitHub action to generate SDK in Rust/Typescript/Dart by @alextran1502 in https://github.com/immich-app/immich/pull/790
    • fix(server): Update local-reverse-geocoder to 0.12.5 by @bo0tzz in https://github.com/immich-app/immich/pull/793
    • fix(web): Fix z-index ordering of Account Info Box and date-sidebar on web by @AnTheMaker in https://github.com/immich-app/immich/pull/799

    New Contributors

    • @AnTheMaker made their first contribution in https://github.com/immich-app/immich/pull/799

    Full Changelog: https://github.com/immich-app/immich/compare/v1.31.0_49-dev...v1.31.1_49-dev

    Source code(tar.gz)
    Source code(zip)
  • v1.31.0_49-dev(Oct 6, 2022)

    v1.31.0_49-dev

    In this release, we added a feature for the admin to trigger job manually in case there is something wrong with the microservices container while the asset is uploaded.

    Job Feature

    Additionally, Shout out to @zoodyy for continuing to improve the background backup feature on Android to solve edge cases problem on limited resource phone models

    What's Changed

    • chore: fix github action name by @bivainis in https://github.com/immich-app/immich/pull/785
    • feat(mobile[Android]): background backup progress notifications by @zoodyy in https://github.com/immich-app/immich/pull/781
    • fix(server): Use boolean comparison for DISABLE_REVERSE_GEOCODING config by @bo0tzz in https://github.com/immich-app/immich/pull/787
    • feat(server/web): Add manual job trigger mechanism to the web by @alextran1502 in https://github.com/immich-app/immich/pull/767
    • fix(mobile[Android]): run background service after being killed by @zoodyy in https://github.com/immich-app/immich/pull/789

    Support

    If you find the project helpful and help you in some ways, you can support the project one time or monthly from Github Sponsor

    It is a great way to let me know that you want me to continue developing and working on this project for years to come.

    New Contributors

    • @bivainis made their first contribution in https://github.com/immich-app/immich/pull/785

    Full Changelog: https://github.com/immich-app/immich/compare/v1.30.2_48-dev...v1.31.0_49-dev

    Source code(tar.gz)
    Source code(zip)
  • v1.30.2_48-dev(Oct 4, 2022)

    What's Changed

    • fix(mobile): Fix bug with missing year and add date to drag handle by @matthinc in https://github.com/immich-app/immich/pull/761
    • chore(server): Add docker volumes to services by @PixelJonas in https://github.com/immich-app/immich/pull/766
    • fix(server): Fix resized thumbnail path not parse correctly by @deepesh16b in https://github.com/immich-app/immich/pull/780
    • fix(mobile): Fix error parsing date time prevent the timeline to be displayed by @alextran1502 in https://github.com/immich-app/immich/pull/784

    New Contributors

    • @deepesh16b made their first contribution in https://github.com/immich-app/immich/pull/780

    Full Changelog: https://github.com/immich-app/immich/compare/v1.30.0_46-dev...v1.30.2_48-dev

    Source code(tar.gz)
    Source code(zip)
  • v1.30.0_46-dev(Sep 28, 2022)

    v1.30.0_46-dev

    This release includes an experimental feature on the mobile app that will help with performance improvement for viewing a large amount of assets (ten of thousands). Please visit the Settings page, turn on the feature, then sign out and sign back in for the new feature to take effect. Thanks @matthinc for this spectacular improvement work.

    We are looking forward to your feedback on this feature.

    What's Changed

    • feat(mobile): Improve timeline performance on mobile - experimental by @matthinc in https://github.com/immich-app/immich/pull/710
    • feat(server): Provide a sensible dumpDirectory for the local-reverse-geocoder module by @nebulade in https://github.com/immich-app/immich/pull/759

    Support

    If you find the project helpful and help you in some ways, you can support the project one time or monthly from Github Sponsor

    It is a great way to let me know that you want me to continue developing and working on this project for years to come.

    New Contributors

    • @nebulade made their first contribution in https://github.com/immich-app/immich/pull/759

    Full Changelog: https://github.com/immich-app/immich/compare/v1.29.6_45-dev...v1.30.0_46-dev

    Source code(tar.gz)
    Source code(zip)
    v1.30.0_46-dev.apk(54.01 MB)
  • v1.29.6_45-dev(Sep 28, 2022)

    v1.29.6_45-dev

    This release introduces many QoS improvements including correctly infer time based on timezone, removing MapBox dependency and some UI fix on the web.

    What's Changed

    • fix(server,mobile): Incorrectly record/display timestamp and time zone of the asset by @alextran1502 in https://github.com/immich-app/immich/pull/706
    • feat(server) Remove mapbox and use local reverse geocoding by @zackpollard in https://github.com/immich-app/immich/pull/738
    • fix(server): handle missing reverse geocoding admin zones by @zackpollard in https://github.com/immich-app/immich/pull/742
    • fix(web) navigating forward button get in the way of video control bar by @alextran1502 in https://github.com/immich-app/immich/pull/744
    • fix(machine-learning) Remove unsused database config by @alextran1502 in https://github.com/immich-app/immich/pull/745
    • feat(server): support .NEF file by @alextran1502 in https://github.com/immich-app/immich/pull/746
    • feat(server): missing exif extract nightly task by @zackpollard in https://github.com/immich-app/immich/pull/754

    Full Changelog: https://github.com/immich-app/immich/compare/v1.29.5_44-dev...v1.29.6_44-dev

    Source code(tar.gz)
    Source code(zip)
  • v1.29.5_44-dev(Sep 22, 2022)

    What's Changed

    • Only run scheduled geocoding task once per day by @bo0tzz in https://github.com/immich-app/immich/pull/730

    Full Changelog: https://github.com/immich-app/immich/compare/v1.29.4_44-dev...v1.29.5_44-dev

    Source code(tar.gz)
    Source code(zip)
  • v1.29.4_44-dev(Sep 19, 2022)

    What's Changed

    • fix(mobile): app crash when there is no object detection result on search page by @alextran1502 in https://github.com/immich-app/immich/pull/725

    Full Changelog: https://github.com/immich-app/immich/compare/v1.29.3_43-dev...v1.29.4_44-dev

    Source code(tar.gz)
    Source code(zip)
  • v1.29.3_43-dev(Sep 19, 2022)

    Hotfix

    Fix error with the API to get asset on the device returning only image, photo is omtted.

    What changed

    • fix(server): query only image when get asset on device by @alextran1502 in https://github.com/immich-app/immich/pull/724

    Full Changelog: https://github.com/immich-app/immich/compare/v1.29.2_43-dev...v1.29.3_43-dev

    Source code(tar.gz)
    Source code(zip)
  • v1.29.2_43-dev(Sep 19, 2022)

    What's Changed

    • fix(server): sanitization error that crash the server by @alextran1502 in https://github.com/immich-app/immich/pull/721

    Full Changelog: https://github.com/immich-app/immich/compare/v1.29.1_43-dev...v1.29.2_43-dev

    Source code(tar.gz)
    Source code(zip)
  • v1.29.1_43-dev(Sep 18, 2022)

    Security Patch

    ⚠ī¸ This release include security fixes for the server. It is highly recommended to update all instance to this version ASAP

    What's Changed

    • fix(readme) typo by @JaCoB1123 in https://github.com/immich-app/immich/pull/699
    • fix(mobile): Fixed iOS 16 overflow cache and memory leaked in gallery viewer. by @alextran1502 in https://github.com/immich-app/immich/pull/700
    • test(web) Add tests for asset repository by @alextran1502 in https://github.com/immich-app/immich/pull/680
    • feat(web) Remove fetching fonts from GoogleFonts by @alextran1502 in https://github.com/immich-app/immich/pull/703
    • feat(web): Update to latest version of SvelteKit by @alextran1502 in https://github.com/immich-app/immich/pull/705
    • feat(repo): added SECURITY.md by @JamieSlome in https://github.com/immich-app/immich/pull/712
    • fix(server): correct user permission to update user info by @alextran1502 in https://github.com/immich-app/immich/pull/716
    • feat(server): sanitized path for asset creation process to avoid security risk by @alextran1502 in https://github.com/immich-app/immich/pull/717
    • fix(mobile): update deprecated API that cause background upload notification not dismissing.

    New Contributors

    • @JaCoB1123 made their first contribution in https://github.com/immich-app/immich/pull/699
    • @JamieSlome made their first contribution in https://github.com/immich-app/immich/pull/712

    Full Changelog: https://github.com/immich-app/immich/compare/v1.29.0_42-dev...v1.29.1_42-dev

    Source code(tar.gz)
    Source code(zip)
  • v1.29.0_42-dev(Sep 14, 2022)

    Breaking change

    #651 Breaking Change immich-proxy switched from using port 80 which was used inside of the container to 8080 to drop dependency on a privileged user inside the container. This reduces a potential security risk of someone being able to impersonate that user on the host.

    As a result you will need to change your docker-compose.yaml to reflect this change, by changing the port-binding from

      immich-proxy:
        container_name: immich_proxy
        image: altran1502/immich-proxy:release
        ports:
          - 2283:80
    

    to

      immich-proxy:
        container_name: immich_proxy
        image: altran1502/immich-proxy:release
        ports:
          - 2283:8080
    

    a full example of the always-up-to-date docker-compose.yaml can be found in our repo

    What's Changed

    • feat(readme) add app store links by @tennox in https://github.com/immich-app/immich/pull/689
    • fix(mobile): Android BackgroundServiceStartNotAllowedException by @zoodyy in https://github.com/immich-app/immich/pull/687
    • fix(server): mismatch createdAt value in exif table and asset table by @alextran1502 in https://github.com/immich-app/immich/pull/688
    • feat(setup): use non-root image for immich-proxy by @PixelJonas in https://github.com/immich-app/immich/pull/651
    • feat(readme) by @beune in https://github.com/immich-app/immich/pull/690
    • fix(mobile) cache read write error on iOS 16 by @alextran1502 in https://github.com/immich-app/immich/pull/691
    • fix(setup): revert nginx image to support arm/v7 by @PixelJonas in https://github.com/immich-app/immich/pull/692

    New Contributors

    • @tennox made their first contribution in https://github.com/immich-app/immich/pull/689
    • @PixelJonas made their first contribution in https://github.com/immich-app/immich/pull/651
    • @beune made their first contribution in https://github.com/immich-app/immich/pull/690

    Full Changelog: https://github.com/immich-app/immich/compare/v1.28.4_41-dev...v1.29.0_42-dev

    Source code(tar.gz)
    Source code(zip)
  • v1.28.4_41-dev(Sep 13, 2022)

    There is no mobile release for this version

    What's Changed

    • fix(web): datetime display and add TZ into environment by @panoti in https://github.com/immich-app/immich/pull/618
    • fix(server): remove album thumbnail when the asset is deleted from the database by @alextran1502 in https://github.com/immich-app/immich/pull/681
    • fix(server): harden inserting process, healing datetime info to insert to database by @alextran1502 in https://github.com/immich-app/immich/pull/682
    • feat(server): add additional logging level by @alextran1502 in https://github.com/immich-app/immich/pull/685

    Full Changelog: https://github.com/immich-app/immich/compare/v1.28.3_41-dev...v1.28.4_41-dev

    Source code(tar.gz)
    Source code(zip)
  • v1.28.3_41-dev(Sep 11, 2022)

    What's Changed

    • Fix(mobile) oversize play button by @alextran1502 in https://github.com/immich-app/immich/pull/672
    • fix(mobile) memory leaked causes app to crash when swiping by @alextran1502 in https://github.com/immich-app/immich/pull/673
    • fix(web) incorrect shared album count by @alextran1502 in https://github.com/immich-app/immich/pull/677

    Full Changelog: https://github.com/immich-app/immich/compare/v1.28.2_40-dev...v1.28.3_41-dev

    Source code(tar.gz)
    Source code(zip)
  • v1.28.2_40-dev(Sep 10, 2022)

    What's Changed

    • fix(mobile): Background backup not running in release mode by @alextran1502 in https://github.com/immich-app/immich/pull/664
    • fix(install): Fix checking for docker compose. by @brettp in https://github.com/immich-app/immich/pull/663
    • fix(server): loop on checksum generation by @panoti in https://github.com/immich-app/immich/pull/662

    New Contributors

    • @brettp made their first contribution in https://github.com/immich-app/immich/pull/663

    Full Changelog: https://github.com/immich-app/immich/compare/v1.28.1_39-dev...v1.28.2_40-dev

    Source code(tar.gz)
    Source code(zip)
    v1.28.2_40-dev.apk(53.83 MB)
Owner
Immich
Self-hosted backup solution for your mobile device
Immich
The FlexGrid control provides a powerful and quickly way to display data in a tabular format. It is including that frozened column/row,loading more, high performance and better experience in TabBarView/PageView.

flex_grid Language: English| 中文įŽ€äŊ“ The FlexGrid control provides a powerful and quickly way to display data in a tabular format. It is including that f

FlutterCandies 39 Nov 8, 2022
Generate a new file by compressed video, and provide metadata. Get video thumbnail from a video path, supports JPEG/GIF. To reduce app size not using FFmpeg in IOS.

flutter_video_compress Generate a new path by compressed video, Choose to keep the source video or delete it by a parameter. Get video thumbnail from

夊æĩˇã‚‹ã‚Š 179 Dec 8, 2022
This is the repository to store the course content and assignments pertaining to Flutter Summer Group hosted by CRUx in 2021 Summer

Flutter Summer Group 2021 This is the official repository for Flutter Summer Group hosted by cruX, and all the course content along with assignments w

Sai Ankit 47 Dec 4, 2022
Real short video app with firebase and pixels API.Where you can create a short video with pixels' stock videos and also merge your audio.

Flutter Short Videos Platform Short videos platform with Flutter and Firebase. About Real short video app with firebase and pixels API.Where you can c

Ansh rathod 55 Dec 26, 2022
Amir Khan 47 Jan 8, 2023
Android app to show movie ratings when browsing Netflix, Amazon Prime Video and other supported video streaming apps on the phone

Flutter - Movie Ratings You can get the latest Playstore version here on Playstore - or download directly - 0.4.5 Screenshots of master Search Page Fa

Jay Rambhia 71 Nov 23, 2022
Video player-2.2.10 - A Flutter plugin for iOS, Android and Web for playing back video on a Widget surface

Video Player plugin for Flutter A Flutter plugin for iOS, Android and Web for pl

null 2 Sep 29, 2022
Fluffyboard is a open source, free and self-hostable Whiteboard Application

Fluffyboard Fluffyboard is a open source, free and self-hostable Whiteboard Application Test the demonstration of Fluffyboard Table of Contents Featur

Yonggan 59 Dec 13, 2022
Instagram is a free, online photo-sharing application and social network platform

Instagram is a free, online photo-sharing application and social network platform that was acquired by Facebook in 2012. Instagram allows users to edit and upload photos and short videos through a mobile app.

Behruz Hurramov 4 Dec 6, 2022
This app is used to download whatsapp status photo and videos

This app is used to download whatsapp status photo and videos. you can upload this app in playstore as well. there are lot's of application available like WhatsApp Story Saver, Story Downloader for whatsapp.

Akram Chauhan 51 Nov 28, 2022
YoYo Video Player is a HLS(.m3u8) video player for flutter.

YoYo Video Player YoYo Video Player is a HLS(.m3u8) video player for flutter. The video_player is a video player that allows you to select HLS video s

Ko Htut 89 Dec 23, 2022
Munem Sarker 1 Jan 25, 2022
A new Flutter Application to control self build lamps for my personal use.

A new Flutter Application to control self build lamps for my personal use. You need extra hardware & software for getting this project running. This is just the code of the App.

null 1 Mar 2, 2022
A flutter app to generate beautiful, high-quality screenshots of tweets from twitter.

tweet_png A flutter app to generate beautiful, high-quality screenshots of tweets from twitter. Follow on Instagram for more using the app get your tw

Ananthu P Kanive 51 Sep 23, 2022
Plant-Disease-Detector - A Flutter app that detects a plant's disease given a photo of an affected part of the plant

Plant Disease Detector A Flutter app that detects a plant's disease given a phot

suis458 5 Dec 14, 2022
Dart package to rank proposals according to Majority Judgment, using a score-based algorithm for performance and scalability

Majority Judgment for Dart This Dart package helps to resolve polls using Majority Judgment. Features Efficient Majority Judgment algorithm, scales we

Mieux Voter 1 Oct 18, 2021
Comparing performance of sqlite3 and sqflite

FlutterSqliteComparison Comparing the performance of two different sqlite libraries by INSERTing 10000 rows one-by-one and then SELECTing all rows in

Bryan Oltman 0 Jan 7, 2022
Health Performance Monitor ui design in a neomorphism style.

Health Performance Monitor UI Health Performance Monitor ui design in a neomorphism effect built using Flutter. Show some ❤ī¸ and star the repo, it mak

Roshini Mahendran 11 Jun 17, 2022
Plaso Connect is an application which acts as a one-stop solution where the people requiring blood plasma/oxygen can directly find and contact the donors and healthcare units as per their requirements

PLASO CONNECT - The Lifeline A one-stop platform for COVID relief resources -- Connecting patients with Plasma donors and oxygen suppliers. Built for

Niloy Sikdar 11 Oct 28, 2022