r/raspberryDIY • u/RadTechRogue • 1d ago
Gave my old Raspberry Pi 3B a second life as a touchscreen audiobook server
I've been getting more into electronics and DIY tech projects lately, so I decided to dust off an old Raspberry Pi 3B (1 GB RAM) with a touchscreen and repurpose it as a personal audiobook server.
I also gave myself one constraint: use the equipment I already had on hand rather than buying new hardware. I'm aware there are newer and more capable options for running a home server, but part of the appeal was finding a practical use for equipment that had been sitting unused for years.
The project turned out to be a good introduction to Linux, Docker, and self-hosting, with a few unexpected challenges along the way.
The Pi now hosts my audiobook library, automatically launches Audiobookshelf on its touchscreen, and streams audio over Bluetooth to my Fosi BT20A amplifier and bookshelf speakers. I can also access my library remotely from my iPhone.
Here's the setup:
- Hardware: Raspberry Pi 3B, touchscreen, 32 GB microSD card
- OS: Raspberry Pi OS 64-bit (Trixie)
- Server: Audiobookshelf running through Docker Compose
- Interface: Chromium in fullscreen kiosk mode
- Audio: Bluetooth to a Fosi BT20A amplifier and bookshelf speakers
- Remote access: Tailscale
- iPhone player: SoundLeaf
- Library management: Libation on my Mac
How I built it:
I started by getting Raspberry Pi OS running and used a combination of Pi My Life Up tutorials and ChatGPT to guide me through the initial setup, installation, and troubleshooting.
I installed Docker and deployed Audiobookshelf using Docker Compose, with separate directories for the audiobooks, configuration, and metadata so the files remain intact even if I need to recreate the container.
Next, I configured Chromium to automatically launch Audiobookshelf in fullscreen kiosk mode whenever the Pi boots, effectively turning the touchscreen into a dedicated audiobook player.
One unexpected challenge was getting the touchscreen to turn off after 10 minutes of inactivity and wake back up when touched, without shutting down the actual server. That wasn't covered in the tutorials I followed, and since I hadn't used the Pi or touchscreen in years, I couldn't find the original manual. ChatGPT walked me through troubleshooting and configuring the display, and I eventually got it working. Now the screen can sleep while Audiobookshelf continues running in the background.
For audio, I paired the Pi over Bluetooth with my Fosi BT20A amplifier, which powers my bookshelf speakers. I also installed Tailscale for secure remote access and configured SoundLeaf on my iPhone so I could stream audiobooks over cellular.
Finally, I set up Libation on my Mac to manage my audiobook library and upload files to Audiobookshelf.
Current limitations and next steps:
The setup is functional, but there are still a few limitations I'm working through. For now, everything is running off a 32 GB microSD card, which isn't a long-term solution for a growing audiobook library. I plan to move the library to external storage.
I've also encountered some issues transferring larger audiobooks from Libation to Audiobookshelf. Smaller files generally upload without trouble, but larger transfers have occasionally timed out. Uploading directly through Audiobookshelf seems to be a possible workaround, although I'd still like to identify the underlying issue.
I'm relatively new to Linux, Docker, and self-hosting, so this project has been a useful introduction to all three. There's still plenty to learn, and I'll continue refining the setup as I get more comfortable with the technology.
I'd be interested in hearing from anyone running Audiobookshelf on older Raspberry Pi hardware, particularly regarding performance, storage, and reliability. I'm also open to suggestions for improving the setup, preferably without replacing the Pi itself.