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:

    [email protected]:~/immich/immich-1.4.0-dev# ls -l /mnt/data/Immich/
    total 0
    
    [email protected]:~/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:

    [email protected]:~/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 ItsMeAPizza 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
  • [Feature]: Select images in Immich using native system tools

    [Feature]: Select images in Immich using native system tools

    Feature detail

    Ability to select photos from Immich to use on the device, e.g. composing a tweet in Android I can go to "More..." and select Dropbox, Nextcloud, Seafile etc.

    Alternatively have the Immich images show up as a system folder so I could select them using Files/3rd party file explorer?

    Platform

    Mobile App

    feature 
    opened by gh3597 0
  • [BUG][WEB][CLI] <Uploads of large mp4 vidos (~150+ mb) refuse to upload>

    [BUG][WEB][CLI]

    Describe the bug When uploading videos via the CLI or WEB, all videos that are 150+ mb in size refuse to upload, citing an error: "ERROR Cannot upload file xxx.mp4 undefinedundefined."

    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.

    To Reproduce Steps to reproduce the behavior:

    1. Upload a large .mp4 video file to an album directly using either the CLI tool or web interface.
    2. Allow the upload attempt to complete.
    3. See error.

    Expected behavior A normal upload of the video file as with the auto backup from my Android phone.

    Screenshots If applicable, add screenshots to help explain your problem.

    System

    • Android: v12
    • Server Version: 1.35
    • Mobile App Version: 1.35 build.54

    Additional context docker-compose.txt env.txt

    I've tried uploading via the web using the local IP:port combo, as well as using my Tailscale VPN IP:port combo. Same result.

    bug need triage 
    opened by darrylgibbs 1
  • [Feature]: Limit the use of storage space per account

    [Feature]: Limit the use of storage space per account

    Feature detail

    I just found this project looking for a solution to share a storage space with a friend. The thing is that I would like to limit the amount of storage we can use to divide it fairly.

    So I propose to create two types of users, a group that is the โ€œusersโ€ group and where right now appears the server space, it shows its used and remaining storage. And another group that is the โ€œadministratorsโ€ group that shows the server space and also their used and remaining storage.

    I think this can help many people who want to share a storage space with several people.

    Platform

    Server

    feature need triage 
    opened by DVerdeV 0
  • [Feature]: UX improvements in albums

    [Feature]: UX improvements in albums

    Feature detail

    Here are some of the things that might significantly improve the user experience while using albums:

    • Ability to merge albums
    • Move images in a particular album to another album
    • Ability to hide particular images while sharing
    • Ability to screenshot a scene from a video and set it as the album cover
    • Sharing an album publicly
    • Add a description to album
    • Select all button while selecting images in an album

    If the aforementioned features seem interesting, then we can create sub-issues.

    Platform

    Web

    feature 
    opened by rounakdatta 1
  • Installation instructions should refer to latest release branch instead of main

    Installation instructions should refer to latest release branch instead of main

    Currently, installation instructions such as https://immich.app/docs/installation/recommended-installation refer to the main branch for the location from which to download things like the docker-compose.yml:

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

    This results in people downloading deployment configurations that do not have a matching container release yet. Instead, we should keep a release git tag, similar and matching to the release docker container label that we have.

    documentation deployment 
    opened by bo0tzz 1
Releases(v1.36.0_55-dev)
  • 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

    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)
  • v1.28.1_39-dev(Sep 10, 2022)

    What's Changed

    Mobile

    • feat(mobile) improve Android background service reliability by @zoodyy in https://github.com/immich-app/immich/pull/603

    Web

    • feat(web) add all server checks to CI - fix lint issues by @jbaez in https://github.com/immich-app/immich/pull/633
    • feat(web) add web UI components tests setup by @jbaez in https://github.com/immich-app/immich/pull/612
    • feat(web) add web test / check commands and workflow to run in CI by @jbaez in https://github.com/immich-app/immich/pull/642
    • fix(web) fix Notification components possible memory leaks by @jbaez in https://github.com/immich-app/immich/pull/650
    • feat(web) add scrollbar with timeline information by @alextran1502 in https://github.com/immich-app/immich/pull/658

    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.

    F-Droid

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

    Get it on F-Droid

    Android

    You can also download the app from Google Play Store here

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

    iOS

    You can download the app from Apple AppStore here:

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

    Cheers! ๐ŸŽ‰

    Full Changelog: https://github.com/immich-app/immich/compare/v1.28.0_38-dev...v1.29.0_39-dev

    Source code(tar.gz)
    Source code(zip)
  • v1.28.0_38-dev(Sep 7, 2022)

    What's Changed

    • Update README.md by @godismyjudge95 in https://github.com/immich-app/immich/pull/599
    • fix(mobile): remove empty translations by @bo0tzz in https://github.com/immich-app/immich/pull/620
    • fix(mobile): search page crashes the app on some Android models by @alextran1502 in https://github.com/immich-app/immich/pull/610
    • fix(web): add scroll bar into detail panel by @panoti in https://github.com/immich-app/immich/pull/615
    • feat(web): add asset and album count info by @alextran1502 in https://github.com/immich-app/immich/pull/623
    • feat(web): add web test setup by @jbaez in https://github.com/immich-app/immich/pull/597
    • fix(web): stop showing version announcement on the first run of a new web instance by @alextran1502 in https://github.com/immich-app/immich/pull/609

    New Contributors

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

    Full Changelog: https://github.com/immich-app/immich/compare/v1.27.0_37-dev...v1.28.0_38-dev

    Source code(tar.gz)
    Source code(zip)
  • v1.27.0_37-dev(Sep 6, 2022)

    Highlighted

    Deduplication

    I want to extend my thanks to @panoti. He has single-handled implemented the deduplication and hash calculation after a long period of investigating and discussing with the internal team. We can now rest assured that no duplicated photos or videos will be in the system simultaneously.

    Virtual Scrolling - Web

    virtualscroll Test instance of about 15_000 photos and videos - Should behave similarly on 100_000 assets instance

    With the increasing number of users, we have many cases that currently have more than 100_000 photos and images combined in their gallery. With the current implementation of naively getting all the photos and video metadata and then painting them on the screen, the browser, of course, will crash, and the initial load time will be a century long. Itchy to solve this scaling problem, and with a nice pointer from the Google UI Designer himself in the article Building the Google Photos Web UI, we now have virtual scrolling on the web.

    The implementation is exactly similar to how the article presented it. All of the photos and videos that are not in the viewport are not rendered. This helps reduce the browser's resource usage and reduces the initial load time as in you only have a dozen photos and videos in the database.

    I sincerely hope you guys find this feature enjoyable.

    PS: Firefox is currently performing better than Chrome for this feature. Other optimization of this feature will be pushed out in the upcoming releases.

    Better caching system - Mobile

    The web has virtual scrolling. What about the mobile app?

    The mobile app has been handling many assets very well with the help of Flutterโ€™s rendering engine, which is somewhat smarter than the web. For this release, we are pushing out a mechanism for you to manage the caching of the assets. The cache thumbnail and assets content will be saved to the local storage to improve the loading time.

    We eventually will want to implement some mechanisms that are similar to virtual scrolling on the web in the mobile app as well to reduce initial data load time.

    What's Changed

    Server

    Mobile

    Web

    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.

    F-Droid

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

    Get it on F-Droid

    Android

    You can also download the app from Google Play Store here

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

    iOS

    You can download the app from Apple AppStore here:

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

    Cheers! ๐ŸŽ‰

    New Contributors

    Full Changelog: https://github.com/immich-app/immich/compare/v1.26.0_36-dev...v1.27.0_37-dev

    Source code(tar.gz)
    Source code(zip)
    v1.27.0_37-dev.apk(24.73 MB)
  • v1.26.0_36-dev(Aug 26, 2022)

    What's Changed

    Server

    • Feature - Support tiff uploading by @panoti in https://github.com/immich-app/immich/pull/513
    • Refactor - move constants into the shared library by @panoti in https://github.com/immich-app/immich/pull/522
    • Fixed - Large file size cannot be saved to EXIF table due to incorrect data type (integer vs bigint) in the Exif table by @alextran1502 in https://github.com/immich-app/immich/pull/534

    Mobile

    • Added dutch translation for Immich by @nicodier in https://github.com/immich-app/immich/pull/519
    • Fixed - Mobile timeline crash when date group cannot be parsed by @alextran1502 in https://github.com/immich-app/immich/pull/530

    Web

    • Feature - Video player is buffered for faster startup time and reduces network usage by @panoti in https://github.com/immich-app/immich/pull/520
    • Fixed - Skipping assets when navigating with the keyboard by @alextran1502 in https://github.com/immich-app/immich/pull/531
    • Migrate SvelteKit to the latest version 431 by @alextran1502 in https://github.com/immich-app/immich/pull/526
    • Fixed - Show the first two letter of user first and last name when profile image not existed by @alextran1502 in https://github.com/immich-app/immich/pull/532
    • Feature - Implemented notification box for web by @alextran1502 in https://github.com/immich-app/immich/pull/533
    • Fixed - Limit number of file upload on web by @alextran1502 in https://github.com/immich-app/immich/pull/535
    • Optimization - Added error handling notification by @alextran1502 in https://github.com/immich-app/immich/pull/536

    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.

    F-Droid

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

    Get it on F-Droid

    Android

    You can also download the app from Google Play Store here

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

    iOS

    You can download the app from Apple AppStore here:

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

    Cheers! ๐ŸŽ‰

    New Contributors

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

    Full Changelog: https://github.com/immich-app/immich/compare/v1.25.0_35-dev...v1.26.0_36-dev

    Source code(tar.gz)
    Source code(zip)
    v1.26.0_36-dev.apk(24.93 MB)
  • v1.25.0_35-dev(Aug 21, 2022)

    What's Changed

    Server

    • Fixed - Removed albumThumbnailAssetId when the album is empty by @panoti in https://github.com/immich-app/immich/pull/495
    • Feature - Added x-adobe-dng to supported mime type by @alextran1502 in https://github.com/immich-app/immich/pull/504
    • Feature - Preserve caption fields and extract MediaInfo for video by @panoti in https://github.com/immich-app/immich/pull/505
    • Optimization - Minimize containers' size by @panoti in https://github.com/immich-app/immich/pull/506

    Mobile

    • Added pt-BR Translation: Translation into Portuguese Brazil. by @owmsoton in https://github.com/immich-app/immich/pull/500
    • Feature - Customization options for asset grid by @matthinc in https://github.com/immich-app/immich/pull/498
    • Feature - Show notifications on background backup errors by @zoodyy in https://github.com/immich-app/immich/pull/496
    • Optimization - Use CachedNetworkImage and separate cache for thumbnails on library page by @matthinc in https://github.com/immich-app/immich/pull/509

    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.

    F-Droid

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

    Get it on F-Droid

    Android

    You can also download the app from Google Play Store here

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

    iOS

    You can download the app from Apple AppStore here:

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

    Cheers! ๐ŸŽ‰

    New Contributors

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

    Full Changelog: https://github.com/immich-app/immich/compare/v1.24.0_34-dev...v1.25.0_35-dev

    Source code(tar.gz)
    Source code(zip)
    v1.25.0_35-dev.apk(24.93 MB)
  • v1.24.0_34-dev(Aug 18, 2022)

    Highlighted

    Big thanks to @zoodyy for his implementation of background backup on Android. When enabling this option, you can upload the newly taken photo and video while Immich is in the background. Please help us test and give feedback of this feature.

    We are looking to implement the same feature on iOS soon.

    What's Changed

    Mobile

    • Fixed - Dark mode not auto switch on iOS by @alextran1502 in https://github.com/immich-app/immich/pull/475
    • Fixed - WebSocket not getting correct data on mobile by @alextran1502 in https://github.com/immich-app/immich/pull/476
    • Updated German translation @MalteKiefer in https://github.com/immich-app/immich/pull/478
    • [Android only] background backup by @zoodyy in https://github.com/immich-app/immich/pull/382

    Server

    • Fixed - Delete Webp thumbnail upon asset deletion @panoti in https://github.com/immich-app/immich/pull/489
    • Feature: Added bull queue prefix by @panoti in https://github.com/immich-app/immich/pull/490

    Chores

    • Fixed - Spelling mistakes by @ImMaxUK in https://github.com/immich-app/immich/pull/479
    • Readme redistribution and reorganization by @r3nor in https://github.com/immich-app/immich/pull/485

    New Contributors

    • @ImMaxUK made their first contribution in https://github.com/immich-app/immich/pull/479
    • @panoti made their first contribution in https://github.com/immich-app/immich/pull/490
    • @r3nor made their first contribution in https://github.com/immich-app/immich/pull/485

    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.

    F-Droid

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

    Get it on F-Droid

    Android

    You can also download the app from Google Play Store here

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

    iOS

    You can download the app from Apple AppStore here:

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

    Cheers! ๐ŸŽ‰

    Source code(tar.gz)
    Source code(zip)
    v1.24.0_34-dev.apk(24.83 MB)
  • v1.23.0_33-dev(Aug 16, 2022)

    What's Changed

    • Fix 405 - Implemented Webp upload on the web by @alextran1502 in https://github.com/immich-app/immich/pull/460
    • Fix redirect to login page after password change by @bo0tzz in https://github.com/immich-app/immich/pull/461
    • Add settings screen on mobile by @alextran1502 in https://github.com/immich-app/immich/pull/463
    • Add mobile dark mode and user setting by @alextran1502 in https://github.com/immich-app/immich/pull/468
    • Fixed different letter cases in the email address would create a different user by @alextran1502 in https://github.com/immich-app/immich/pull/470

    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.

    F-Droid

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

    Get it on F-Droid

    Android

    You can also download the app from Google Play Store here

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

    iOS

    You can download the app from Apple AppStore here:

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

    Cheers! ๐ŸŽ‰

    Source code(tar.gz)
    Source code(zip)
    v1.23.0_33-dev.apk(24.59 MB)
  • v1.22.0_32-dev(Aug 13, 2022)

    What's Changed

    • Modify Album API endpoint to return a count attribute instead of a full assets array by @alextran1502 in https://github.com/immich-app/immich/pull/454
    • Fix sharing on iPad by @matthinc in https://github.com/immich-app/immich/pull/453
    • Edit user on the web by @alextran1502 in https://github.com/immich-app/immich/pull/458

    New Contributors

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

    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.

    F-Droid

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

    Get it on F-Droid

    Android

    You can also download the app from Google Play Store here

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

    iOS

    You can download the app from Apple AppStore here:

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

    Cheers! ๐ŸŽ‰

    Source code(tar.gz)
    Source code(zip)
    v1.22.0_32-dev.apk(24.48 MB)
  • v1.21.1_31-dev(Aug 10, 2022)

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

ๅคฉๆตทใ‚‹ใ‚Š 176 Nov 1, 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 Sep 29, 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 52 Nov 23, 2022
Amir Khan 43 Nov 10, 2022
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 72 Sep 6, 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 54 Nov 18, 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 Nov 20, 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
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 3 Jan 17, 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 49 Oct 10, 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
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 6 Nov 21, 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