https://github.com/liske/barkery
WebKit2-based kiosk browser for digital signage
https://github.com/liske/barkery
gtk3 kiosk-browser mqtt-client python3 webkit2
Last synced: about 1 month ago
JSON representation
WebKit2-based kiosk browser for digital signage
- Host: GitHub
- URL: https://github.com/liske/barkery
- Owner: liske
- License: gpl-3.0
- Created: 2022-04-18T19:56:14.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-06-10T09:38:05.000Z (almost 2 years ago)
- Last Synced: 2025-04-01T00:27:47.149Z (about 2 months ago)
- Topics: gtk3, kiosk-browser, mqtt-client, python3, webkit2
- Language: Python
- Homepage:
- Size: 36.1 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# barkery - WebKit2-based kiosk browser for digital signage
This is project provides a *WebKit2*-based kiosk browser to be used for digital signage. It has a simple *MQTT* interface for remote management.
It is implemented in *Python3* and uses *Glib GObject Introspection* to use *Gtk3* and *Webkit2*. Using [Alpine Linux](https://www.alpinelinux.org/) it is possible to run barkery on a read-only rootfs on *Raspberry Pi* or other ARM SoCs.
## Prerequisits
- *Python3*
- *Glib GObject Introspection*
- *Gtk3*
- *WebKit2Gtk-4.1*
- *Paho MQTT*## Installation
*Barkery* is available in the following linux distributions:
- [Alpine Linux](docs/Alpine.md)
On other platforms you could install it's [python dependencies](requirements.txt) using the package manager (i.e. *apt-get*) or using *pip3*. *Barkery* is a single python script which can be run without any special installation if the dependencies are met.
*Merge requests with instructions for other Linux distributions are very welcome.*
## Configuration
The configuration file is loaded from `/etc/barkery/barkery.conf`. Look at the [example config file](ex/barkery.conf) for available options.
## Features
### MQTT
*Barkery* can be configured to connect to a MQTT broker. It subscribes to the configured MQTT topics and performs defined actions when a message is published.
Command topics subscribed by barkery:
- load the URL from the message body
- `barkery/terminal/{hostname}/load`
- `barkery/terminal/_bcast/cmd/load`- load barkery's startup page
- `barkery/terminal/{hostname}/reset`
- `barkery/terminal/_bcast/cmd/reset`State topics published by barkery:
- barkery's state as JSON structure
- `barkery/terminal/{hostname}/status`