ImmichKiosk

ImmichKiosk

Docker app from DamonGolding's Repository

Overview

Immich Kiosk is a lightweight slideshow for running on kiosk devices and browsers that uses Immich as a data source.

Immich Kiosk





Links

What is Immich Kiosk?

Highly configurable slideshows for displaying Immich assets on browsers and devices.

[!IMPORTANT] This project is not affiliated with Immich


Support

If this project has been helpful to you and you wish to support me, you can do so with the button below 🙂.

"Buy Me A Coffee"


Help

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.

Discord button

AI usage

Immich Kiosk is hand-curated without any direct AI assistance.

We use CodeRabbit to review code changes, but it is mainly used to provide feedback (which is often ignored), catch bugs, and fix my many typos.

Install ImmichKiosk on Unraid in a few clicks.

Find ImmichKiosk in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for ImmichKiosk Review the template variables and paths Click Install

Requirements

A reachable Immich server that is running version v1.127.0 or above. See the project page for more information: https://github.com/damongolding/immich-kiosk?tab=readme-ov-file

Download Statistics

240,952
Total Downloads
4,665
This Month
3,969
Avg / Month

Total Downloads Over Time

Loading chart...

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/damongolding/immich-kiosk:latest
Last Updated2025-04-07
First Seen2024-09-04

Runtime arguments

Web UI
http://[IP]:[PORT:3000]
Network
bridge
Shell
sh
Privileged
false

Template configuration

LanguageVariable

The language code for Kiosk to use

Target
LANG
Default
en_US|en_GB|da_DK|nl_BE|nl_NL|fi_FI|fr_FR|fr_CA|de_DE|hu_HU|it_IT|nn_NO|nb_NO|pl_PL|pt_PT|pt_BR|ro_RO|ru_RU|es_ES|ca_ES|sv_SE|tr_TR|uk_UA|bg_BG|zh_CN|zh_TW|zh_HK|ko_KR|ja_JP|el_GR|id_ID|fr_GP|fr_LU|fr_MQ|fr_GF|fr_RE|cs_CZ|sl_SI|lt_LT|et_EE|hr_HR|lv_LV|sk_SK|th_TH|uz_UZ|kk_KZ
Value
en_GB
TimezoneVariable

The timezone for Kiosk to use

Target
TZ
Value
Europe/London
Web UI PortPorttcp

Container Port: 3000

Target
3000
Default
3000
Value
3000
Config FilePathrw

Config file for application. Remove this if using environmental variables instead.

Target
/config.yaml
Default
/mnt/user/appdata/immich_kiosk/config.yaml
Immich Api KeyVariable

The API for your Immich server.

Target
KIOSK_IMMICH_API_KEY
Immich UrlVariable

The URL of your Immich server. MUST include a port if one is needed e.g. `http://192.168.1.123:2283`.

Target
KIOSK_IMMICH_URL
Immich External UrlVariable

The public URL of your Immich server used for generating links and QR codes.

Target
KIOSK_IMMICH_EXTERNAL_URL
Show TimeVariable

Display clock.

Target
KIOSK_SHOW_TIME
Default
false|true
Value
false
Time FormatVariable

Display clock time in either 12-hour or 24-hour format. This can either be 12 or 24.

Target
KIOSK_TIME_FORMAT
Default
24|12
Value
24
Show DateVariable

Display the date.

Target
KIOSK_SHOW_DATE
Default
false|true
Value
false
Date FormatVariable

The format of the date. default is day/month/year.

Target
KIOSK_DATE_FORMAT
Default
DD/MM/YYYY
Value
DD/MM/YYYY
Clock SourceVariable

The source of the clock. Either client or server.

Target
KIOSK_CLOCK_SOURCE
Default
client|server
Value
client
DurationVariable

The amount in seconds an image will be displayed for.

Target
KIOSK_DURATION
Default
60
Value
60
Disable ScreensaverVariable

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 consistently on IOS.

Target
KIOSK_DISABLE_SCREENSAVER
Default
false|true
Value
false
Optimize ImagesVariable

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.

Target
KIOSK_OPTIMIZE_IMAGES
Default
false|true
Value
false
Use GpuVariable

Enable GPU acceleration for improved performance (e.g., CSS transforms)

Target
KIOSK_USE_GPU
Default
true|false
Value
true
Show ArchivedVariable

Allow assets marked as archived to be displayed.

Target
KIOSK_SHOW_ARCHIVED
Default
false|true
Value
false
AlbumsVariable

The ID(s) of one or more albums to display.

Target
KIOSK_ALBUMS
Album OrderVariable

The order an album's assets will be displayed.

Target
KIOSK_ALBUM_ORDER
Default
random|newest|oldest
Value
random
Excluded AlbumsVariable

The ID(s) of a specific album or albums you want to exclude.

Target
KIOSK_EXCLUDED_ALBUMS
Show VideosVariable

Enable video playback.

Target
KIOSK_SHOW_VIDEOS
Default
false|true
Value
false
Live PhotosVariable

Enable live photos playback for albums.

Target
KIOSK_LIVE_PHOTOS
Default
false|true
Value
false
Live Photo Loop DelayVariable

Delay in seconds before looping live photos.

Target
KIOSK_LIVE_PHOTO_LOOP_DELAY
Default
0
Value
0
PeopleVariable

The ID(s) of a specific person or people you want to display.

Target
KIOSK_PEOPLE
Require All PeopleVariable

Require all people to be present in an asset.

Target
KIOSK_REQUIRE_ALL_PEOPLE
Default
false|true
Value
false
Excluded PeopleVariable

The ID(s) of a specific person or people you want to exclude.

Target
KIOSK_EXCLUDED_PEOPLE
DatesVariable

A date range or ranges.

Target
KIOSK_DATES
TagsVariable

Tag or tags you want to display.

Target
KIOSK_TAGS
Excluded TagsVariable

The tag or tags you want to exclude.

Target
KIOSK_EXCLUDED_TAGS
MemoriesVariable

Display memories.

Target
KIOSK_MEMORIES
Default
false|true
Value
false
BlacklistVariable

The ID(s) of any specific assets you want Kiosk to skip/exclude from displaying.

Target
KIOSK_BLACKLIST
Date FilterVariable

Filter person and random assets by date.

Target
KIOSK_DATE_FILTER
Disable NavigationVariable

Disable all Kiosk's navigation (touch/click, keyboard and menu).

Target
KIOSK_DISABLE_NAVIGATION
Default
false|true
Value
false
Disable UiVariable

A shortcut to set show_time, show_date, show_image_time and show_image_date to false.

Target
KIOSK_DISABLE_UI
Default
false|true
Value
false
Menu PositionVariable

Sets the position of the menu bar.

Target
KIOSK_MENU_POSITION
Default
top|bottom
Value
top
FramelessVariable

Remove borders and rounded corners on images.

Target
KIOSK_FRAMELESS
Default
false|true
Value
false
Hide CursorVariable

Hide cursor/mouse via CSS.

Target
KIOSK_HIDE_CURSOR
Default
false|true
Value
false
Font SizeVariable

The base font size for Kiosk. Default is 100% (16px). DO NOT include the % character.

Target
KIOSK_FONT_SIZE
Default
100
Value
100
Background BlurVariable

Display a blurred version of the image as a background.

Target
KIOSK_BACKGROUND_BLUR
Default
true|false
Value
true
Background Blur AmountVariable

The amount of blur to apply to the background image (sigma).

Target
KIOSK_BACKGROUND_BLUR_AMOUNT
Default
10
Value
10
ThemeVariable

Which theme to use.

Target
KIOSK_THEME
Default
fade|solid|bubble
Value
fade
LayoutVariable

Which layout to use.

Target
KIOSK_LAYOUT
Default
single|portrait|landscape|splitview|splitview-landscape
Value
single
Sleep StartVariable

Time (in 24hr format) to start sleep mode.

Target
KIOSK_SLEEP_START
Sleep EndVariable

Time (in 24hr format) to end sleep mode.

Target
KIOSK_SLEEP_END
Sleep IconVariable

Display icon during sleep mode.

Target
KIOSK_SLEEP_ICON
Sleep Dim ScreenVariable

Dim screen during sleep mode when using Fully Kiosk Browser.

Target
KIOSK_SLEEP_DIM_SCREEN
Default
false|true
Value
false
TransitionVariable

Which transition to use when changing images.

Target
KIOSK_TRANSITION
Default
none|fade|cross-fade
Value
none
Fade Transition DurationVariable

The duration of the fade (in seconds) transition.

Target
KIOSK_FADE_TRANSITION_DURATION
Default
1
Value
1
Cross Fade Transition DurationVariable

The duration of the cross-fade (in seconds) transition.

Target
KIOSK_CROSS_FADE_TRANSITION_DURATION
Default
1
Value
1
Show Progress BarVariable

Display a progress bar for when image will refresh.

Target
KIOSK_SHOW_PROGRESS_BAR
Default
false|true
Value
false
Progress Bar PositionVariable

Sets the position of the progress bar.

Target
KIOSK_PROGRESS_BAR_POSITION
Default
top|bottom
Value
top
Image FitVariable

How the image should fit on the screen. Default is "contain".

Target
KIOSK_IMAGE_FIT
Default
contain|cover|none
Value
contain
Image EffectVariable

Add an effect to images.

Target
KIOSK_IMAGE_EFFECT
Default
none|zoom|smart-zoom
Value
none
Image Effect AmountVariable

Set the intensity of the image effect. Use a number between 100 (minimum) and higher, without the % symbol.

Target
KIOSK_IMAGE_EFFECT_AMOUNT
Default
120
Value
120
Use Original ImageVariable

Use the original image. NOTE: If the original is not a png, gif, jpeg or webp Kiosk will fall back to using the preview.

Target
KIOSK_USE_ORIGINAL_IMAGE
Default
false|true
Value
false
Show OwnerVariable

Display the asset owner. Useful for shared albums.

Target
KIOSK_SHOW_OWNER
Default
false|true
Value
false
Show Album NameVariable

Display album names that the asset appears in.

Target
KIOSK_SHOW_ALBUM_NAME
Default
false|true
Value
false
Show Person NameVariable

Display people's names.

Target
KIOSK_SHOW_PERSON_NAME
Default
false|true
Value
false
Show Person AgeVariable

Display people's ages.

Target
KIOSK_SHOW_PERSON_AGE
Default
false|true
Value
false
Show Image TimeVariable

Display image time from METADATA (if available).

Target
KIOSK_SHOW_IMAGE_TIME
Default
false|true
Value
false
Image Time FormatVariable

Display image time in either 12-hour or 24-hour format. This can either be 12 or 24.

Target
KIOSK_IMAGE_TIME_FORMAT
Default
12|24
Value
12
Show Image DateVariable

Display the image date from METADATA (if available).

Target
KIOSK_SHOW_IMAGE_DATE
Default
false|true
Value
false
Image Date FormatVariable

The format of the image date. default is day/month/year.

Target
KIOSK_IMAGE_DATE_FORMAT
Default
DD/MM/YYYY
Value
DD/MM/YYYY
Show Image DescriptionVariable

Display image description from METADATA (if available).

Target
KIOSK_SHOW_IMAGE_DESCRIPTION
Default
false|true
Value
false
Show Image ExifVariable

Display image Fnumber, Shutter speed, focal length, ISO from METADATA (if available).

Target
KIOSK_SHOW_IMAGE_EXIF
Default
false|true
Value
false
Show Image LocationVariable

Display the image location from METADATA (if available).

Target
KIOSK_SHOW_IMAGE_LOCATION
Default
false|true
Value
false
Show Image QrVariable

Displays a QR code linking to the original image (in Immich) next to the image metadata.

Target
KIOSK_SHOW_IMAGE_QR
Default
false|true
Value
false
Hide CountriesVariable

List of countries to hide from image_location

Target
KIOSK_HIDE_COUNTRIES
Show More InfoVariable

Enables the display of additional information about the current image(s)

Target
KIOSK_SHOW_MORE_INFO
Default
true|false
Value
true
Show More Info Image LinkVariable

Shows a link to the original image (in Immich) in the additional information overlay

Target
KIOSK_SHOW_MORE_INFO_IMAGE_LINK
Default
true|false
Value
true
Show More Info Qr CodeVariable

Displays a QR code linking to the original image (in Immich) in the additional information overlay

Target
KIOSK_SHOW_MORE_INFO_QR_CODE
Default
true|false
Value
true
Like Button ActionVariable

Action(s) to perform when the like button is clicked. Supported actions are [favorite, album].

Target
KIOSK_LIKE_BUTTON_ACTION
Value
[favorite]
Hide Button ActionVariable

Action(s) to perform when the hide button is clicked. Supported actions are [tag, archive].

Target
KIOSK_HIDE_BUTTON_ACTION
Value
[tag, archive]
Show UserVariable

Display the user used to fetch the image.

Target
KIOSK_SHOW_USER
Default
false|true
Value
false
Use Offline ModeVariable

Enable offline mode for the device.

Target
KIOSK_USE_OFFLINE_MODE
Default
false|true
Value
false
IframeVariable

Add iframes into Kiosk.

Target
KIOSK_IFRAME
Config Validation LevelVariable

The level of validation to perform on the config.yaml file.

Target
KIOSK_CONFIG_VALIDATION_LEVEL
Default
error|warning|off
Value
error
PortVariable

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`

Target
KIOSK_PORT
Default
3000
Value
3000
Behind ProxyVariable

Is Kiosk running behind a proxy?

Target
KIOSK_BEHIND_PROXY
Default
false|true
Value
false
Watch ConfigVariable

Should Kiosk watch config.yaml file for changes. Reloads all connect clients if a change is detected.

Target
KIOSK_WATCH_CONFIG
Default
false|true
Value
false
Fetched Assets SizeVariable

The number of assets (data) requested from Immich per api call. min=1 max=1000.

Target
KIOSK_FETCHED_ASSETS_SIZE
Default
1000
Value
1000
Http TimeoutVariable

The number of seconds before an http request will time out.

Target
KIOSK_HTTP_TIMEOUT
Default
20
Value
20
PasswordVariable

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`.

Target
KIOSK_PASSWORD
CacheVariable

Cache selective Immich api calls to reduce unnecessary calls.

Target
KIOSK_CACHE
Default
true|false
Value
true
PrefetchVariable

Pre-fetch assets in the background, so images load much quicker when duration timer ends.

Target
KIOSK_PREFETCH
Default
true|false
Value
true
Asset WeightingVariable

Balances asset selection when multiple sources are used, e.g. multiple people and albums. When enabled, sources with fewer assets will show less often.

Target
KIOSK_ASSET_WEIGHTING
Default
true|false
Value
true