This repository provides a script to set up a minimal digital signage system on Raspberry Pi 4 and 5, combined with optional Cloudflared tunneling for secure remote access. The system supports fullscreen image slideshows using feh, cloud media synchronization via rclone, and HDMI-CEC display control with cec-utils.
- Fullscreen Slideshow: Automatically displays images in fullscreen using
feh, with real-time updates. - Remote Media Synchronization: Fetches images from cloud storage providers like Google Drive or Dropbox using
rclone. - HDMI-CEC Display Control: Automatically turns the display on or off using
cec-utils. - Cloudflared Tunnel Integration: Optional secure tunnel setup for remote access using Cloudflare Tunnel.
- Scheduled Power Management: Display power is managed using cron jobs.
wget https://raw.githubusercontent.com/MonkeyEnterprise/kiosk-presenter/main/setup.sh -O setup.sh
chmod +x setup.sh
./setup.shgit clone https://github.com/MonkeyEnterprise/kiosk-presenter.git ~/kiosk-presenter
chmod +x ~/kiosk-presenter/setup.sh
./kiosk-presenter/setup.shRun the following command to start configuration:
rclone configProvide these details:
name> dropbox_kiosk
storage> dropbox
client_id> (leave empty)
client_secret> (leave empty)
advanced_config> No
auto_config> No
On another Linux machine with rclone, authorize Dropbox:
rclone authorize "dropbox"Copy the access_token output and confirm:
y/e/d> y
Update ~/.xinitrc to synchronize media at startup:
rclone sync dropbox_kiosk:"/<path_to_images>" ~/media/fehThe script includes an optional function to set up a Cloudflare Tunnel for secure remote access:
- Prompts the user to initialize Cloudflared.
- Detects system architecture and downloads the appropriate Cloudflared binary.
- Installs Cloudflared and logs in to your Cloudflare account.
- Creates a tunnel with a user-defined name.
- Configures DNS routing and generates
/etc/cloudflared/config.yml. - Installs and enables Cloudflared as a systemd service.
To reset or remove Cloudflared completely, the script includes a cleanup function that:
- Stops and disables all Cloudflared services.
- Removes service and timer files.
- Deletes the Cloudflared binary and configuration directories.
- System boots into a terminal session with X starting in fullscreen mode.
- Media files are synchronized every 5 minutes.
- Display power is automatically managed according to schedule.
- Continuous, auto-updating slideshow runs indefinitely.
- Optional remote access is enabled through Cloudflared tunnel.
rclone ls dropbox_kiosk:echo "standby 0" | cec-client -s -d 1 # Turn off display
echo "on 0" | cec-client -s -d 1 # Turn on displaycrontab -ltail -f ~/feh_sync.log