Portable Worship Hub on OpenLP

edited September 2018 in General Discussion
I haven't seen anything else like this, so I thought I'd share how I'm using OpenLP on a Raspberry Pi for leading worship at my small church. 

Once configured, the Raspberry Pi can simply be plugged in to power anywhere. Once it boots up, start up OpenLP, start the slides, and singers and congregants can connect their phones' or tablets' Wifi to a network called "lyrics" and point their browser to "lyrics". (Chrome and Firefox work well.) No separate Wifi is needed. It could even be used without a projector, with everyone just using phones or tablets to get the lyrics. I can move it around, take it to practice at someone's house, and use it exactly the same way anywhere I set it up.

OpenLP is set up on a Raspberry Pi, which is set up as a wireless access point, and access to it uses friendly names rather than IP addresses and port numbers. The Praise Team connects to the Pi and uses the "/stage" view, by simply typing "lyrics" into the address bar in Chrome or Firefox. I give a wireless keyboard to a member of the congregation to control the slides.

  1. It starts with a Raspberry Pi set up with the standard Raspbian distribution. 
  2. Next, I set up the RPi to be a wireless access point (I made the SSID "lyric" and the key "lyrics123"), following these directions on raspberrypi.org. (In my case, I don't use routing, bridging or access to the Internet.)
     - This way, the singers can connect to the Pi without needing a separate WiFi router.
  3. Then, add an entry in /etc/hosts file for "lyrics", pointing to the static IP address of the RPi that you set up when you set up the access point.
     - This allows people to connect to the stage view using a friendly name, rather than an IP address.
  4. Next, create the firewall entries below to forward port 80 traffic to port 8080 (forward the standard html port to the alternate html port).
     - This will remove the need to enter the port number (the part after the colon, which is "4316" by default in OpenLP).
     - This part is a tricky. If you think it's over your head, you can skip it and have singers include the port number after "lyrics", their URL is "lyrics:4316".
     - First you enter the rules at a command line, then you install "iptables-persistent" to have the rules work whenever you boot up the Pi.
          - Type each one at a command line to set up the rules.
               sudo iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
               sudo iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT
               sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
           - Then follow the instructions on this page, under the heading "Introduction to iptables-persistent".
  5. Next, install OpenLP if you don't already have it.
      - The first time I tried to set up the wireless access point on a device that already had OpenLP, the wireless access point didn't work. I ended up setting up my RPi again from scratch, in this order, and everything worked like a charm.
  6. In OpenLP, under Settings / Configure OpenLP, on the Remote tab, change the port number to 8080. 
      - If you skipped creating the firewall rules, you can skip this step. 
  7. Make the stage view the default web page by renaming and copying the stage and index web pages In the folder /usr/share/openlp/openlp/plugins/remotes/html 
      - Rename "index.html" to "index.html.orig" (sudo mv index.html index.html.orig)
      - Copy "stage.html" to "index.html" (sudo cp stage.html index.html)
      - NOTE: This will become undone any time the OpenLP program is updated. Just repeat this step and you'll be back in business.
One last thing - The projector I use doesn't have HDMI; it only has composite (and VGA and S-video). One of the challenges this presents is that the low resolution of composite video prevents the entire OpenLP console from appearing on the screen. I use RealVNC to access the RPi, and I used to change the resolution on the RPi so I could see all of OpenLP via RealVNC. This prevents the RPi from showing on the projector. When I was finished with my changes, I would change the resolution back to the low resolution for composite video. Every so often (more often than I'd like), I would make a mistake and spend many long minutes fixing it while my congregation stared at me.

I've found a better way. Set up RealVNC with a virtual desktop using the instructions below. When you need to make changes to lyrics or song order or anything else, connect to the virtual desktop on the RPi. This gives you a full size desktop without having to mess with the resolution that is fed out of the composite cable to the projector.

I got these directions from raspberrypi.org forums, at the bottom of this thread.

1.) Create a systemd startup script in /etc/systemd/system/vncvirtualdesktop.service

2.) Fill that file with the following code:

Description=Start VNC Server Virtual Desktop

ExecStart=/bin/su pi -c '/usr/bin/vncserver -randr=1280x1024'
ExecStop=/usr/bin/vncserver -kill :1


3.) Enable that service using systemctl enable vncvirtualdesktop.service

4.) Connect to the Raspberry Pi over the network using a :1 after the IP address or hostname. Use the pi username and password (raspberry is the default).


  • Nice, you can get cheap HDMI to VGA adaptors to work with the projector, you could also use the remote web page or app on a phone to control the slides.

    There are also ways to make their device go to the webpage as soon as they connect, look up 'Captive portal' and how to do it with raspberry pi.

    I want to use the stage view so that elderly with not great eye sight at my church can see the words on their own devices
  • Captive Portal looks like a perfect thing for this application! I thought I'd run out of ways to make this better! 

    I wanted to be able to do the same thing as you do for the elderly. Our projector is off to one side of the congregation, so it can be a little difficult to see from the opposite corner of the room, especially when everyone is standing. I'm going to have the pastor add a small line in the bulletin each week that says something like "lyrics are available on your mobile device by connecting its Wifi to xxxx".

    I'll look into the HDMI to VGA adapter. At the moment, I'm in good shape because the slides display well using composite, it's just if I need to use the OpenLP console. 

    For some reason the remote web page doesn't render well for me. Not sure why. I do use the mobile app pretty often. But for the person in the congregation, it seems to be simpler to hand them a keyboard with physical buttons and tell them to "press arrow keys like this" to move through it. Every so often, it stops responding to keyboard, so I do keep an old Android phone handy, with the mobile app installed. It's also good for when a singer forgets her tablet. 

    Thanks for the advice. Also, it's really nice to know that someone is reading what I posted! I've never posted anything before. Now I feel like I'm part of the community. I'd only "taken" from it before, so it feels good to be contributing something.
  • This is awesome @eprostko !!
    Ive been doing words at church for 15 years and only just found OpenLP.
    I was thinking the other night that a Rasberry Pi would be good.
    Sound like you’ve pulled off everything I was think of and then some!
    Just need to find some time to copy your setup.
    God bless.
  • Any updates on running OpenLP (2.4.6) on a pi4, as there's now this well packaged version https://shop.pimoroni.com/products/raspberry-pi-400?variant=32280738005075. Also, what media formats does this install support? PowerPoint slides? Video formats?
  • I haven't updated it as I don't have a pi-4. I'm still using the pi-3. Although, as far as I know, nothing would be any different about the openlp, wifi hub, and dhcp/dns setup I put together.

Sign In or Register to comment.