School Bell

Run scheduled audio and GPIO signals reliably—even when the network or central management is unavailable. Each School Bell node stores its configuration and schedule locally and operates autonomously.

Install a bell

Set up Python, install School Bell and prepare a node for its first run.

Installation
Configure schedules

Create and validate configuration, schedules, manual bells and monitoring.

Configuration
Deploy multiple bells

Roll out and manage School Bell nodes consistently with Ansible.

Deploying with Ansible

Quick start

Install School Bell, generate the example configuration and validate it before starting the service:

$ python -m pip install .
$ school-bell --demo-config > school-bell.json
$ # Edit paths, schedule and optional integrations first.
$ school-bell school-bell.json --check

New to the project? Read Architecture to understand which components run locally and which central services are optional.

Explore the documentation

Understand the system

Architecture, autonomous operation and the role of central management.

Architecture
Prepare the infrastructure

Network access, NTP, outage behavior and audio hardware requirements.

Networking and time synchronization
Operate and monitor

Health reporting, diagnostics and day-to-day operation.

Remote monitoring
Solve a problem

Diagnose startup, scheduling, connectivity and audio problems.

Troubleshooting
Connect the hardware

Select BCM pins and safely test relays and a manual push button.

GPIO, relays and manual button
Add optional controls

Coordinate bells over SSH or expose an authenticated webhook.

Remote bells and webhooks