immichFrame / ImmichFrame

GNU General Public License v3.0
317 stars 18 forks source link

Contributors Forks Stargazers Issues MIT License


Logo

ImmichFrame

An awesome way to display your photos as an digital photo frame
Explore immich »

Report Bug · Request Feature

⚠️ Disclaimer

This project is not affiliated with immich!

About The Project

This project is a digital photo frame application that interfaces with your immich server. It is a cross-platform C# .NET 8 project that currently supports Android, Linux, macOS, and Windows.

Built With

✨ Demo

Screenshot 2024-03-28 at 10 10 04 AM

Getting Started

ImmichFrame is easy to run on your desired plattform. Get the latest stable release from the release page and unzip to desired folder (Linux, macOS, Windows), or install APK (Android).

[!TIP] The Android-Version of ImmichFrame is available on the Google Play Store. Download it via the store for automatic updates.

Prerequisites

Usage

Docker (WebApp)

Compose

name: immichframe
services:
  immichframe:
    container_name: immichframe
    image: ghcr.io/immichframe/immichframe:main
    restart: on-failure
    volumes:
      - PATH/TO/CONFIG:/app/Config
    ports:
      - "8080:8080"
    environment:
      TZ: "Europe/Berlin"

Docker Run

docker run -td \
  --name immichFrame \
  --restart on-failure \
  -v PATH/TO/CONFIG:/app/Config \
  -p 8080:8080 \
  -e TZ="Europe/Berlin" \
  ghcr.io/immichframe/immichframe:main

Linux

Autostart on Raspberry Pi OS

The latest Raspberry Pi OS, Bookworm uses Wayland as default, but also includes X11. The following assumes standard user is pi and you are working on a fresh install of "Raspberry Pi OS with desktop". To autostart ImmichFrame in Wayland, run nano /home/pi/.config/wayfire.ini in terminal, to add the following at the end.

[autostart]
immichframe=/home/pi/{dir with Immich_Frame}/Immich_Frame

Wayland does not have an easy way to hide the cursor. If you want that, then change to X11 as the default desktop session through running sudo raspi-config in terminal, then Advanced Options → Wayland → X11. Then install unclutter:

sudo apt install -y unclutter-xfixes

After this, copy the default autostart file to your home folder and add a line to enable autostart, by running the following in terminal:

cp /etc/xdg/lxsession/LXDE-pi/autostart /home/pi/.config/lxsession/LXDE-pi/autostart
echo "@/home/pi/{dir with Immich_Frame}/Immich_Frame" > sudo tee /home/pi/.config/lxsession/LXDE-pi/autostart

Windows

MacOS

Android Screensaver

Android TV Screensaver

Settings

There are two options for configuring ImmichFrame; Settings.json (Linux, macOS, Windows), or a GUI based settings screen (all platforms).

Settings.json

[!IMPORTANT]
Make sure to copy the Settings.example.json and name it Settings.json.

  1. Rename the Settings.example.json file to Settings.json

  2. Change ImmichServerUrl to your domain or local ip

    "ImmichServerUrl": "http://yourdomain.com",
    or
    "ImmichServerUrl": "192.168.0.100:2283",
  3. Change ApiKey. Read more about how to obtain an immich API key

    "ApiKey": "YourApiKey",
  4. Optional: Choose albums you would like to display

    "Albums": ["First Album UID","Second Album UID"],

    [!TIP]
    You can get the Album UID from the URL of the album. For this URL: https://demo.immich.app/albums/85c85b29-c95d-4a8b-90f7-c87da1d518ba this is the UID: 85c85b29-c95d-4a8b-90f7-c87da1d518ba

  5. Optional: Choose people you would like to display

    "People": ["First Person UID","Second Person UID"],

    [!TIP]
    You can get the Person UID from the URL of the person. For this URL: https://demo.immich.app/people/faff4d55-e859-4f6c-ae34-80f14da486c7 this is the UID: faff4d55-e859-4f6c-ae34-80f14da486c7

  6. Optional: Weather is enabled by entering an API key. Get yours free from OpenWeatherMap

    "WeatherApiKey": "YourApiKey",
    "WeatherLatLong": "YourLatitude,YourLongitude",
  1. Adjust other settings to your needs

Settings GUI

The same information as in Settings.json will be enterred from this screen. Can be enterred at any time by clicking the upper middle quadrant of the screen (or Up arrow key), see Interactions section. Settings can also be backup/restored from here.

Interactions

Touch/Mouse

The screen is configured in a 3x3 gird. You can touch or click:

- Settings -
Prev
image
Pause Next
image
- Quit -

Keyboard:

Settings - Up arrow
Quit - Down arrow
Prev Image - Left arrow
Next Image - Right arrow
Pause - Enter/Return

Roadmap

See the open issues for a full list of proposed features (and known issues).

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

GNU General Public License v3.0

Help

Discord Channel

Acknowledgments

Star History

Star History Chart