Skip to content

tailorvj/lanternflytv

Repository files navigation

LanternFly TV Browser

LanternFlyTV Logo

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.

v0.0.3-alpha

New Features

  • 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 using BrowserWindow.loadURL(url).

Changes and Bug Fixes

  • 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.

User Feature Request

  • 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.

Installation and testing Instructions

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

Build Locally (x64 Debian Linux and RaspberryPi 4 PiOS)

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).

Install the .deb Package

For Linux x64:

$ dpkg -i ./installers/lanternflytv_0.0.3_amd64.deb

For Armbian/PiOS:

$ dpkg -i ./installers/lanternflytv_0.0.3_arm64.deb

Run the App after .deb Installation

$ lanternflytv

General Direction for Development

  • 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

Known Issues

  • On Linux, you may need to delete the ~/.config/lanternflytv folder manually before installation to get a fresh unique user ID.

Development

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.

Resources for Learning Electron

License

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.

GPLv3


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.

About

An experimental remote controlled browser

Resources

License

Stars

Watchers

Forks

Packages

No packages published