Important
For versions of Immich prior to 3.x, use version 1.x of Immich Slideshow for old Devices.
I added some stuff to this repo in order to get it working with the Fully Kiosk Browser on a Nixplay w10a. Generally this should work on tablets with android 19 (4.4). The main slideshow is is at the root URL while the management is done at /management.php. The tablet itself is running fully kiosk's browser, and Tasker to reboot the browser upon reboot/crash.
A simple PHP-based slideshow application for Immich album photos, designed to work on older devices and browsers (iOS 9, old Android, ECMAScript 2009...). It displays photos from a specified Immich album in a full-screen slideshow format.
One day I decided to dust off two old iPads I had in a drawer (an iPad 2 and an iPad mini) to use them as digital photo frames, so my parents could see their granddaughter's photos from an album of my Immich instance.
I searched for projects already created for this purpose and found the great Immich Kiosk, it's a good project but it doesn't work on such old devices, so I decided to create a simple alternative but that works on older browsers and devices.
Note
If your device supports Immich Kiosk, maybe you should use it before this project.
Important
This project is not affiliated with Immich
- Full-screen slideshow of Immich album photos
- Configurable slide transition time
- Automatic WebP to JPEG conversion for better compatibility
- Customizable background color
- Optional random order for photos
- Configurable status bar style for iOS devices
- Automatic page reload after showing all photos
- Built-in image caching for better performance
- Filter images by orientation (landscape/portrait/all)
- Use your Immich favorites as a source, alone or combined with albums
- Pause/resume slide
- Management UI @JosephAntony1
- Remote control support @JosephAntony1
- Docker and Docker Compose
- Access to an Immich server
- Immich API key
- Album ID from your Immich server
- Clone this repository:
git clone https://github.com/yourusername/immich-slideshow-old-devices.git
cd immich-slideshow-old-devices- Copy the environment file and configure it:
cp .env.example .env- Edit the
.envfile with your settings:
IMMICH_URL=http://your-immich-server:2283
IMMICH_API_KEY=your_api_key
ALBUM_ID=your_album_id,another_album_id
CAROUSEL_DURATION=5
CSS_BACKGROUND_COLOR=black
RANDOM_ORDER=false
STATUS_BAR_STYLE=black-translucent
IMAGES_ORIENTATION=all
CROP_TO_SCREEN=true
IMAGE_QUALITY=previewTo run the application in development mode:
docker-compose up -dFor production deployment:
docker-compose -f docker-compose.prod.yml up -dThe application will be available at http://localhost:8080
| Variable | Description | Default | Required |
|---|---|---|---|
| IMMICH_URL | URL of your Immich server | - | Yes |
| IMMICH_API_KEY | Your Immich API key | - | Yes |
| ALBUM_ID | ID of the album(s) to display (comma separated). Use the special value favorites to show your Immich favorites |
- | Yes |
| CAROUSEL_DURATION | Time in seconds between slides | 5 | No |
| CSS_BACKGROUND_COLOR | Background color of the slideshow | black | No |
| RANDOM_ORDER | Show photos in random order | false | No |
| STATUS_BAR_STYLE | Style of the iOS status bar | black-translucent | No |
| IMAGES_ORIENTATION | Orientation of the images (landscape/portrait/all) | all | No |
| CROP_TO_SCREEN | Crop images to fill the screen (true) or fit (false) | true | No |
| IMAGE_QUALITY | Image size requested from Immich (preview/fullsize). preview is server-side resized and recommended; fullsize needs much more memory for large photos |
preview | No |
You can override the environment variables using management UI, navigate to:
http://localhost:8080/management.php
The album grid includes a special "⭐ Favorites" card that shows your Immich favorites in the slideshow, selectable like any other album.
You can override the environment variables using query parameters in the URL:
album_id: Override the ALBUM_ID (can be comma separated). Use the special valuefavoritesto show your Immich favorites, e.g.?album_id=favoritesor?album_id=favorites,your_album_idduration: Override the CAROUSEL_DURATIONbackground: Override the CSS_BACKGROUND_COLORrandom: Override the RANDOM_ORDER (use 'true' or 'false')status_bar: Override the STATUS_BAR_STYLE (use 'default', 'black-translucent', or 'black')orientation: Override the IMAGES_ORIENTATION (use 'landscape', 'portrait', or 'all')
Example:
http://localhost:8080/?random=true&duration=3
docker compose up -d --build