immich-kiosk

command module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 23, 2024 License: GPL-3.0 Imports: 11 Imported by: 0

README

Immich Kiosk

This project is not affiliated with immich

Table of Contents

What is Immich Kiosk?

I made Immich Kiosk as a lightweight slideshow to run on kiosk devices and browsers.

preview 1 Image shot by Damon Golding

preview 2 Image shot by @insungpandora

Example 1

You have a couple of spare Raspberry Pi's laying around. One hooked up to a LCD screen and the other you connect to your TV. You install a kiosk service on them (I use DeitPi).

You want the pi connected to the LCD screen to only show images from your recent holiday, which are stored in a album on Immich. It's an older pi so you want to disable CSS transitions, also we don't want to display the time of the image.

Using this URL http://{URL}?album={ALBUM_ID}&transtion=none&show_time=false would achieve what we want.

On the pi connected to the TV you want to display a random image from your library. It has to be fullscreen and we want to use the fade transition

Using this URL http://{URL}?full_screen=true&transition=fade would achieve what we want.

Example 2

You want to see a random picture of your child when you open a new tab in Chrome. To achieve this set the homepage URL in Chrome to http://{URL}?person={PERSON_ID}.

Installation

Use via docker 👇

Docker Compose

[!NOTE] You can use both a yaml file and environment variables but environment variables will overwrite settings from the yaml file

When using a yaml config file
services:
  immich-kiosk:
    image: damongolding/immich-kiosk:latest
    container_name: immich-kiosk
    environment:
      TZ: "Europe/London"
    volumes:
      - ./config.yaml:/config.yaml
    restart: on-failure
    ports:
      - 3000:3000
When using environment variables
services:
  immich-kiosk:
    image: damongolding/immich-kiosk:latest
    container_name: immich-kiosk
    environment:
      TZ: "Europe/London"
      KIOSK_IMMICH_API_KEY: ""
      KIOSK_IMMICH_URL: ""
      KIOSK_REFRESH: 60
      KIOSK_ALBUM: ""
      KIOSK_PERSON: ""
      KIOSK_FILL_SCREEN: TRUE
      KIOSK_SHOW_DATE: TRUE
      KIOSK_DATE_FORMAT: 02/01/2006
      KIOSK_SHOW_TIME: TRUE
      KIOSK_TIME_FORMAT: 12
      KIOSK_BACKGROUND_BLUR: TRUE
      KIOSK_TRANSITION: NONE
    ports:
      - 3000:3000
    restart: on-failure

Configuration

See the file config.example.yaml for an example config file

yaml ENV Value Description
immich_url KIOSK_IMMICH_URL string The URL of your Immich server, e.g. http://192.168.1.123:2283.
immich_api_key KIOK_IMMICH_API_KEY string The API for your Immich server.
show_time KIOSK_SHOW_TIME bool Display clock.
time_format KIOSK_TIME_FORMAT 12 | 24 Display clock time in either 12 hour or 24 hour format. Can either be 12 or 24.
show_date KIOSK_SHOW_DATE bool Display the date.
date_format KIOSK_DATE_FORMAT string The format of the date. default is day/month/year. Any GO date string is valid.
refresh KIOSK_REFRESH int The amount in seconds a image will be displayed for.
album KIOSK_ALBUM string The ID of a specific album you want to display.
person KIOSK_PERSON string The ID of a specific person you want to display. Having the album set will overwrite this.
fill_screen KIOSK_FILL_SCREEN bool Force images to be full screen. Can lead to blurriness depending on image and screen size.
background_blur KIOSK_BACKGROUND_BLUR bool Display a blurred version of the image as a background.
transition KIOSK_TRANSITION none | fade | cross-fade Which transition to use when changing images.
show_progress KIOSK_SHOW_PROGRESS bool Display a progress bar for when image will refresh.
show_image_time KIOSK_SHOW_IMAGE_TIME bool Display image time from METADATA (if available).
image_time_format KIOSK_IMAGE_TIME_FORMAT 12 | 24 Display image time in either 12 hour or 24 hour format. Can either be 12 or 24.
show_image_date KIOSK_SHOW_IMAGE_DATE bool Display the image date from METADATA (if available).
image_date_format KIOSK_IMAGE_DATE_FORMAT string The format of the image date. default is day/month/year. Any GO date string is valid.

Changing settings via URL

You can configure settings for individual devices through the URL. This feature is particularly useful when you need different settings for different devices, especially if the only input option available is a URL, such as with kiosk devices.

example:

https://{URL}?refresh=120&background_blur=false&transition=none

Thos above would set refresh to 120 seconds (2 minutes), turn off the background blurred image and remove all transitions for this device/browser.

FAQ

  • TODO

TODO

  • FAQs
  • Investigate caching
  • Update README images

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL