Skip to content

Remote Inky Frame Dashboard/Slideshow Manager

License

Notifications You must be signed in to change notification settings

jinglemansweep/inky-frame-web

Repository files navigation

Inky Frame Web

Inky Frame Web

docker mypy flake8 black codeql License

Web-based remote photo frame slideshow and gallery manager for use with e-ink displays such as the Inky Frame. It might also be useful for the Inky Impression and other simple e-ink displays.

Features

  • 📷 Photo and image slideshow management
  • 🎦 Multiple display output support
  • 📆 Customisable date and time overlays
  • 🐍 Written with Python, Flask and MicroPython

Coming Soon

  • 🔘 Hardware button support
  • ☀️ Weather summary and next hour forecast
  • 📨 Announcements and notifications via MQTT
  • 📡 Remote control via MQTT and Home Assistant

Configuration

Project configuration is provided using Dynaconf, meaning that configuration can be provided using one or more TOML files, but can also be overridden at runtime using environment variables. For more information, see config.py.

The provided settings.toml details all the available options, but they are all commented out. The preferred method of configuration is to override any settings by creating a settings.local.toml and/or a secrets.toml (for sensitive values), or by setting the equivalent INKYFRAMEWEB_ environment variables.

Outputs

TODO: Explain multiple outputs

Server (Python)

Docker

Pull and start the container image specifying a port and a volume for your photos/images:

docker run -d --name inkyframeweb \
  -v ${PWD}/images/samples:/data/images \
  -p 5665:5665 \
  ghcr.io/jinglemansweep/inky-frame-web:main

Multiple display outputs can be specified using envionment variables. Remember outputs are zero-based:

docker run -it --name inkyframeweb \
  -v ${PWD}/images/samples:/data/images \
  -e INKYFRAMEWEB_GENERAL__DEMO_MODE=true \
  -e INKYFRAMEWEB_OUTPUTS__0__IMAGE_PATH=images/samples \
  -e INKYFRAMEWEB_OUTPUTS__0__SHOW_DATE=true \
  -e INKYFRAMEWEB_OUTPUTS__1__IMAGE_PATH=images/samples \
  -e INKYFRAMEWEB_OUTPUTS__1__SHOW_DATE=true \
  -e INKYFRAMEWEB_OUTPUTS__1__SHOW_TIME=true \
  -p 5665:5665 \
  ghcr.io/jinglemansweep/inky-frame-web:main

Native (Non-Docker)

Create a Python 3.x virtual environment, and install project dependencies:

python3 -m venv venv
. venv/bin/activate
pip install --upgrade pip poetry
poetry install

Create a settings.local.toml configuration file overriding any values required, or set the equivalent environment variables.

To run the project:

. venv/bin/activate
python3 -m inkyframeweb

Client (MicroPython)

TODO

Acknowledgements

  • Sample photos generated and provided by Dall-E 2