Tip
Try out the ImmichFrame demo here!
Note
Instructions how to install ImmichFrame can be found here!
An awesome way to display your photos as an digital photo frame
Explore immich Β»
Report Bug
Β·
Request Feature
This project is not affiliated with immich!
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.
Visit the online demo
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).
- A set up and functioning immich server that is accessible by the network of the ImmichFrame device.
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. |
Filtering | ImagesFromDays | int | Show images from the last X days. e.g 365 -> show images from the last year | |
Filtering | ImagesFromDate | Date | Show images after date. Overwrites the ImagesFromDays -Setting |
|
Filtering | ImagesUntilDate | Date | Show images before date. | |
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 | Webcalendars | 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 | ShowPeopleDesc | boolean | true | Displays a comma separated list of names of all the people that are assigned in immich. |
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. See here for more information. |
UI | PrimaryColor | string | #f5deb3 | Lets you choose a primary color for your UI. Use hex with alpha value to edit opacity. |
UI | SecondaryColor | string | #000000 | Lets you choose a secondary color for your UI. (Only used with style=solid or transition ) Use hex with alpha value to edit opacity. |
UI | Style | none | solid | transition | blur | none | Background-style of the clock and metadata. |
UI | Layout | single | splitview | splitview | Allow two portrait images to be displayed next to each other |
UI | BaseFontSize | string | 17px | Sets the base font size, uses standard CSS formats. |
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 |
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 is enabled by entering an API key. Get yours free from OpenWeatherMap
If you are using Google Calendar, more information can be found here.
Needs documentation
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.
A client can be identified by the ClientIdentifier
. You can set/overwrite the ClientIdentifier
by adding ?client=MyClient
to your ImmichFrame-URL. This only needs to be called once and is persisted. Delete the cache to reset the ClientIdentifier
.
Events will always contain a Name
, ClientIdentifier
and a DateTime
to differentiate, but can contain more information.
Event | Description | Payload |
---|---|---|
ImageRequestedNotification | Notifies, when a Image requested. | {"Name":"ImageRequestedNotification", "ClientIdentifier": "Frame_Kitchen", "DateTime":"2024-11-16T21:37:19.4933981+01:00", "RequestedImageId":"UUID"} |
- 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).
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!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
GNU General Public License v3.0
- BIG thanks to the immich team for creating an awesome tool