Immich Kiosk is a lightweight slideshow for running on kiosk devices and browsers that uses Immich as a data source.
Important
This project is not affiliated with Immich
If this project has been helpful to you and you wish to support me, you can do so with the button below 🙂.
If you have found a bug or have an issue you can submit it here.
If you'd like to chat or need some informal help, feel free to find me in the Kiosk channel on the Immich discord server.
This section is used to generate the UnRaid template.
yaml | ENV | Value | Default | Description |
---|---|---|---|---|
immich_api_key | KIOSK_IMMICH_API_KEY | string | "" | The API for your Immich server. |
immich_url | KIOSK_IMMICH_URL | string | "" | The URL of your Immich server. MUST include a port if one is needed e.g. http://192.168.1.123:2283 . |
immich_external_url | KIOSK_IMMICH_EXTERNAL_URL | string | "" | The public URL of your Immich server used for generating links and QR codes in the additional information overlay. Useful when accessing Immich through a reverse proxy or different external URL. Example: "https://photos.example.com". If not set, falls back to immich_url. |
show_time | KIOSK_SHOW_TIME | bool | false | Display clock. |
time_format | KIOSK_TIME_FORMAT | 24 | 12 | 24 | Display clock time in either 12-hour or 24-hour format. This can either be 12 or 24. |
show_date | KIOSK_SHOW_DATE | bool | false | Display the date. |
date_format | KIOSK_DATE_FORMAT | string | DD/MM/YYYY | The format of the date. default is day/month/year. See date format for more information. |
clock_source | KIOSK_CLOCK_SOURCE | client | server | client | The source of the clock. Either client or server. |
refresh | KIOSK_REFRESH | int | 60 | The amount in seconds a image will be displayed for. |
disable_screensaver | KIOSK_DISABLE_SCREENSAVER | bool | false | Ask browser to request a lock that prevents device screens from dimming or locking. NOTE: I haven't been able to get this to work constantly on IOS. |
optimize_images | KIOSK_OPTIMIZE_IMAGES | bool | false | Whether Kiosk should resize images to match your browser screen dimensions for better performance. NOTE: In most cases this is not necessary, but if you are accessing Kiosk on a low-powered device, this may help. |
use_gpu | KIOSK_USE_GPU | bool | true | Enable GPU acceleration for improved performance (e.g., CSS transforms) |
show_archived | KIOSK_SHOW_ARCHIVED | bool | false | Allow assets marked as archived to be displayed. |
album | KIOSK_ALBUM | []string | [] | The ID(s) of a specific album or albums you want to display. See Albums for more information. |
album_order | KIOSK_ALBUM_ORDER | random | newest | oldest | random | The order an album's assets will be displayed. See Album order for more information. |
excluded_albums | KIOSK_EXCLUDED_ALBUMS | []string | [] | The ID(s) of a specific album or albums you want to exclude. See Exclude albums for more information. |
experimental_album_video | KIOSK_EXPERIMENTAL_ALBUM_VIDEO | bool | false | Enable experimental video playback for albums. See experimental album video for more information. |
person | KIOSK_PERSON | []string | [] | The ID(s) of a specific person or people you want to display. See People for more information. |
require_all_people | KIOSK_REQUIRE_ALL_PEOPLE | bool | false | Require all people to be present in an asset. See Require all people for more information. |
excluded_people | KIOSK_EXCLUDED_PEOPLE | []string | [] | The ID(s) of a specific person or people you want to exclude. See Exclude people for more information. |
date | KIOSK_DATE | []string | [] | A date range or ranges. See Date range for more information. |
tag | KIOSK_TAG | []string | [] | Tag or tags you want to display. See Tags for more information. |
memories | KIOSK_MEMORIES | bool | false | Display memories. |
blacklist | KIOSK_BLACKLIST | []string | [] | The ID(s) of any specific assets you want Kiosk to skip/exclude from displaying. You can also tag assets in Immich with "kiosk-skip" to achieve the same. |
date_filter | KIOSK_DATE_FILTER | string | "" | Filter person and random assets by date. See date filter for more information. |
disable_navigation | KIOSK_DISABLE_NAVIGATION | bool | false | Disable all Kiosk's navigation (touch/click, keyboard and menu). |
disable_ui | KIOSK_DISABLE_UI | bool | false | A shortcut to set show_time, show_date, show_image_time and image_date_format to false. |
frameless | KIOSK_FRAMELESS | bool | false | Remove borders and rounded corners on images. |
hide_cursor | KIOSK_HIDE_CURSOR | bool | false | Hide cursor/mouse via CSS. |
font_size | KIOSK_FONT_SIZE | int | 100 | The base font size for Kiosk. Default is 100% (16px). DO NOT include the % character. |
background_blur | KIOSK_BACKGROUND_BLUR | bool | true | Display a blurred version of the image as a background. |
background_blur_amount | KIOSK_BACKGROUND_BLUR_AMOUNT | int | 10 | The amount of blur to apply to the background image (sigma). |
theme | KIOSK_THEME | fade | solid | fade | Which theme to use. See Themes for more information. |
layout | KIOSK_LAYOUT | single | portrait | landscape | splitview | splitview-landscape | Which layout to use. See Layouts for more information. | |
sleep_start | KIOSK_SLEEP_START | string | "" | Time (in 24hr format) to start sleep mode. See Sleep mode for more information. |
sleep_end | KIOSK_SLEEP_END | string | "" | Time (in 24hr format) to end sleep mode. See Sleep mode for more information. |
sleep_icon | KIOSK_SLEEP_ICON | string | "" | Display icon during sleep mode. See Sleep mode for more information. |
sleep_dim_screen | KIOSK_SLEEP_DIM_SCREEN | bool | false | Dim screen during sleep mode when using Fully Kiosk Browser. See Sleep mode for more information. |
disable_sleep | N/A | bool | false | Bypass sleep mode by adding disable_sleep=true to the URL. See Sleep mode for more information. |
custom_css | N/A | bool | true | Allow custom CSS to be used. See Custom CSS for more information. |
transition | KIOSK_TRANSITION | none | fade | cross-fade | none | Which transition to use when changing images. |
fade_transition_duration | KIOSK_FADE_TRANSITION_DURATION | float | 1 | The duration of the fade (in seconds) transition. |
cross_fade_transition_duration | KIOSK_CROSS_FADE_TRANSITION_DURATION | float | 1 | The duration of the cross-fade (in seconds) transition. |
show_progress | KIOSK_SHOW_PROGRESS | bool | false | Display a progress bar for when image will refresh. |
image_fit | KIOSK_IMAGE_FIT | contain | cover | none | contain | How your image will fit on the screen. Default is contain. See Image fit for more info. |
image_effect | KIOSK_IMAGE_EFFECT | none | zoom | smart-zoom | none | Add an effect to images. |
image_effect_amount | KIOSK_IMAGE_EFFECT_AMOUNT | int | 120 | Set the intensity of the image effect. Use a number between 100 (minimum) and higher, without the % symbol. |
use_original_image | KIOSK_USE_ORIGINAL_IMAGE | bool | false | Use the original image. NOTE: If the original is not a png, gif, jpeg or webp Kiosk will fallback to using the preview. |
show_owner | KIOSK_SHOW_OWNER | bool | false | Display the asset owner. Useful for shared albums. |
show_album_name | KIOSK_SHOW_ALBUM_NAME | bool | false | Display album name(s) that the asset appears in. |
show_person_name | KIOSK_SHOW_PERSON_NAME | bool | false | Display person name(s). |
show_person_age | KIOSK_SHOW_PERSON_AGE | bool | false | Display person age. |
show_image_time | KIOSK_SHOW_IMAGE_TIME | bool | false | Display image time from METADATA (if available). |
image_time_format | KIOSK_IMAGE_TIME_FORMAT | 12 | 24 | 24 | Display image time in either 12-hour or 24-hour format. This can either be 12 or 24. |
show_image_date | KIOSK_SHOW_IMAGE_DATE | bool | false | Display the image date from METADATA (if available). |
image_date_format | KIOSK_IMAGE_DATE_FORMAT | string | DD/MM/YYYY | The format of the image date. default is day/month/year. See date format for more information. |
show_image_description | KIOSK_SHOW_IMAGE_DESCRIPTION | bool | false | Display image description from METADATA (if available). |
show_image_exif | KIOSK_SHOW_IMAGE_EXIF | bool | false | Display image Fnumber, Shutter speed, focal length, ISO from METADATA (if available). |
show_image_location | KIOSK_SHOW_IMAGE_LOCATION | bool | false | Display the image location from METADATA (if available). |
show_image_qr | KIOSK_SHOW_IMAGE_QR | bool | false | Displays a QR code linking to the original image (in Immich) next to the image metadata. |
hide_countries | KIOSK_HIDE_COUNTRIES | []string | [] | List of countries to hide from image_location |
show_more_info | KIOSK_SHOW_MORE_INFO | bool | true | Enables the display of additional information about the current image(s) |
show_more_info_image_link | KIOSK_SHOW_MORE_INFO_IMAGE_LINK | bool | true | Shows a link to the original image (in Immich) in the additional information overlay |
show_more_info_qr_code | KIOSK_SHOW_MORE_INFO_QR_CODE | bool | true | Displays a QR code linking to the original image (in Immich) in the additional information overlay |
like_button_action | KIOSK_LIKE_BUTTON_ACTION | []string | [favorite] | Action(s) to perform when the like button is clicked. Supported actions are [favorite, album]. See like button for more information. |
hide_button_action | KIOSK_HIDE_BUTTON_ACTION | []string | [tag] | Action(s) to perform when the hide button is clicked. Supported actions are [tag, archive]. See hide button for more information. |
immich_users_api_keys | N/A | map[string]string | {} | key:value mappings of Immich usernames to their corresponding API keys. See multiple users for more information. |
show_user | KIOSK_SHOW_USER | bool | false | Display the user used to fetch the image. See multiple users for more information. |
weather | N/A | []WeatherLocation | [] | Display the current weather. See weather for more information. |
use_offline_mode | KIOSK_USE_OFFLINE_MODE | bool | false | Enable offline mode for the device. See offline mode for more information. |
offline_mode | N/A | OfflineMode{} | {} | Enable offline mode. See offline mode for more information. |
iframe | KIOSK_IFRAME | []string | [] | Add iframes into Kiosk. See iframe for more information. |
The below options are NOT configurable through URL params. In the config.yaml
file they sit under kiosk
(demo below and in example config.yaml
)
immich_url: "****"
immich_api_key: "****"
// all your other config options
// 👇 Additional options
kiosk:
password: ""
cache: true
prefetch: true
yaml | ENV | Value | Default | Description |
---|---|---|---|---|
port | KIOSK_PORT | int | 3000 | Which port Kiosk should use. NOTE: This is only typically needed when running Kiosk outside of a container. If you are running inside a container the port will need to be reflected in your compose file, e.g. HOST_PORT:KIOSK_PORT |
behind_proxy | KIOSK_BEHIND_PROXY | bool | false | Is Kiosk running behind a proxy? |
watch_config | KIOSK_WATCH_CONFIG | bool | false | Should Kiosk watch config.yaml file for changes. Reloads all connect clients if a change is detected. |
fetched_assets_size | KIOSK_FETCHED_ASSETS_SIZE | int | 1000 | The number of assets (data) requested from Immich per api call. min=1 max=1000. |
http_timeout | KIOSK_HTTP_TIMEOUT | int | 20 | The number of seconds before an http request will time out. |
password | KIOSK_PASSWORD | string | "" | Please see FAQs for more info. If set, requests MUST contain the password in the GET parameters, e.g. http://192.168.0.123:3000?password=PASSWORD . |
cache | KIOSK_CACHE | bool | true | Cache selective Immich api calls to reduce unnecessary calls. |
prefetch | KIOSK_PREFETCH | bool | true | Pre-fetch assets in the background, so images load much quicker when refresh timer ends. |
asset_weighting | KIOSK_ASSET_WEIGHTING | bool | true | Balances asset selection when multiple sources are used, e.g. multiple people and albums. When enabled, sources with fewer assets will show less often. |