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][immich-github-url]
- 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)
- Pause/resume slide
- 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
.env
file with your settings:
IMMICH_URL=http://your-immich-server:2283
IMMICH_API_KEY=your_api_key
ALBUM_ID=your_album_id
CAROUSEL_DURATION=5
CSS_BACKGROUND_COLOR=black
RANDOM_ORDER=false
STATUS_BAR_STYLE=black-translucent
IMAGES_ORIENTATION=all
To run the application in development mode:
docker-compose up -d
For production deployment:
docker-compose -f docker-compose.prod.yml up -d
The 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 to display | - | 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 |
You can override the environment variables using query parameters in the URL:
album_id
: Override the 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
The application is available as a Docker image on Docker Hub:
docker pull damarte/immich-slideshow-old-devices:latest