WARNING: Early stage product in first iterations of development. Unsuitable for production purposes yet. I'm looking for collaboration on this project. If you're interested, please contact me.
LanternFlyTV is a minimal Electron browser that connects to Firebase in the background and gets URL playlists from it for display in full screen. It is the next step from my previous Chromium-based solution, FullPageOS.
- Manual Device Onboarding and Claiming: Users can now see onboarding information on the screen when the browser runs. The URL playlist for each device is played once the device has been claimed. Claiming is currently done manually in the database by the admin.
- Separation of Onboarding and URL Rotation: Onboarding experience relies on
preload.js
and a local onboarding page. URL rotation is managed by the main process usingBrowserWindow.loadURL(url)
.
- Bug Fix: The URL updating mechanism has been improved to ensure
preload.js
is not required after the first URL load. URL changes are now managed by the main process. - Security Improvements: Implemented best security practices to ensure both browsers have access to a very limited API.
- URL Scheduler: A request has been made to add support for a URL scheduler instead of just rotation. This feature is under consideration for future releases.
The current solution can be installed on any Debian-based Linux (ARM and x64). Setup has to be done manually.
Once the browser is set up and started, if it's connected to the Internet, onboarding information is displayed. Onboarding is done manually for this version. Please contact Tailor VJ with your onboarding information and the URLs you would like to rotate.
A test would be considered successful if you
- successfully install the browser,
- run it,
- see the onboarding information, share it with Tailor VJ along with your URLs,
- the browser in claimed manually in the database and your URLs are rotating in full screen on the device
In the next versions there will be focus on implmenting a self service onboarding and URL management solution as a web you can run on your phone's browser.
To clone and run this repository, you'll need Git and Node.js (which comes with npm) installed on your computer.
Please fork this repo, clone from your own repo, create feature branches and pull requests.
From your command line (Please use your own repo instead of mine):
# Clone this repository
git git@github.com:tailorvj/lanternflytv.git
# Go into the repository
cd lanternflytv
# Install dependencies
npm install
# Run the app
npm start
Currently, the build script supports Linux x64 and arm64. Build your own browser by running the following commands:
# Clone this repository (Use SSH for code signing purposes)
git clone git@github.com:tailorvj/lanternflytv.git
# Go into the repository
cd lanternflytv
# Install dependencies
npm install
# Build the app for Debian Linux x64 (generates a .deb)
npm run build:x64
# Build the app for Debian Linux arm64 (on RaspberryPi 4, for example; generates a .deb)
npm run build:arm64
Full build commands are in the package.json
file under the scripts section.
Please note: The main branch for this project runs automatic builds using Github Actions.
Once the software is built, a .deb
file will be available under the dist/lanternflytv-linux-platform
folder (e.g., lanterflytv-linux-x64
or lanterflytv-linux-arm64
).
For Linux x64:
$ dpkg -i ./installers/lanternflytv_0.0.3_amd64.deb
For Armbian/PiOS:
$ dpkg -i ./installers/lanternflytv_0.0.3_arm64.deb
$ lanternflytv
- Create a minimal Electron app
- Connect to Firebase
- Get a list of URLs from Firebase
- Display the URLs in a full screen browser
- Rotate through the URLs in a playlist
- Display onboarding information on screen and let users claim devices
- Create a .deb installer for Linux x64
- Create a .deb installer for Linux arm64
- Create an installer for Windows
- Create an installer for MacOS
- Create a web app for claiming and managing user devices
- Manage screen groups
- Manage URL playlists and group assignments
- Allow screen group admin to set screen location, dimensions, and rotation
- Allow screen group admin to set screen group name
- Allow screen group admin to set screen group URL playlist
- Allow screen group admin to set default screen group rotation interval
- Enhance this roadmap
- Ideas are welcome
- On Linux, you may need to delete the
~/.config/lanternflytv
folder manually before installation to get a fresh unique user ID.
Make sure you have ESLint and Prettier plugins installed in your VS Code. This will help you keep the code clean and consistent. src/.eslintrc.json
is included in the project and set up for both Node.js (src/main) and browser (src/renderer) code linting.
- electronjs.org/docs - all of Electron's documentation
- Electron Fiddle - Electron Fiddle, an app to test small Electron experiments
lanternflytv - A full page URL rotator for digital signage Copyright (C) 2023 Asaf Prihadash TailorVJ.com
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This updated README file should now reflect the latest changes and instructions based on your DEVLOG.md updates. It provides clear instructions for developers and testers to get started with your latest release.