Skip to content

FrameOS/frameos

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

310ea61 · Jan 30, 2024
Jan 6, 2024
Jan 30, 2024
Jan 30, 2024
Jan 30, 2024
Dec 26, 2023
Jan 24, 2024
Aug 5, 2023
Jan 24, 2024
Jan 8, 2024
Aug 14, 2023
Nov 20, 2023
Jan 2, 2024
Dec 22, 2023
Nov 12, 2023

Repository files navigation

FrameOS

FrameOS is an operating system for single function smart frames.

It's meant to be deployed on a Raspberry Pi, and can be used with a variety of e-ink and traditional displays. It's designed for both screens that update 60 seconds per frame, and for screens that update 60 frames per second.

Think smart home calendars, meeting room displays, thermostats, industrial dashboards, public advertisement screens, and more.

To get started:

  1. Install the FrameOS controller, a dockerized python app, which is used to deploy apps onto individual frames via SSH.

  2. Read the device hardware guide for your screen type. Typically you'll just need to connect the display to a Raspberry Pi, install the OS, and make sure it's reachable over the network.

  3. Once connected, deploy our prebuilt apps, or code your own directly inside the controller.

  4. Finally, for a professional look, 3d print a case around your frame.

Supported platforms

We support all the most common e-ink displays out there.

  • Pimoroni e-ink frames
  • Waveshare e-ink
  • Framebuffer HDMI output
  • Web server kiosk mode

See the full list here!

FrameOS controller

The FrameOS controller is where you set up your frames. You can run it continuously on a server, or locally on your computer when needed. You'll just miss out on log aggregation if the controller is offline. The frames run independently.

Read more in the documentation.

Docker quickstart

# running the latest release
SECRET_KEY=$(openssl rand -base64 32)
docker run -d -p 8989:8989 -v ./db:/app/db --name frameos --restart always -e SECRET_KEY="$SECRET_KEY" frameos/frameos

# update daily to the latest release
docker run -d \
    --name watchtower \
    -v /var/run/docker.sock:/var/run/docker.sock \
    containrrr/watchtower \
    --interval 86400 \
    frameos

# one time update
docker run \
    -v /var/run/docker.sock:/var/run/docker.sock \
    containrrr/watchtower \
    --run-once \
    frameos