Skip to content

immichFrame/ImmichFrame

Repository files navigation

Contributors Forks Stargazers Issues MIT License

Note

Instructions how to install ImmichFrame can be found here!


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.

✨ Demo

Web Demo

Web Demo

🚀 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).

📋 Prerequisites

  • A set up and functioning immich server that is accessible by the network of the ImmichFrame device.

🔧 Usage / Installation

🌐 Browser

💻 Windows, Linux, MacOS, Android

⚙️ Configuration

Section Config-Key Value Default Description
Required ImmichServerUrl string The URL of your Immich server e.g. http://photos.yourdomain.com / http://192.168.0.100:2283.
Required ApiKey string Read more about how to obtain an immich API key.
Filtering Albums string[] [] UUID of album(s)
Filtering ExcludedAlbums string[] [] UUID of excluded album(s)
Filtering People string[] [] UUID of person(s)
Filtering ShowMemories boolean false If this is set, memories are displayed.
Caching RenewImagesDuration int 30 Interval in days.
Caching DownloadImages boolean false *Client only.
Caching RefreshAlbumPeopleInterval int 12 Interval in hours. Determines how often images are pulled from a person in immich.
Image ImageZoom boolean true Zooms into or out of an image and gives it a touch of life.
Image Interval int 45 Image interval in seconds. How long a image is displayed in the frame.
Image TransitionDuration float 2 Duration in seconds.
Weather WeatherApiKey string Get api-key: OpenWeatherMap.
Weather UnitSystem imperial | metric imperial Imperial or metric system. (Fahrenheit or degrees)
Weather Language string en 2 digit ISO code, sets the language of the weather description.
Weather ShowWeatherDescription boolean true Displays the description of the current weather.
Weather WeatherLatLong boolean 40.730610,-73.935242 Set the weather location with lat/lon.
Clock ShowClock boolean true Displays the current time.
Clock ClockFormat string hh:mm Time format.
Calendar Webcalendar string[] [] A list of webcalendar URIs in the .ics format. e.g. https://calendar.google.com/calendar/ical/XXXXXX/public/basic.ics
Metadata ShowImageDesc boolean true Displays the description of the current image.
Metadata ShowImageLocation boolean true Displays the location of the current image.
Metadata ImageLocationFormat string City,State,Country
Metadata ShowPhotoDate boolean true Displays the date of the current image.
Metadata PhotoDateFormat string yyyy-MM-dd Date format.
UI FontColor string #FFFFFF Lets you choose a primary color for your UI.
UI Layout single | splitview splitview Allow two portrait images to be displayed next to each other
Misc ImmichFrameAlbumName string *Client only. Creates album and stores last 100 photos displayed.
Misc Webhook string Webhook URL to be notified e.g. http://example.com/notify

Filtering

You can get the UUIDs from the URL of the album/person. For this URL: https://demo.immich.app/albums/85c85b29-c95d-4a8b-90f7-c87da1d518ba this is the UUID: 85c85b29-c95d-4a8b-90f7-c87da1d518ba

Weather

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

Calendar

If you are using Google Calendar, more information can be found here.

Metadata

Needs documentation

Misc

Webhook

A webhook to notify an external service is available. This is only enabled when the Webhook-Setting is set in your configuration. Your configured Webhook will be notified via HTTP POST-request.

Events

Events will always contain a Name and a DateTime to differentiate, but can contain more information.

Event Description Payload
ImageRequestedNotification Notifies, when a Image requested. {"Name":"ImageRequestedNotification", "DateTime":"2024-11-16T21:37:19.4933981+01:00", "RequestedImageId":"UUID"}

🛣️ Roadmap

  • Display random assets
  • Display Albums
  • Display Memories
  • Android build
  • Add License
  • Web app
  • Add Additional Templates w/ Examples

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

  • BIG thanks to the immich team for creating an awesome tool

🌟 Star History

Star History Chart