Chabaa (acr. for: chabaa aids bible accorded assemblies, חבא in hebrew means to retreat or harden). It is an app supporting churches to use digital capabilities for their gatherings and cooperations and is a response to corona-enforced shutdowns of german churches. It comprises
- streaming church services through common desktop and mobile web-browsers using hls (latency 15s) and rtmp (flashvideo, with latency of 2s, but which has fewer browser compatibility).
- audio streaming church services
- Chat area next to the streaming frames
- file manager for up- and download of church service recordings and for in-browser playing of its contents
- authentication of church members, administrators and guests
- [Upcoming] Chat-App with User Management and user status management for encouraging communication between church members
- [Upcoming] Management of "calendar" and "About"-contents of the app
A pictured documentation is planned for navigating you through all of chabaa's features
Thank you for considering contribution to the chabaa online church app!
In brief chabaa integrates a couple of free tools to make an app to aid churches
in their digital struggle after corona lockdowns. For an overview of reused modules take a look
at the docker-compose.yml.
If you discover a security vulnerability within chabaa, please send a notification via my github account.
The Chabaa online church app is open-sourced software licensed under the GPL license.
chabaa occupies the ports 80 (webserver. E.g apache), 8000 (video-streaming), 8008 (webradio), 6001 (websocket) by default. Stop any other applications running on these ports or configure chabaa for using other ports inside chabaas .env file. On common vanilla linux application, you'll probably just want to stop apache: sudo service apache2 stop.
sudo apt-get install docker-compose docker.io npm nodejs git composer
sudo adduser `whoami` docker
sudo systemctl enable docker
git clone https://github.com/dioniswe/chabaa.git chabaa
cd chabaa
composer install
npm install
npm run dev
rename.env.example to .env and modify to contain values for
ICECAST_SOURCE_PASSWORD to authenticate audio streaming sources
ICECAST_MOUNT_NAME for the audio streaming url path
CHABAA_ADMIN_USER for generating the chabaa admin user (responsible for app contents of startpage and recordings)
CHABAA_ADMIN_PASSWORD for setting the chabaa admin password
CHABAA_CONGREGATION_USER for generating the chabaa congregation user (the website user)
CHABAA_CONGREGATION_PASSWORD for setting the chabaa congregation password
export USER_ID=$(id -u ${USER}); export GROUP_ID=$(id -g ${USER}); docker-compose up -d
docker-compose run chabaa php artisan key:generate
docker-compose run chabaa php artisan migrate
mkdir public/vendor/fonts
sudo npm install -g google-font-installer
gfi download Nunito -d public/vendor/fonts
Stream to your 'Radio'-Section using any icecast2 compatible client (i.e Butt). In butt settings fill in your server's domain, your configured port (default port: 8008) and your configured source authentication key
Stream to your 'Church-Service'-Section using any rtmp-compatible client (i.e OBS). In obs settings fill in your server's domain, your configured port (default port: 8000) and your configured streaming key (default key: stream_name)
Chatting works straight
For the recordings management an admin user has been created on laravel initialization who is privileged to upload files. The congregation user is privileged to download and play files.